首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android深度链接

Android深度链接
EN

Stack Overflow用户
提问于 2014-09-23 23:37:11
回答 3查看 2.3K关注 0票数 1

我正在尝试在Android上添加深度链接,所以在我的网页中,我替换了这样的iframe

代码语言:javascript
复制
<iframe  scrolling="no" width="1" height="1" style="display: none;" 
src="myscheme://post/5002"></iframe>

在我的manifest.xml (安卓应用)中

代码语言:javascript
复制
<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的深度链接,出现了一个对话框

代码语言:javascript
复制
adb shell am start -W -a android.intent.action.VIEW  -d "myscheme://whatever" 
EN

回答 3

Stack Overflow用户

发布于 2014-11-19 16:18:30

在Chrome for Android版本25及更高版本中,这一功能略有变化。不再可能通过设置iframe的src属性来启动Android应用程序。您应该改用“intent:”语法

intent://host/#Intent;scheme=protocol;package=com.domain.apppackage;end

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

意图:主机/URI-path //可选主机

#Intent;

package=string;

action=string;

category=string;

component=string;

scheme=string;

结束;

请检查此page

票数 2
EN

Stack Overflow用户

发布于 2015-06-21 17:23:25

对于最新版本的Chrome,iframe解决方案不再有效。正如Anas所说,您需要创建一个带有"intent://..:“地址的链接。此外,用户还需要执行一些操作才能打开链接。

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

此工具负责基于用户浏览器创建适当的深层链接。我建议你使用它,因为它为你解决了很多工作,而且你甚至不需要修改或拥有服务器。

票数 1
EN

Stack Overflow用户

发布于 2015-11-26 18:15:34

不确定,但您可以尝试使用JavaScript而不是iframe:

代码语言:javascript
复制
location.href = "myscheme://post/5002"

此外,为了测试它是否正常工作,您可以尝试在intent-filter中设置数据元素的host和path:

代码语言:javascript
复制
<data android:scheme="myscheme"
                  android:host="post"
                  android:pathPrefix="502">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25999192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档