2010-01-19 21 views
5

quiero compartir datos de texto entre dos aplicaciones de iphone. ¿Cómo puedo usar la tarjeta de pasta para este propósito? ¿Alguien puede ayudarme con un código de muestra? Gracias por adelantado. Sugiérame si hay formas mejores que la mesa de trabajo para llevar a cabo mi tarea.compartir datos entre dos aplicaciones de iphone

Respuesta

7

Si simplemente desea usar IPC, haga que ambas aplicaciones reconozcan algunos esquemas de URL. A continuación, llame

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

para enviar y recibir utilizan -application:handleOpenURL:.


Para compartir a través de las cadenas de la mesa de trabajo, utilice

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

a guardar y usar board.string como captador para recuperar la cadena de compartir. Pero si el usuario copia algo entre sus datos compartidos, se perderá.


Alternativamente, se puede compartir a través de la materia:

  • libreta de direcciones. Crea un contacto ficticio y úsalo para compartir.
  • Llavero. Hacer un elemento de llavero compartido. 3.x solamente.
  • Lectura/escritura desde carpetas compartidas. /var/mobile/Library/AddressBook y Keyboard y Preferences se puede acceder incluso si su aplicación es de espacio aislado. Sin embargo, esto puede violar las reglas de SDK.
0

Puede usar custom URL schemes para comunicarse entre sus aplicaciones.

No contaminaría el portapapeles del usuario a menos que quisieran copiar algo al portapapeles-imagine la frustración de almacenar un fragmento de texto en el portapapeles y luego tener alguna aplicación que sobrescribir solo para enviar datos a otra aplicación. .. No es una buena experiencia de usuario.

Actualización:

Como @ohhorob comentado, es posible crear mesas de trabajo personalizados. Si vas a compartir datos a través de la mesa de trabajo, asegúrate de crear tu propia mesa de trabajo (persistente) y úsala en lugar de la mesa de trabajo principal. Consulte here para obtener más información.

+2

Steve, no hay necesidad de usar el cartón general como lo sugirió KennyTM. Los Pasteboards pueden tener un nombre fijo específico y ser persistentes para otras aplicaciones. – ohhorob

+0

@ohhorob: ¡Ah, claro! No estaba enterado de eso. ¡Gracias! –

Cuestiones relacionadas