Tu preguntaste:
¿Cómo es que cuando hago clic en un enlace de LinkedIn en iOS Safari, la aplicación de LinkedIn no se inicia, pero cuando hago clic en un enlace de Twitter, se inicia la aplicación de Twitter?
Porque las personas de LinkedIn no han hecho la fontanería adecuada.
- ¿Debo aprender a desarrollar aplicaciones móviles híbridas o Android e iOS de forma nativa?
- ¿Qué tan segura es la huella digital almacenada con Apple Touch ID?
- ¿Con qué frecuencia vuelve a hacer una estructura alámbrica / boceto antes de pasar a Photoshop?
- ¿Cuáles son algunas inconsistencias de IU en iOS 10?
- Cómo desarrollar una aplicación para iOS que pueda ejecutar / compilar código
Tienes que sondear esto (el ejemplo es para LinkedIn):
- Digamos que el identificador del paquete en la aplicación es “com.LinkedIn.LinkedIniOSApp”
- En Info.plist para la aplicación, cree una clave de matriz CFBundleURLTypes
- Elija un nuevo identificador / esquema de URL; Esto le permite hacer un prefijo de URL que pertenece a su aplicación. El prefijo debe estar relacionado con su aplicación.
- En el elemento 0, agregue una clave CFBundleURLSchemes
- Establezca su valor de elemento 0 en comLinkedInLinkedIniOSApp ; este es tu prefijo URL
- Agregue otra clave CFBundleURLName
- Establezca el valor del elemento 0 en com.LinkedIn.LinkedIniOSApp ; esta es la aplicación
Ahora está listo para usar el esquema para abrir la aplicación desde un enlace en un sitio web, por ejemplo:
comLinkedInLinkedIniOSApp: // foo
Debe crear un href incrustado en una página web utilizando el nuevo esquema de URL; Por ejemplo, aquí hay una implementación muy simple:
Prueba la aplicación de LinkedIn
Si navega a esta página en el servidor web, donde sea que la haya almacenado, verá un solo enlace llamado “Probar aplicación de LinkedIn” en la página.
Haga clic en este enlace y se iniciará com.LinkedIn.LinkedIniOSApp .
La implementación típica es un poco más sofisticada; incluirá el uso de JavaScript para ofrecer solo la URL en el caso de un cliente iOS.
Además, causará específicamente la disposición de la aplicación en línea en el iFrame, servido desde el sitio web; de esa manera, cuando haga clic en el enlace de LinkedIn en alguna parte, irá al sitio y, en lugar de ir al sitio, abrirá la aplicación.
Su aplicación también necesitará un componente AppDelegate.m y luego deberá proporcionar una implementación real de:
– Aplicación (BOOL): (UIApplication *) aplicación openURL: (NSURL *) url sourceApplication: (NSString *) sourceAnotación de aplicación: (id) anotación
{
// en este ejemplo, la URL de donde vino el usuario es http://example.com/profile/?12345
// determina si el usuario estaba viendo un perfil
if ([[url path] isEqualToString: @ “/ profile”]) {
// cambia al controlador de vista de perfil
[self.tabBarController setSelectedViewController: profileViewController];
// extrae el número de identificación del perfil que se encuentra en la cadena de consulta
NSString * profileID = [consulta de URL];
// pasa profileID al controlador de vista de perfil
[profileViewController loadProfile: profileID];
}
devuelva SÍ;
}
Para decodificar la parte de la URL que sigue al // y dirigir la aplicación a la ubicación correcta dentro de la aplicación para tratar el contenido al que se accede a través de la URL.
En el caso de que la aplicación no esté instalada, es posible que desee ofrecer más JavaScript para instalar la aplicación en nombre del usuario, o puede recurrir a permitir el acceso a través de la interfaz de usuario web en lugar de utilizar la aplicación.
La forma más fácil de hacer esto a partir de iOS 6.0 o posterior Safari “banner inteligente”, como en:
Las partes se descomponen en:
- aplicación apple-itunes
El nombre del enlace de la aplicación para la metaetiqueta
- myAppStoreID
La URL de la aplicación en la tienda de aplicaciones; la forma de sacar esto es a través de iTunes Link Maker.
- myAffiliateData
Este bit es opcional y solo se aplica si está haciendo marketing de afiliación para la aplicación de otra persona y desea obtener crédito
- myURL
La URL que habría puesto allí, para acceder al contenido de la aplicación.
Obviamente, no todos los sitios enlazan solo con aplicaciones iOS o aplicaciones iOS. Es probable que LinkedIn no esté tan interesado en eso, por lo que la necesidad es la capacidad de intentar usar un esquema de URL y luego retroceder si no está allí.
Obviamente, condicionalizarías esto al ver un cliente iOS en primer lugar. Esta es una necesidad bastante común, por lo que hay muchos ejemplos de cómo hacer esto; Aquí hay un ejemplo:
JavaScript: ¿cómo detectar si el esquema de URL personalizado está disponible o no?
Si pega todo esto, cuando haga clic en una URL de LinkedIn, en lugar de navegar al sitio, irá al sitio inicialmente sin mostrar nada, y activará la carga de la Aplicación en lugar del sitio, dejando su navegador donde fue antes de hacer clic en el enlace.