Android deep linking, не может фильтровать намерение с помощью схемы "android-app"
Я следую за App Indexing API doc .
Мой URI приложения - android-app://com.mypackagename.app/intro/intro/
, поэтому я добавляю его в файл манифеста под <activity>
<activity
android:name=".MainActivity"
android:label="@string/config_app_name"
android:screenOrientation="portrait"
android:enabled="true"
android:exported="true"
>
<intent-filter android:label="test">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="android-app"
android:host="com.mypackagename.app" />
</intent-filter>
</activity>
Но когда вы идете и тестируете мою глубокую ссылку, как сказано в Test your deep link на моем телефоне, Ссылка android-app://com.mypackagename.app/intro/intro/
не может быть открыта, есть тост, говорящий "нет установленных приложений, которые могут справиться с этим"
Что я упускаю? Спасибо
Update: в документации, указанной Маттиа, определенно есть возможность поставить какая бы схема ни была, например "пример", но у меня она не работает. Я на леденце, если это имеет значение.
<intent-filter android:label="@string/filter_title_viewgizmos">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos" -->
<data android:scheme="example"
android:host="gizmos" />
</intent-filter>
Update 2 : все, что после пакета, является схемой, в моем случае android-app://com.mypackagename.app/intro/intro/
, это intro
. Отмеченный ответ ниже
1 ответ:
Вы должны использовать ваш домен, а не
android-app
и ваш пакет, как вы можете видеть в документации .Попробуйте следующий пример:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test"> <application android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:windowSoftInputMode="stateVisible"> <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="yourdomain" android:scheme="example" /> </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.yourdomain.com" android:scheme="http" /> </intent-filter> </activity> </application> </manifest>
Чем тестировать здесь с этими значениями (изменить
com.example.test
с именем пакета вашего приложения):android-app://com.example.test/http/www.yourdomain.com/page android-app://com.example.test/example/yourdomain/page
Когда вы отсканируете штрих-код и нажмете ссылку, ваше приложение откроется автоматически.