[SWIFT] Résolution du problème selon lequel canOpenURL devient faux lors de la modification du navigateur / messagerie par défaut sur iOS14 et des résultats de l'enquête de déploiement horizontal

Environnement prérequis

Événement problématique

Exemple de code:

let url = URL(string: "https://qiita.com")!
guard UIApplication.shared.canOpenURL(url) else {
    return
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)


Étapes pour changer le navigateur par défaut sur Chrome

  1. Installez Chrome sur les appareils iOS 14.
  2. Sélectionnez Paramètres> Chrome.
  3. Une liste de navigateurs s'affichera, alors sélectionnez Chrome.

Cause

Si vous définissez le navigateur par défaut sur autre chose que Safari (Chrome, etc.) sur iOS 14.0 ou version ultérieure, ** ʻUIApplication.shared.canOpenURL () `renvoie false. ** **

solution de contournement

** Cela peut être évité en définissant "https" et "http" dans LSApplicationQueriesSchemes dans Info.plist. ** **

Événements liés

Dans iOS 14, vous pouvez également modifier le mailer par défaut. ** De même pour "mailto" **, si vous ne l'ajoutez pas à LSApplicationQueriesSchemes, ʻUIApplication.shared.canOpenURL () `retournera false si le mailer par défaut a changé.

Enquête de déploiement horizontal

Les informations ci-dessus sont des informations utiles obtenues à partir de l'article «Reference Link» à la fin de la phrase. Je tiens à exprimer ma profonde gratitude aux auteurs.

D'autre part, ce qui suit est le résultat de mes propres recherches supplémentaires.

Programmes d'application téléphonique "tel" et "telprompt"

"tel" est documenté dans Apple URL Schemes C'est un schéma qui est. "telprompt" est un schéma non documenté.

Les deux lanceront l'application téléphonique sur iOS 14 sans les ajouter à LSApplicationQueriesSchemes.

Au fait, je me demandais "Et si je pouvais changer la valeur par défaut de l'application téléphone à l'avenir?", J'ai donc ajouté "tel" à LSApplicationQueriesSchemes, et cela fonctionne bien même si je l'ajoute (naturellement?).

Schéma "boîte à chaussures" de l'application Wallet

Schéma non documenté. L'application Wallet se lancera sur iOS 14 sans l'ajouter à LSApplicationQueriesSchemes.

Application Paramètres

Ce schéma est ʻUIApplication.openSettingsURLString` au lieu d'une chaîne, mais (bien sûr) l'application Paramètres se lancera sur iOS 14 sans l'ajouter aux LSApplicationQueriesSchemes.

Organiser les résultats de la vérification

Lien de référence

[IOS14] CanOpenURL devient faux lors du changement de navigateur par défaut À surveiller pour iOS 14

Recommended Posts

Résolution du problème selon lequel canOpenURL devient faux lors de la modification du navigateur / messagerie par défaut sur iOS14 et des résultats de l'enquête de déploiement horizontal
[IOS] canOpenURL devient faux dans iOS14