¿Es posible iniciar una aplicación arbitraria de iPhone desde otra aplicación ?, por ejemplo, en mi aplicación si quiero que el usuario presione un botón y se inicie directamente en la aplicación del teléfono (cierre la aplicación actual, abra la aplicación del teléfono) .
¿Sería esto posible? Sé que esto se puede hacer para hacer llamadas telefónicas con el enlace tel URL, pero en su lugar quiero que la aplicación Teléfono se inicie sin marcar ningún número específico.
fuente
Descubrí que es fácil escribir una aplicación que pueda abrir otra aplicación.
Supongamos que tenemos dos aplicaciones llamadas
FirstApp
ySecondApp
. Cuando abrimos FirstApp, queremos poder abrir SecondApp haciendo clic en un botón. La solución para hacer esto es:En SecondApp
Vaya al archivo plist de SecondApp y necesita agregar un esquema de URL con una cadena iOSDevTips (por supuesto, puede escribir otra cadena. Depende de usted).
2) En FirstApp
Cree un botón con la siguiente acción:
Eso es. Ahora, cuando puede hacer clic en el botón de FirstApp, debería abrir SecondApp.
fuente
Info.plist
elFirstApp
. Luego agregue los esquemas que su aplicación desea abrir, en este casoItem 0
seríaiOSDevTips
LSApplicationQueriesSchemes
a su Info.plist para poder abrir SecondApp.La respuesta de Lee es absolutamente correcta para iOS anterior a 8.
En iOS 9+, debe incluir en la lista blanca cualquier esquema de URL que su aplicación quiera consultar en Info.plist bajo la clave LSApplicationQueriesSchemes (una serie de cadenas):
fuente
En veloz
En caso de que alguien estuviera buscando una copia y pegado rápida de Swift.
fuente
Para poder abrir su aplicación desde otra, deberá realizar cambios en ambas aplicaciones. Estos son los pasos para usar Swift 3 con la actualización de iOS 10 :
1. Registre su aplicación que desea abrir
Actualice
Info.plist
definiendo el esquema de URL personalizado y único de su aplicación.Tenga en cuenta que el nombre de su esquema debe ser único; de lo contrario, si tiene otra aplicación con el mismo nombre de esquema de URL instalado en su dispositivo, entonces se determinará el tiempo de ejecución que se abre.
2. Incluya el esquema de URL anterior en su aplicación principal
Deberá especificar el esquema de URL que desea que la aplicación pueda usar con el
canOpenURL:
método de laUIApplication
clase. Abra las aplicaciones principalesInfo.plist
y agregue el esquema de URL de la otra aplicaciónLSApplicationQueriesSchemes
. (Introducido en iOS 9.0)3. Implemente la acción que abre su aplicación
Ahora todo está configurado, por lo que puede escribir su código en su aplicación principal que abre su otra aplicación. Esto debería verse más o menos así:
Tenga en cuenta que estos cambios requieren una nueva versión si desea que se abra su aplicación existente (instalada desde AppStore). Si desea abrir una aplicación que ya ha lanzado a Apple AppStore, primero deberá cargar una nueva versión que incluya su registro de esquema de URL.
fuente
Aquí hay un buen tutorial para iniciar la aplicación desde otra aplicación:
SDK de iOS: trabajar con esquemas de URL
Y, no es posible iniciar una aplicación arbitraria, sino las aplicaciones nativas que registraron los esquemas de URL .
fuente
Para lograr esto, necesitamos agregar algunas líneas de código en ambas aplicaciones
Aplicación A: que desea abrir desde otra aplicación. (Fuente)
Aplicación B : desde la aplicación B desea abrir la aplicación A (destino)
Código para la aplicación A
Agregue algunas etiquetas a la lista de aplicaciones A Fuente de lista abierta de aplicaciones A y anteriores debajo de XML
En la aplicación delegado de la aplicación A : obtenga la devolución de llamada aquí
Ahora llegando al código de la aplicación B -
Si solo desea abrir la aplicación A sin ningún parámetro de entrada
Si desea pasar el parámetro de la aplicación B a la aplicación A , use el siguiente código
Nota: También puede abrir la aplicación con solo escribir testApp.linking: //? en el navegador safari
fuente
Pruebe el siguiente código que lo ayudará a iniciar una aplicación desde su aplicación
Nota: Reemplace el nombre fantacy con el nombre real de la aplicación
fuente
Solo puede iniciar aplicaciones que hayan registrado un esquema de URL. Luego, al igual que abres la aplicación de SMS usando sms :, podrás abrir la aplicación usando su esquema de URL.
Hay un muy buen ejemplo disponible en los documentos llamado LaunchMe que demuestra esto.
Código de muestra de LaunchMe a partir del 6 de noviembre de 2017.
fuente
No, no es. Además de los controladores de URL documentados, no hay forma de comunicarse con / iniciar otra aplicación.
fuente
También probé esto hace un tiempo ( Iniciar la aplicación de iPhone con identificador ), pero definitivamente no hay una forma DOCUMENTADA de hacer esto. :)
fuente
En Swift 4.1 y Xcode 9.4.1
Tengo dos aplicaciones 1) PageViewControllerExample y 2) DelegateExample. Ahora quiero abrir la aplicación DelegateExample con la aplicación PageViewControllerExample. Cuando hago clic en el botón Abrir en PageViewControllerExample, se abrirá la aplicación DelegateExample.
Para esto, necesitamos hacer algunos cambios en los archivos .plist para ambas aplicaciones.
Paso 1
En la aplicación DelegateExample, abra el archivo .plist y agregue Tipos de URL y Esquemas de URL. Aquí necesitamos agregar nuestro nombre requerido como "myapp".
Paso 2
En la aplicación PageViewControllerExample, abra el archivo .plist y agregue este código
Ahora podemos abrir la aplicación DelegateExample cuando hacemos clic en el botón PageViewControllerExample.
fuente
Una nota al margen sobre este tema ...
Hay un límite de 50 solicitudes para protocolos que no están registrados.
En esta discusión, Apple menciona que para una versión específica de una aplicación, solo puede consultar
canOpenUrl
un número limitado de veces y fallará después de 50 llamadas para esquemas no declarados . También he visto que si el protocolo se agrega una vez que haya entrado en este estado fallido, seguirá fallando.Tenga en cuenta esto, podría ser útil para alguien.
fuente
Swift 3 versión rápida y pegada de @ villy393 respuesta para:
fuente