J'ai pu ouvrir les applications de safari de cette façon:
window.location = 'myapp://do/xx';
ou ouvrez l'application facebook:
window.location = 'fb://';
Mais cela a cessé de fonctionner dans iOS9.
Comment puis-je ouvrir des applications à l'aide de schémas d'URL dans Safari?
Mise à jour de Shchemes URL IOS 9: iOS 9 introduit LSApplicationQueriesSchemes pour permettre aux applications de rechercher si d'autres applications sont installées.
1- Si un schéma d'url est déclaré et appeler canOpenURL (schéma)
OUI si une application installée prend en charge ce schéma d'URL
NON si aucune application ne prend en charge cette URL
syslog affichera canOpenURL: échoué pour l'URL: "urlScheme: //" - erreur: null
2- Si un schéma d'url n'est pas déclaré et appeler canOpenURL (schéma)
toujours retourner NON
syslog affichera canOpenURL: échoué pour l'URL: "urlScheme: //" - erreur: null
Dans iOS 9, le développeur doit ajouter ces informations.plist LSApplicationQueriesSchemes
<array>
<string>urlscheme</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
50 max. le schéma d'URL unqiue peut être déclaré!
Avec la version générale du paramètre ios9, window.location vers une URL personnalisée lance l'application, mais uniquement après que l'utilisateur a ouvert la fenêtre. J'ai déposé un bug avec Apple à ce sujet, et ils ont répondu en disant que c'était un comportement prévu pour lancer une application à partir de safari. Ils ont dit qu'ils examineraient le problème où si vous appuyez sur annuler, il échoue sur les tentatives futures.
Avec iOS9, Apple modifie certaines choses concernant les schémas d'URL. Ici est un article sur ces changements.
Fondamentalement, vous avez pour enregistrer tous les schémas d'URL pris en charge par votre application dans votre fichier .plist.
Attribuez simplement l'adresse souhaitée à la propriété href
, au lieu d'essayer de remplacer l'ensemble window.location
objet:
window.location.href = 'myapp://do/xx';
Cela fonctionne pour moi sur iOS 9.0.2, mais maintenant safari affiche une boîte de dialogue de confirmation pour s'assurer qu'un utilisateur veut vraiment ouvrir votre lien dans l'application.