2016-10-11 1 views
1

J'ai une activité qui filtre l'intention d'appliquer ouvrir deeplink, c'est mon filtre intention:Deep Linking Android sans Android: système

<intent-filter android:autoVerify="true"> 
       <category android:name="android.intent.category.DEFAULT" /> 

       <action android:name="android.intent.action.VIEW" /> 

       <category android:name="android.intent.category.BROWSABLE" /> 

       <data 
        android:host="www.example.com" 
        android:pathPattern="/..*" 
        android:scheme="https" /> 
</intent-filter> 

mon problème est, lorsque l'utilisateur ouvre un lien à-dire « www.example. com/somepage "à partir d'applications de messagerie par exemple Hangout, Whatsapp, sélecteur d'applications Android n'affiche pas les applications dans sa liste, il montre juste toutes les applications du navigateur dans les options. Mais quand l'utilisateur a mis "https://www.example.com/somepage" dans un message alors cela fonctionne, Android montre mon application dans son sélecteur d'application pour ouvrir le lien. Cela ne fonctionne pas non plus Lorsque j'essaie de supprimer android:scheme="https" de mon filtre d'intention.

est-ce que quelqu'un a le même problème et a une solution?

Toute aide vraiment appréciée.

Répondre

0

Ce comportement est attendu.

Ce que l'extrait suivant n'est d'enregistrer votre application en tant que gestionnaire pour le schéma d'URL https://

<data 
    android:host="www.example.com" 
    android:pathPattern="/..*" 
    android:scheme="https" /> 

Cela signifie que votre application sera proposée en option pour tout lien commençant par https:// et contenant www.example.com. La chaîne www.example.com/somepage n'est pas éligible, car il manque la partie https://.

Vous pouvez essayer d'ajouter un second filtre pour les liens http://. Je ne suis pas sûr si Android déduit automatiquement que le schéma pour les liens Web sans un schéma spécifié, il est donc possible que cela pourrait résoudre le problème.

<intent-filter android:autoVerify="true"> 
    <category android:name="android.intent.category.DEFAULT" /> 

    <action android:name="android.intent.action.VIEW" /> 

    <category android:name="android.intent.category.BROWSABLE" /> 

    <data 
     android:host="www.example.com" 
     android:pathPattern="/..*" 
     android:scheme="https" /> 

    <data 
     android:host="www.example.com" 
     android:pathPattern="/..*" 
     android:scheme="http" /> 
</intent-filter>