Android 深层链接是断断续续的
Android Deep linking is intermittent
我们有一个 Andriod 应用程序,我们可以从中开始浏览器体验和加载页面。
在浏览器页面上有两个按钮 "Agree" 和 "Cancel"。我们有一个深度 link URL,它在单击两个按钮时被调用,并将用户从旅程开始的地方带回到应用程序。
功能上的唯一区别是单击 "Agree" 我们正在进行支持调用,在我们收到大约 10-15 秒的响应后,我们只是将 chrome 重定向到深度 link url.
"Cancel" 似乎工作得更少,但是单击 "Agree" 按钮浏览器无法理解 deep-link url 并在相同的地方进行重定向浏览器会话。
这就是我们将 chrome 重定向到 deep-link url.
的方式
window.location.replace(redirectUrl);
这是我们调试的结论。我们发现代码中没有任何遗漏。
Chrome 在以下情况下不会为给定的 Intent URI 启动外部应用程序。
当从 URL 中键入的 Intent URI 重定向时。
在没有用户手势的情况下启动 Intent URI 时。
单击“取消”按钮时,它一直在工作,因为没有后端调用。
在同意按钮上,我们调用后端,完成承诺后,我们将重定向回应用程序。在那种情况下,chrome 不会一直将此视为用户手势,因此会间歇性地失败。
解决此问题的一种方法是不打开新浏览器 window 在 Android WebView 中打开体验。
我们有一个 Andriod 应用程序,我们可以从中开始浏览器体验和加载页面。
在浏览器页面上有两个按钮 "Agree" 和 "Cancel"。我们有一个深度 link URL,它在单击两个按钮时被调用,并将用户从旅程开始的地方带回到应用程序。
功能上的唯一区别是单击 "Agree" 我们正在进行支持调用,在我们收到大约 10-15 秒的响应后,我们只是将 chrome 重定向到深度 link url.
"Cancel" 似乎工作得更少,但是单击 "Agree" 按钮浏览器无法理解 deep-link url 并在相同的地方进行重定向浏览器会话。
这就是我们将 chrome 重定向到 deep-link url.
的方式window.location.replace(redirectUrl);
这是我们调试的结论。我们发现代码中没有任何遗漏。
Chrome 在以下情况下不会为给定的 Intent URI 启动外部应用程序。 当从 URL 中键入的 Intent URI 重定向时。 在没有用户手势的情况下启动 Intent URI 时。
单击“取消”按钮时,它一直在工作,因为没有后端调用。 在同意按钮上,我们调用后端,完成承诺后,我们将重定向回应用程序。在那种情况下,chrome 不会一直将此视为用户手势,因此会间歇性地失败。
解决此问题的一种方法是不打开新浏览器 window 在 Android WebView 中打开体验。