¿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?

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.

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.

Recomiendo eliminar la aplicación de LinkedIn de su dispositivo IOS y reinstalarla.

Probé en un dispositivo Iphone 5 con iOS 10. Hice clic en una URL de LinkedIn en un correo electrónico y desde un sitio web. Cada vez que se abrió en la aplicación de LinkedIn como se esperaba.

También le sugiero que verifique su versión de IOS en su dispositivo.

Espero que esto sea útil.

Sígueme en LinkedIn para obtener más prácticas e ideas de LinkedIn.