2014-07-22 3 views
5

Sto sviluppando il mio provider di archiviazione e utilizzo il codice di esempio "NewBox" di Apple (il suo collegamento è scaduto) come app host. Idealmente, spero di vedere che posso importare (copiare) file dal provider di archiviazione nella sandbox del mio NewBox o esportare/spostare file in altre app.iOS8: provider di archiviazione di estensione (importazione, esportazione, spostamento) non funziona

A Newbox applicazione ospite, quando voglio importare il file, io uso:

UIDocumentMenuViewController *vc = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeRTF,(NSString *)kUTTypePNG,(NSString *)kUTTypeText,(NSString *)kUTTypePlainText,(NSString *)kUTTypePDF, (NSString *)kUTTypeImage] inMode:UIDocumentPickerModeImport]; 



Una volta che prendo in mano un file, nel mio UIDocumentPickerExtensionViewController, invoco:

- (void)pickDocument:(NSURL *)documentURL { 
    [self dismissGrantingAccessToURL:documentURL]; 
} 


Dopo aver richiamato il comandoGrantingAccessToURL, la vista del selettore verrà chiusa e tornerà all'app host e verrà richiamato didPickDocumentAtURL dell'applicazione host.

Tuttavia, "didPickDocumentAtURL" riceve l'URL del file originale che ho selezionato, non il nuovo URL che il sistema copia nella sandbox di NewBox. Questo è anche familiare alle circostanze di esportazione e spostamento. Ho frainteso l'importazione/esportazione/spostamento? Ho pensato che questa azione sui file come la copia sulla sandbox dell'applicazione host venga eseguita dal sistema e l'app host otterrà un nuovo URL del file a cui accedere.

Ho provato su iOS8 beta4 e questo problema esiste ancora.

Grazie!

+0

Hey..Does questo metodo "didPickDocumentAtURL" di lavoro per te? .. Dopo prendo documenti da iCloud, il controllo non si avvicina nemmeno a questo metodo. . Cosa mi manca qui? –

+0

Intendi didPickDocumentAtURL dell'app host? Potrebbe essere un bug che a volte non ha chiamato. Chiuderò manualmente l'app e riproverò con il corretto richiamo. – user3793349

risposta

3

L'URL si ottiene da documentPicker:didPickDocumentAtURL: dipende l'operazione:

  • Import/Export: /data/Containers/Data/Application/$(AppIDOfAppPresentingUIDocumentPickerViewController)/tmp/DocumentPickerIncoming/File.txt

  • Aperto/Move: /data/Containers/Shared/AppGroup/$(ExtensionAppGroupID)/File%20Provider%20Storage/File.txt

Dove "File.txt "può essere qualsiasi nome di file o percorso di file.

In caso di importazione, l'app che presenta il raccoglitore è responsabile dello spostamento del file nell'URL specificato in una posizione permanente. In caso di apertura o spostamento, l'app dovrebbe probabilmente salvare l'URL per uso futuro (utilizzarlo sempre in un coordinatore di file). In caso di esportazione, l'URL viene generalmente ignorato.

Il progetto Newbox può essere scaricato dal sito Web di Apple https://developer.apple.com/devcenter/download.action?path=/wwdc_2014/wwdc_2014_sample_code/newboxanintroductiontoiclouddocumentenhancementsinios8.0.zip

+0

Potete aiutare con http://stackoverflow.com/questions/30613645/add-edit-in-exel-or-edit-photo-extension – Durgaprasad

Problemi correlati