2015-10-09 10 views
0

Я хочу, чтобы мое приложение работало с глубокими ссылками. Для начала я хочу, чтобы мое приложение будет показано в диалоговом окне Chooser при вводе в www.example.com/gizmos Для этого, как я понимаю, я должен ничего, чем изменить AndroidManifest.xmlГлубокая ссылка Android не работает

Мой AndroidManifest.xml

... 
<activity 
     android:screenOrientation="portrait" 
     android:name=".activity.Landing" 
     android:label="@string/title_activity_maps" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <!-- FOR DEEP LINKS--> 
     <intent-filter> 
      <data android:scheme="example" 
       android:host="gizmos" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 
</activity> 

Теперь, когда я введите в блокнот, браузер и т. д. «www.example.com/gizmos» страница открывается в браузере, но диалог выбора не появляется, когда мое приложение должно быть опцией.

Что мне здесь не хватает?

ответ

1

Вы используете ошибочный код intent-filter. Задайте этот вопрос:

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

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

    <data 
     android:host="www.example.com" 
     android:pathPrefix="/gizmos" 
     android:scheme="http"/> 
</intent-filter> 
+0

Спасибо , Я сначала написал тег данных, и, как вы описали, он работал хорошо. – KasparTr

1

Для проверки глубокой связи вы можете использовать консоль ADB. Измените следующую команду для ваших нужд:

adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "http://www.example.com/gizmos" 

Если вам нужны параметры запроса команда должна выглядеть следующим образом:

adb shell 'am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "http://www.example.com/gizmos?myKey=myValue"' 

И тег данные должны выглядеть следующим образом:

<data 
    android:host="www.example.com" 
    android:path="/gizmos/" 
    android:scheme="http"/> 
+0

Спасибо, метод тестирования помог мне быстро отладить. Ваш тег данных не работал, но я использовал Mattia awnser и поместил тег первым в фильтр. После этого он работал. Еще раз спасибо :) – KasparTr

+0

Да, вы должны заботиться о конце косой черты. Я думаю, что если вы попробуете слэш в конце, мой тег данных будет работать :) –

Смежные вопросы