2012-03-02 4 views
10

Ho un'app per iPhone che alcuni dei miei utenti sono in esecuzione sul loro iPad in modalità emulazione. Stiamo pensando di creare anche un'app ottimizzata per iPad, che sarebbe un'app separata nell'App Store (più funzionalità, diversi prezzi).Come posso trasferire un documento tra due app sullo stesso dispositivo iOS?

Il problema è: se un utente sta eseguendo l'app per iPhone su un iPad e poi acquista la nostra versione ottimizzata per iPad, come può migrare i propri dati dall'app solo per iPhone e nella nuova app per iPad?

Ecco alcune alternative che ho considerato:

  • Come raccomandato in altri SO domande, il portachiavi sicuro. Il problema è che questo consente di trasferire solo una piccola porzione di dati. I nostri utenti hanno probabilmente decine di megabyte di dati
  • La registrazione di schemi URI (suggerita anche in altre domande SO, sembra anche progettata solo per piccole quantità di dati)
  • Consenti all'utente di caricare i dati da iPhone -solo app per un servizio come Dropbox o box.net, quindi dalla versione iPad, scaricare di nuovo quei dati. Il vantaggio è che questi servizi hanno API molto semplici; lo svantaggio è che l'utente potrebbe aver bisogno di creare un account aggiuntivo e/o scaricare un'altra app solo per spostare i dati
  • Creare un documento iCloud. No iscrizione necessaria, ma la creazione di archiviazione iCloud è, per dirla alla leggera, non banale

ci sono altre opzioni per il trasferimento di decine di megabyte di dati tra due applicazioni sullo stesso dispositivo.

+0

Qual è la tua prova sull'affermazione che gli schemi URI sono solo per piccole quantità di dati? Esiste un limite di lunghezza per gli URL passati dall'app all'app? Altrimenti si potrebbe semplicemente basare il codice 64 per codificare i dati e inserire tutto ciò che si desidera. Non credo ci sia un codificatore base 64 integrato nell'API (sebbene siano davvero facili da scrivere), ma esiste un decodificatore implicito poiché NSURL supporta 'data:' URL e 'NSData' possono caricarli da essi. – Tommy

risposta

13

È possibile utilizzare un UIDocumentInteractionController per consentire all'utente di aprire un documento in qualsiasi app sul dispositivo che ha registrato il supporto per il tipo di documento.

Ciò farà comunque una copia del documento nella sandbox dell'app per iPad. Non c'è modo di aggirare questo.

+0

grazie. Avete ulteriori dettagli su come funzionerebbe? – Bill

+0

Quali dettagli hai bisogno che non sono nella guida che ho collegato? –

+0

Bene, ad esempio: in che modo la nuova app per iPad ottiene un percorso o gestisce il documento nell'altra app? La descrizione nella guida suggerisce che è possibile aprire i file solo quando il delegato dell'app viene avviato con argomenti specifici.Questo sembra un modo promettente per farlo (nessun trasferimento remoto coinvolto, nessun account separato) ma non ho mai sentito parlare di UIDIC usato in questo modo. – Bill

1

anche se un po 'è richiesto più lavoro, ma data la quantità di dati da trasferire è relativamente piccolo, è possibile impostare un server come mezzo uomo. Il più grande vantaggio è che le persone possono anche trasferire i dati tra iPhone e iPad anziché solo intra-iPad.

Potrebbe essere semplice come un pulsante "trasferimento in iPad" che richiede all'utente di creare un nome utente e una chiave di accesso temporanei, quindi trasferisce i dati in un database SQL. Quindi sul lato iPad, tutto ciò che dovresti fare è sincronizzare i dati, autenticarsi e scaricare. Il database potrebbe essere eliminato da dati superiori a dieci giorni per mantenere le dimensioni in crescita.

+0

Sfortunatamente, come ho detto, stiamo parlando di decine di megabyte di dati. Sarebbe troppo lungo mandarlo su e giù, userebbe i piani dati dei miei utenti e mi richiederebbe di pagare per un mucchio di spazio di archiviazione nel cloud. Sto cercando un modo per trasferire i dati senza lasciare il dispositivo. – Bill

+0

@Bill decine di megabyte non richiede troppo tempo per il wi-fi e offre un buon costo di servizio :) –