8

我在我的应用程序中使用应用程序索引,但有时它无法正确接收来自 Chrome 的意图。

如果我从我的生产网站打开链接,它是由 chrome 打开的。所以我创建了一个具有相同代码的测试站点。但是,在这种情况下,我的应用程序正确打开了深层链接。

我找不到任何解释,因为它在网络(但在不同的站点)和相同的 Android 应用程序中使用相同的代码。

这是我的意图过滤器:

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" android:host="soriabus-web.appspot.com" android:pathPrefix="/" />
        </intent-filter>

这是我的按钮中的 html 代码:

<a href="https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/true"
"type="button"
role="button"
class="btn btn-primary">
Abrir Soria Bus
</a>

如果我打开此地址中的链接(生产),它会打开 Play 商店(链接末尾是指向 Google Play 的重定向):

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados

如果我在这个其他地址(测试)中打开链接,它会正确打开我的应用程序:

https://central-splice-128620.appspot.com/parada/1/plaza-mariano-granados

我不明白为什么链接的处理方式不同。谢谢你。

编辑:

是因为我关注的是同一个站点内的链接吗?

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados => https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/playstore

4

1 回答 1

2

如果您在 Android 浏览器(Android 4.2 之前的默认浏览器)中对其进行了测试,它可以工作。因此,这似乎是 Android chrome 浏览器的一项功能。从这里引用:https ://developer.chrome.com/multidevice/android/intents

在以下情况下,Chrome 不会为给定的 Intent URI 启动外部应用程序。

当 Intent URI 从键入的 URL 重定向时。
当 Intent URI 在没有用户手势的情况下启动时。

在您的情况下,它与键入的 url 相同。

intent://如果你想从 chrome 打开它,你应该尝试谷歌推荐的上面页面的语法。

于 2016-11-08T02:28:43.683 回答