2011-11-11 11 views
8

Es posible que dos aplicaciones accedan a documentos en otras aplicaciones dado que tienen el mismo identificador de lote de paquete. Sé que es posible compartir elementos en el llavero con aplicaciones que comparten un identificador de semilla del paquete (see here).iOS Aplicaciones compartiendo directorios de documentos

Por ejemplo, supongamos que tiene una aplicación que tiene una versión gratuita y una versión de pago. ¿Es posible que después de que alguien se haya actualizado de la versión gratuita a la versión paga, pueda migrar sus datos a la versión paga?

Respuesta

4

No puede compartir directorios de documentos entre aplicaciones. Pero hay otros canales de comunicación abiertos.

El llavero es una posibilidad, como usted mencionó.

Otro podría ser esquemas de URL personalizados. Tal vez un poco como este:

  1. La aplicación gratuita registra la posibilidad de abrir URL con el esquema freeapp://. De manera similar, la aplicación profesional registra la capacidad de abrir URL con el esquema proapp://. Use la entrada "Tipos de URL" en la lista de información.
  2. Pro comprueba si app [UIApplication canOpenURL:@"freeapp://goPro"] == YES
  3. Si es verdad la aplicación pro llama [UIApplication openURL:@"freeapp://goPro"]
  4. Esto lanza la aplicación gratuita que debe aplicar handleOpenURL de UIApplication.
  5. La aplicación gratuita empaqueta los datos necesarios en una URL. Puede usar parámetros similares a HTTP si lo desea. También puedes construir un diccionario y serializarlo en una cadena larga hexadecimal usando NSCoding.
  6. La aplicación gratuita pasa los datos a la aplicación Pro utilizando [UIApplication openURL:@"proapp://YOUR_DATA_IN_WHATEVER_FORMAT"]
  7. La aplicación Pro recibe la dirección URL en su implementación sustituida del handleOpenURL de UIApplication y realiza la migración de datos necesaria.

Obviamente, desea utilizar esquemas de URL más exclusivos que los anteriores.

Sin embargo, tenga en cuenta las implicaciones de seguridad de poder insertar este tipo de datos en su aplicación utilizando las URL. Probablemente esté bien para muchos propósitos, pero estoy seguro de que si la aplicación de Facebook proporcionara una forma de deshabilitar la configuración de su cuenta a través de una URL, a algunas personas les parecería gracioso publicar enlaces facebookapp://reset_my_account en todas partes.

Consejo de bonificación: Los esquemas de URL también son muy útiles para cerrar la brecha entre el código nativo y las vistas web. He tenido algunas aplicaciones con una vista web incrustada que muestra una página en un servidor bajo mi control. La página web puede comunicarse con la aplicación estableciendo la ubicación del documento desde JS. La aplicación puede interceptar la solicitud en el delegado de la vista web y responder a la vista web usando stringByEvaluatingJavaScriptFromString.

Cuestiones relacionadas