2010-01-19 17 views
5

voglio condividere dati di testo tra due applicazioni per iPhone. Come posso usare paste board per questo scopo. Qualcuno può aiutarmi con un codice di esempio. Grazie in anticipo. Suggeriscimi se ci sono modi migliori di pasteboard per portare a termine il mio compito.condivisione dati tra due applicazioni per iPhone

risposta

7

Se si desidera semplicemente utilizzare IPC, fare in modo che entrambe le app riconoscano uno schema URL. Quindi chiamare

[[UIApplication sharedApplication] openURL: 
    [NSURL URLWithString:@"theOtherApp://dataToShare"]]; 

di inviare, e utilizzare -application:handleOpenURL: per ricevere.


Per condividere le stringhe tramite tavolo di montaggio, uso

UIPasteboard* board = [UIPasteboard generalPasteboard]; 
board.string = @"Some string to share"; 

per salvare e utilizzare board.string come un getter per recuperare la stringa di condividere. Ma se l'utente copia qualcosa tra i tuoi dati condivisi andranno persi.


In alternativa, è possibile condividere via roba:

  • AddressBook. Crea un contatto fittizio e usalo per la condivisione.
  • Portachiavi. Crea un oggetto portachiavi condiviso. 3.x solo.
  • Lettura/scrittura da cartelle condivise. /var/mobile/Library/AddressBook e Keyboard e Preferences sono accessibili anche se l'app è in modalità sandbox. Tuttavia, ciò potrebbe violare le regole dell'SDK.
0

È possibile utilizzare custom URL schemes per comunicare tra le app.

Non vorrei inquinare gli appunti dell'utente a meno che non volessero specificamente copiare qualcosa negli appunti - immagina la frustrazione di archiviare uno snippet di testo negli Appunti e poi avere qualche app che lo sovrascrive solo per inviare i dati a un'altra app. .. Non una buona esperienza utente.

Aggiornamento:

Come @ohhorob commentato, è possibile creare aree di lavoro personalizzate. Se vuoi condividere i dati tramite il pannello di montaggio, assicurati di creare il tuo (persistente) application pasteboard e usalo al posto del main pasteboard. Vedere here per ulteriori informazioni.

+2

Steve, non è necessario utilizzare il cartoncino generale come suggerito da KennyTM. I pannelli pasta possono avere un nome fisso specifico ed essere persistenti per altre app da usare. – ohhorob

+0

@ohhorob: Ah, giusto! Non ne ero consapevole. Grazie! –

Problemi correlati