Android 深度 link 仅适用于某些网站
Android deep link working only in some websites
我在我的应用程序中使用应用程序索引,但有时它无法正确接收来自 Chrome 的意图。
如果我从我的生产网站打开 link,它会被 chrome 打开。所以我创建了一个具有相同代码的测试站点。但是,在这种情况下,我的应用程序可以正确打开深度 link。
我找不到任何解释,因为它在网络(但在不同的站点)和相同的 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>
如果我在此地址(生产)中打开 link,它会打开 Play 商店(link 的末尾是重定向到 Google Play):
https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados
如果我在另一个地址(测试)中打开 link,它会正确打开我的应用程序:
https://central-splice-128620.appspot.com/parada/1/plaza-mariano-granados
我不明白为什么 link 的处理方式不同。谢谢。
编辑:
是否因为我在同一站点内关注 link?
https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados
=>
https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/playstore
如果您在 Android 浏览器(Android 4.2 之前的默认浏览器)中测试它,它可以工作。所以它似乎是 Android chrome 浏览器的一项功能。
从这里引用:https://developer.chrome.com/multidevice/android/intents
And Chrome doesn’t launch an external app for a given Intent URI in the following cases.
When the Intent URI is redirected from a typed in URL.
When the Intent URI is initiated without user gesture.
在您的情况下,它与键入的 url 相同。
如果您想从 chrome.
打开它,您应该尝试 Google 推荐的上面页面中的 intent://
语法
我在我的应用程序中使用应用程序索引,但有时它无法正确接收来自 Chrome 的意图。
如果我从我的生产网站打开 link,它会被 chrome 打开。所以我创建了一个具有相同代码的测试站点。但是,在这种情况下,我的应用程序可以正确打开深度 link。
我找不到任何解释,因为它在网络(但在不同的站点)和相同的 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>
如果我在此地址(生产)中打开 link,它会打开 Play 商店(link 的末尾是重定向到 Google Play):
https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados
如果我在另一个地址(测试)中打开 link,它会正确打开我的应用程序:
https://central-splice-128620.appspot.com/parada/1/plaza-mariano-granados
我不明白为什么 link 的处理方式不同。谢谢。
编辑:
是否因为我在同一站点内关注 link?
https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados => https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/playstore
如果您在 Android 浏览器(Android 4.2 之前的默认浏览器)中测试它,它可以工作。所以它似乎是 Android chrome 浏览器的一项功能。 从这里引用:https://developer.chrome.com/multidevice/android/intents
And Chrome doesn’t launch an external app for a given Intent URI in the following cases. When the Intent URI is redirected from a typed in URL. When the Intent URI is initiated without user gesture.
在您的情况下,它与键入的 url 相同。
如果您想从 chrome.
打开它,您应该尝试 Google 推荐的上面页面中的intent://
语法