Condividi tramite


SharedStorageAccessManager Classe

Definizione

Consente a un'app di condividere un file con un'altra app passando un token tramite attivazione URI, servizio app, API REST e così via. L'app di destinazione riscatta il token per ottenere il file condiviso dall'app di origine.

public ref class SharedStorageAccessManager abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
class SharedStorageAccessManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public static class SharedStorageAccessManager
Public Class SharedStorageAccessManager
Ereditarietà
Object Platform::Object IInspectable SharedStorageAccessManager
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Nell'esempio seguente un'app di origine avvia un'app di mapping e fornisce un file gpx contenente le indicazioni stradali da visualizzare dall'app di destinazione.

Prima di tutto, l'app di origine ottiene un token per il file gpx e usa l'attivazione del protocollo per avviare l'app di destinazione.

public async void ShareMostRecentDirections()
{
       // Get the most recently opened .gpx file
       // from the recently used file list.
       StorageItemMostRecentlyUsedList mostRecent = 
           StorageApplicationPermissions.MostRecentlyUsedList;

       String mruToken = mostRecent.Entries.FirstOrDefault().Token;
       StorageFile file = await mostRecent.GetFileAsync(mruToken);

       // Get the token to share access to the updated .gpx file.
       String sharingToken = SharedStorageAccessManager.AddFile(file);

       //Launch the driving application .
       Uri driveTo = new Uri("nokia-drive-to:?Gpxfile=" + sharingToken);
       var launch = await Launcher.LaunchURIAsync(driveTo);
}

L'app di destinazione ottiene quindi il file gpx fornendo il token ricevuto dall'app di origine.

protected override async void OnActivated(IActivatedEventArgs args)
{
    var protocolArgs = args as ProtocolActivatedEventArgs;

    // Get the token from the URI.
    var queryStrings = new WwwFormUrlDecoder(protocolArgs.Uri.Query);
    string gpxFileToken = queryStrings.GetFirstValueByName("GpxFile");

    // Get the .gpx file and call a custom method
    // to display driving directions.
    if (!string.IsNullOrEmpty(gpxFileToken))
    {
        PlotGpxFile(await
            SharedStorageAccessManager.RedeemTokenForFileAsync(gpxFileToken));
    }
}

Commenti

Ecco la sequenza di passaggi che consente a un'app di condividere un file con un'altra app passando un token come parte di un'attivazione URI, ad esempio.

  • L'app di origine chiama il metodo AddFile per ottenere il token di condivisione passato all'app di destinazione, che viene avviata con un Uri.
  • L'app di destinazione chiama il metodo RedeemTokenForFileAsync per ottenere il file condiviso.
  • Facoltativamente, l'app di origine può chiamare il metodo RemoveFile per revocare un token ottenuto in precedenza chiamando il metodo AddFile . Per altre info sull'attivazione degli URI, vedi Avviare l'app predefinita per un URI.

L'uso della classe SharedStorageAccessManager e dei token di condivisione è soggetto ai requisiti e alle restrizioni seguenti.

  • Un token di condivisione può essere riscattato una sola volta. Successivamente, il token non è più valido.
  • Un token di condivisione scade dopo 14 giorni e non è più valido.
  • L'app di origine non può ottenere più di mille token di condivisione. Una volta riscattato, rimosso o scaduto, un token non viene più conteggiato rispetto alla quota dell'app di origine.

I file di rete non sono supportati con questa classe.

Metodi

AddFile(IStorageFile)

Ottiene il token di condivisione che consente a un'app di condividere il file specificato con un'altra app.

RedeemTokenForFileAsync(String)

Ottiene un file condiviso da un'altra app fornendo il token di condivisione ricevuto dall'app di origine.

RemoveFile(String)

Revoca un token di condivisione esistente.

Si applica a