Android深度链接使用意向不打开应用程序



我正试图打开一个用移动chrome浏览器制作的应用程序。

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

从这个链接中,我发现我必须使用"intent:"语法来完成这项工作。

但是,我的应用程序无法打开。相反,它打开了Google 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 Store上发布应用程序才能实现这一点吗?

我还不太了解全部内容。

我想知道出了什么问题。

PS("myscheme"one_answers"myhost"这两个名字只是我为写这道题而编的。我的代码中的实际名称与项目设置中写入的名称相匹配,包括包名称。

正如Alexey在我的帖子中评论的那样,

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

对我来说还可以。

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

我想在25版之后,移动Chrome上有一些我错过或找不到的变化。

我刚刚遇到了同样的问题,与Intents链接不起作用,但直接方案链接起作用。然而,我不想使用直接版本来回退重定向到PlayStore。

解决方案是,intent链接中的包参数不必与AndroidManifest.xml中给定的包匹配。我正在处理一个Unity项目,必须使用项目设置中给定的捆绑包名称。

tl;dr:这在Chrome(v78(中仍然有效,但package参数不一定是清单中给定的包。

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

上面的示例代码显示包为my.test.app.package,如果这不是你的应用程序包名称,或者如果应用程序没有安装,则默认情况下,谷歌Play商店会搜索它。同样,如果你还没有,最好将hostscheme参数更改为你的应用程序自定义的参数。

我的答案是使用深度链接从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>

如果列出的应用程序安装在您的手机中,那么只有它会打开,或者您必须单独处理此情况。

相关内容

  • 没有找到相关文章

最新更新