Android深度链接使用意图无法打开应用程序

问题描述 投票:0回答:3

我正在尝试打开我使用移动Chrome浏览器制作的应用。

https://developer.chrome.com/multidevice/android/intents

从这个链接,我想我必须使用“intent:”语法来完成这项工作。

但是,我的应用程序无法打开。相反,它会打开Goog​​le Play商店,但商店只会显示“找不到商品”页面。

我很想知道我做错了什么。

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />

            <data android:scheme="myscheme" android:host="myhost" android:path="/"/>
        </intent-filter>

这是我写的意图过滤器。

var androidIntentUrl = 'intent://myhost/#Intent;scheme=myscheme;package=my.test.app.package;end';

if(!isIOS && isChromeAndBiggerThanVer25()) {
        location.href = androidIntentUrl;
}

这就是我在网上写的。

该应用程序必须在Play商店发布才能实现这一目标吗?

我还不太了解整个东西。

我想知道什么是错的。

PS)名字“myscheme”和“myhost”只是我编写这个问题的名字。我的代码中的实际名称与我在项目设置中编写的名称相匹配,包括包名称。

android google-chrome android-intent android-manifest deep-linking
3个回答
2
投票

正如Alexey评论我的帖子,

<a href="myscheme://myhost/some/other/parameters">

工作对我来说还不错。

我仔细检查了官方文档(我的帖子上的链接)和我的chrome版本(这是71),所以我不知道为什么intent://语法不起作用。

我想在版本25之后移动版Chrome上有些更改我错过或找不到。


0
投票

package参数应该与您的应用程序ID匹配(可在build.gradleAndroidManifest.xml中找到)

上面的示例代码将包显示为my.test.app.package,如果这不是您的应用包名称,或者如果未安装该应用,则意图将默认​​为Google Play商店进行搜索。同样,如果您尚未将hostscheme参数更改为自定义的应用程序,最好将其更改为。


0
投票

我的答案是使用深层链接从Web应用程序打开android应用程序:

Flipkart     - <a href="flipkart://app"> Open Flipkart!  </a>
WhatsApp     - <a href="whatsapp://app"> Open WhatsApp!  </a>
Clash Royale - <a href="clashroyale://app"> Open Clash Royale!  </a>
FaceBook     - <a href="fb://app"> Open FaceBook!  </a>

如果列出的应用程序已安装在您的手机中,则只会打开它,或者您必须单独处理该案例。

© www.soinside.com 2019 - 2024. All rights reserved.