使用旧版 Chrome 的设备无法从 Chrome 自定义标签页使用深层链接

Lov*_*oid 3 android deep-linking chrome-custom-tabs

我从我的应用程序启动 ChromeCustomTabs。chorme 自定义选项卡中的页面显示一个按钮。单击该按钮时会触发一个深层链接,就像这样myapp://show/screen?id=123。我对应的意图过滤器是这样的:

            <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>
Run Code Online (Sandbox Code Playgroud)

问题:当用户点击该按钮时,只有当 chrome 的版本是最新的或最新的 74 时,它才会启动我的应用程序而它不会在旧版本的 chrome 浏览器上触发我的应用程序,例如在 65. .

Lov*_*oid 5

结果证明这是一个众所周知的问题。Navigation is Blocked当我在浏览器中连接我的模拟器开发工具时,我收到一条控制台消息。谷歌浏览器不会让深层链接打开应用程序,如果它是由 javascript 触发的。它必须是用户发起的操作。就我而言,在用户单击按钮后,在触发深层链接之前,在 ajax 调用之后完成了一系列操作。

作为一种解决方法,一旦单击按钮并完成所有 ajax 调用的 web,它就会重定向到新的中间屏幕。此屏幕创建了一个按钮,供用户单击(继续)。单击此按钮后,深层链接成功重定向到应用程序。