2016-10-11 14 views
1

У меня есть деятельность, применить фильтр намерений, чтобы открыть Deeplink, это мой фильтр намерений:Android Deep Linking без андроида: Схема

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

моя проблема, когда пользователь открывает ссылку т.е. «www.example. com/somepage "из приложений для обмена сообщениями, например, Hangout, Whatsapp, Android app chooser не отображает приложения в своем списке, он просто показывает все приложения для браузера в настройках. Но когда пользователь помещает «https://www.example.com/somepage» в сообщение, тогда он работает, Android показывает мое приложение в своем App Chooser, чтобы открыть ссылку. Он также не работает Когда я пытаюсь удалить android:scheme="https" из моего фильтра намерений.

Есть ли у кого-то проблемы и есть решение?

Любая помощь действительно ценится.

ответ

0

Ожидаемое поведение.

Что делает следующий фрагмент кода, это зарегистрировать свое приложение в качестве обработчика для схемы https://

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

URL Это означает, что ваше приложение будет предлагаться в качестве опции для любого звена, начиная с https:// и содержащей www.example.com. Строка www.example.com/somepage не подходит, так как отсутствует https://.

Вы можете попробовать добавить второй фильтр для http:// ссылок. Я не уверен, что Android автоматически обнаружит это в качестве схемы для веб-ссылок без указанной схемы, поэтому вполне возможно, что это может решить проблему.

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