2014-09-23 124 views
1

我尝试添加在Android深度链接,所以在我的网页我更换一个iframe这样Android的深层链接

<iframe scrolling="no" width="1" height="1" style="display: none;" 
src="myscheme://post/5002"></iframe> 

,并在我的manifest.xml(Android应用程序)

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

但当我打开网页在铬它没有显示“打开与”对话框来选择我的应用程序

我测试了深度连接android使用此和对话框出现

adb shell am start -W -a android.intent.action.VIEW -d "myscheme://whatever" 
+0

您正在测试哪种Android版本? – dirkoneill 2014-10-17 19:17:41

回答

2

Chrome for Android版本25及更高版本的功能稍有变化。通过设置iframe的src属性不再可能启动Android应用程序。应使用“意图:”语法代替

意图://主机/#意图;方案=协议;包= com.domain.apppackage;端

用于基于意图的URI的基本语法如下:

意图: HOST/URI路径//可选主机
#Intent;
package = [string];
action = [string];
category = [string];
component = [string];
scheme = [string];
end;

请检查该page

1

iframe解决方案不再有效使用Chrome的最新版本。 Anas说你需要用“intent:// ..:”地址创建一个链接。用户还需要执行一些操作才能打开链接。

为了解决这个问题,我创建了一个链接缩短工具。你可以在这里使用它: http://www.uppurl.com/

此工具将创建一个基于用户浏览器的相应深层链接的照顾。我建议你使用它,因为它为你解决了很多工作,你甚至不需要修改或有一台服务器。

0

不知道,但你可以尝试使用JavaScript来代替IFRAME:

location.href = "myscheme://post/5002" 

而且,只是为了测试是否它的工作或根本没有,你可以尝试设置主机和路径数据中的元素意图过滤器:

<data android:scheme="myscheme" 
        android:host="post" 
        android:pathPrefix="502">