web-dev-qa-db-fra.com

"Safari ne peut pas ouvrir la page car l'adresse n'est pas valide" lors de l'accès au lien de branche avec l'application désinstallée

J'intègre une application avec Branch.io et j'ai rencontré un problème dans Safari (je l'ai testé sous iOS 11, mais le problème pourrait également apparaître dans d'autres versions).

En gros, si mon application est installée et que j'ouvre un lien rapide dans Safari ou Chrome, tout fonctionne correctement et je reçois un message pour ouvrir le lien dans l'application. Cependant, si je désinstalle l'application et que je clique sur le lien dans Safari, le message suivant s'affiche:

 error message on Safar

Lorsque je tape sur le bouton OK, je reçois un message pour ouvrir l'Appstore, ce qui correspond au comportement souhaité. Existe-t-il un moyen d'empêcher le message "Safari ne peut pas ouvrir la page car l'adresse est invalide"? J'ai essayé d'ouvrir le lien dans Chrome sans l'application installée et tout fonctionne correctement.

J'ai utilisé le guide d'installation officiel et entré mon schéma d'URI, mais j'ai désactivé les liens universels car je les gère moi-même. Cela pourrait-il causer le problème?

10

Aaron de Branch.io ici

Vous obtenez probablement cette erreur car Branch tente de lancer votre application via des schémas d'URI lorsque l'application n'est pas installée. Depuis iOS 9.2, Apple ne prend plus officiellement en charge les schémas d'URI pour la liaison en profondeur, et il est vivement conseillé aux développeurs d'implémenter des liens universels afin d'obtenir une fonctionnalité équivalente sur iOS.

Plus précisément, les schémas d'URI personnalisés présentent des inconvénients importants, notamment l'incapacité de gérer facilement ces deux situations:

  • Lorsque l'application n'est pas installée.
  • Lorsque plusieurs applications tentent de revendiquer myapp: //.

Pour cette raison, nous vous recommandons d'activer les liens universels dans votre tableau de bord Branch. Tout ce que vous avez à faire est de fournir votre identifiant de paquet et votre préfixe d'application, et Branch hébergera le fichier AASA pour vous.

15
aaron

Moi aussi j'avais ce problème, mais j'ai constaté que, en suivant les instructions de la section Test de l'application Branch Test, j'ai pu ouvrir l'application sans l'avertissement de Safari.

https://github.com/BranchMetrics/ios-branch-deep-linking/tree/master/Branch-TestBed-Swift#test

1. If the app was installed on the test device already:
    * Delete the app from the device
    * Clear Safari web content, history and cookies (Settings > Safari > Clear History and Website Data)
    * Reset the device's IDFA (Settings > Privacy > Advertising > Reset Advertising Identifier...)
2. Create a Marketing link from the Branch dashboard
3. Paste the link into Notes on an iPhone
4. Tap the link - you will get redirected to the web page
5. ...
7
Gary Kerr

J'espère que ça aide quelqu'un.

  1. Allez à: https://dashboard.branch.io/link-settings/general

 enter image description here

Ces identifiants et préfixes de votre tableau de bord Apple: https://developer.Apple.com/account/ios/identifier/bundle

  1. Ajouter un fichier ASAA sur votre serveur

Instruction: https://developer.Apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#// Apple_ref/doc/uid/TP40016308-CH12-SW2

Si brièvement, créez le fichier https://yourdomain.com/.well-known/Apple-app-site-association (sans .json).
Contenu du fichier (c'est le mien, je ne sais pas exactement quel objet a exactement besoin, j'ai ajouté les deux): 

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "YOURPREFIX.com.your.id",
                "paths": [ "*" ]
            },
            {
                "appID": "com.your.id",
                "paths": [ "*" ]
            }
        ]
    }
}
  1. Encore une fois, allez à https://dashboard.branch.io/link-settings/general et changez pour:
     enter image description here

J'espère que cela aidera quelqu'un à créer des liens de base sans erreurs et à ouvrir automatiquement l'application.

0
Oleg Reym