Deep link 无法在 Chrome 自定义选项卡中使用具有旧版本 Chrome 的设备
Deep link not working from Chrome Custom Tabs with device having old version of Chrome
我从我的应用启动了 ChromeCustomTabs。 chorme 自定义选项卡中的页面显示一个按钮。单击该按钮会触发深度 link,例如 myapp://show/screen?id=123
。我对应的 intent-filter 是这样的:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="myapp"/>
<data android:host="show"
android:path="/screen"/>
</intent-filter>
问题:当用户点击该按钮时,仅当 chrome 的版本是最新版本或最新版本 74. 时,它才会启动我的应用程序。 而它不会在旧版本的 chrome 浏览器上触发我的应用程序,例如在 65..
事实证明这是一个众所周知的问题。当我在浏览器中连接我的模拟器开发工具时,我收到一条 Navigation is Blocked
控制台消息。 Google Chrome 不会让深层链接打开应用程序,如果它是由 javascript 触发的。它必须是用户启动的操作。在我的例子中,在用户点击按钮后,在深度链接被触发之前,ajax 调用后面做了一系列事情。
作为一种变通方法,单击该按钮并且网络完成所有 ajax 调用后,它会重定向到 new 中间屏幕。这个屏幕是用一个按钮创建的,供用户单击(继续)。单击此按钮后,深层链接成功重定向到应用程序。
我从我的应用启动了 ChromeCustomTabs。 chorme 自定义选项卡中的页面显示一个按钮。单击该按钮会触发深度 link,例如 myapp://show/screen?id=123
。我对应的 intent-filter 是这样的:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="myapp"/>
<data android:host="show"
android:path="/screen"/>
</intent-filter>
问题:当用户点击该按钮时,仅当 chrome 的版本是最新版本或最新版本 74. 时,它才会启动我的应用程序。 而它不会在旧版本的 chrome 浏览器上触发我的应用程序,例如在 65..
事实证明这是一个众所周知的问题。当我在浏览器中连接我的模拟器开发工具时,我收到一条 Navigation is Blocked
控制台消息。 Google Chrome 不会让深层链接打开应用程序,如果它是由 javascript 触发的。它必须是用户启动的操作。在我的例子中,在用户点击按钮后,在深度链接被触发之前,ajax 调用后面做了一系列事情。
作为一种变通方法,单击该按钮并且网络完成所有 ajax 调用后,它会重定向到 new 中间屏幕。这个屏幕是用一个按钮创建的,供用户单击(继续)。单击此按钮后,深层链接成功重定向到应用程序。