我通过这种方式为我的Android应用添加了深层链接:
<activity
android:name=".views.DeepLinkingActivity"
android:exported="true">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"/>
</intent-filter>
</activity>
当我点击https://example.com
时,我会被重定向到网站。
当我将android:scheme="https"
更改为android:scheme="appscheme"
时,它会正常运行并将其重定向到我的应用。
如何强制通过https
计划打开我的应用程序?
更新
我添加了一个子域,但它仍无效。
<activity
android:name=".views.DeepLinkActivity"
android:exported="true">
<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:scheme="https"
android:host="www.example.ru"/>
</intent-filter>
</activity>
答案 0 :(得分:2)
感谢veritas1,我从https计划中删除了android:autoVerify="true"
。我还将方案从https
更改为http
。 (您可以阅读有关autoVerify的信息。)
因此,目前有两种不同的方案:
<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="your-site.com"
android:pathPrefix="/"
android:scheme="http"
/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="your-site.com"
android:pathPrefix="/"
android:scheme="myapp"
/>
</intent-filter>
单击链接myapp://your-site.com / ...时,将打开一个应用程序。单击http://your-site.com/ ...时,Chrome浏览器将提供在应用程序或其他浏览器中打开的功能,而其他移动浏览器会忽略此设置,并尝试自行打开。
更新
有关应用程序链接,请参见https://stackoverflow.com/a/60342565/2914140。
答案 1 :(得分:1)
您好请使用以下数据,并尝试参考此doc
<intent-filter>
<data
android:scheme="ou unique scheme(appname,package name)" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
OR
<data
android:scheme="you unique scheme(appname,package name)"
android:host="www.example.ru"/>
答案 2 :(得分:0)
试试这个
<activity
android:name=".views.DeepLinkingActivity"
android:exported="true">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="open"
android:scheme="example" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="example.com"
android:pathPrefix="/"
android:scheme="http" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="example.com"
android:pathPrefix="/"
android:scheme="https" />
</intent-filter>
</activity>
答案 3 :(得分:0)
您指的是深层链接,但android:autoVerify="true"
用于App链接,因此域android:host="www.example.com"
(您不拥有?)将会检查数字资产链接json文件。见Redefinitions of constexpr static data members are allowed now? (but not inline const)?
为了让您的测试有效,我建议您删除web browser
并向主机添加子域名,例如web browser
答案 4 :(得分:0)
Please check below it may be help
答案 5 :(得分:0)
只需使用 http 即可。不知道实施何时发生变化。
但我刚刚测试过,使用 http 会使http和https工作。
所以改变你的意图过滤器:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http"
android:host="example.com"/>
</intent-filter>
答案 6 :(得分:0)
您还可以添加
sub.example.com
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="example.com" />
<data android:scheme="app" android:host="com.example.example" />
</intent-filter>