从 Android 上的 Facebook 应用程序中打开我们的电子商务网站,会在 Facebook 网络视图中打开页面本身。执行购买时,会打开外部应用程序进行数字识别,然后用户必须返回 Facebook 网络视图。返回 Facebook 后 - 用户应该被重定向到感谢页面。
这在 iOS 中运行良好。但是 - 在某些 Android 手机中这不起作用。假设 Facebook Web 视图会阻止以编程方式启动的重定向,因为将 URL 放入用户点击的链接中效果很好。
该问题在使用 Android 12 和 Facebook 应用的 Pixel 中重现,但该重定向在同一部手机上的其他一些网页视图应用中有效,这使得 Facebook 应用成为可疑。
经过测试的不同重定向方法有或没有延迟:
//1
document.location = url;
//2
window.location.replace(url);
//3
window.location.href = url;
//4
window.top.location.replace(url);
//5
window.location.replace(url);
window.location.reload();
//6
window.top.location.href = url;
window.open(url);
//7
if (!!(window.history && history.replaceState)) {
window.history.replaceState(
{},
"a title",
url
);
}
//8
document.location = url;
document.location.reload()
它们似乎都不起作用。关于如何解决这个问题还有其他建议吗?非常感谢!
我们也遇到了这个问题(我假设您正在谈论 BankID 身份验证)。这似乎是 Android 上的一项安全功能,在不同的 webview 组件中以不同的方式体现出来。
两者都与 https://issues.chromium.org/issues/41328386有关。
我们最终得到的解决方案是显示一个带有按钮的额外屏幕来捕获用户交互。之后重定向工作正常。
流程如下所示: