我正在尝试在Android上添加深层链接,因此在我的网页中我替换了像这样的iframe
<iframe scrolling="no" width="1" height="1" style="display: none;"
src="myscheme://post/5002"></iframe>
和我的manifest.xml(android app)
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myscheme" />
</intent-filter>
</activity>
</application>
但是当我用chrome打开网页时,它没有显示“打开方式”对话框来选择我的应用
我使用此测试了android的深层链接,然后出现对话框
adb shell am start -W -a android.intent.action.VIEW -d "myscheme://whatever"
答案 0 :(得分:2)
Chrome for Android版本25及更高版本的功能略有改变。通过设置iframe的src属性,无法再启动Android应用。你应该使用“intent:”语法来代替
intent:// host /#Intent; scheme = protocol; package = com.domain.apppackage; end
基于意图的URI的基本语法如下:
意图: HOST / URI-path //可选主机
#意图;
包= [字符串];
行动= [字符串];
类别= [字符串];
成分= [字符串];
方案= [字符串];
结束;
请查看此page
答案 1 :(得分:1)
使用最新版本的Chrome,iframe解决方案无效。正如阿纳斯所说,你需要创建一个带有&#34;意图:// ..:&#34;的链接。地址。用户还需要执行一些操作来打开链接。
为了解决这个问题,我创建了一个链接缩短工具。你可以在这里使用它: http://www.uppurl.com/
此工具负责根据用户浏览器创建适当的深层链接。我建议您使用它,因为它为您解决了很多工作,您甚至不需要修改或拥有服务器。
答案 2 :(得分:0)
不确定,但您可以尝试使用JavaScript而不是iframe:
location.href = "myscheme://post/5002"
另外,只是为了测试它是否正常工作,您可以尝试在intent-filter中设置数据元素的主机和路径:
<data android:scheme="myscheme"
android:host="post"
android:pathPrefix="502">