Javascript 在iOS中阻止webview中的iframe内部重定向

Javascript 在iOS中阻止webview中的iframe内部重定向,javascript,ios,redirect,iframe,uiwebview,Javascript,Ios,Redirect,Iframe,Uiwebview,我目前正在开发一个web应用程序,该应用程序加载在移动应用程序的webview中的iframe中。当用户单击一个按钮时,我执行一个AJAX请求,一旦得到成功响应,我需要通过修改window.top.location.href将用户重定向到另一个页面。这在大多数情况下都有效,但在某些iOS应用程序中,在相当多的情况下不会执行重定向 我曾试图搜索有关这方面的信息,但由于特殊的设置,我真的没有找到任何东西。我不控制iOS应用程序,只控制在iframe中运行的应用程序,因此调试相当困难 当重定向失败时,

我目前正在开发一个web应用程序,该应用程序加载在移动应用程序的webview中的iframe中。当用户单击一个按钮时,我执行一个AJAX请求,一旦得到成功响应,我需要通过修改
window.top.location.href
将用户重定向到另一个页面。这在大多数情况下都有效,但在某些iOS应用程序中,在相当多的情况下不会执行重定向

我曾试图搜索有关这方面的信息,但由于特殊的设置,我真的没有找到任何东西。我不控制iOS应用程序,只控制在iframe中运行的应用程序,因此调试相当困难

当重定向失败时,它会以静默方式执行。如果我检查应用程序的网络流量,我可以看到没有对我尝试重定向到的URL发出请求

我目前的假设是,重定向作为一种安全措施被阻止,因为它不是用户交互的直接结果。您单击一个按钮,发出请求,然后重定向在一两秒钟后发生(取决于请求所需的时间)。我尝试用两种方法来验证这一点:

  • 在进行重新测试时,在随机、不可交互的位置点击屏幕。如果有一种简单的计时器在您与设备交互时重置,以确定是否允许重定向,那么点击应该使重定向工作。据我所知,情况确实如此,但很难证实这不是由其他原因造成的

  • 在重定向之前引入人为延迟。因此,即使请求在500毫秒后完成,我也要再等待5秒钟,然后再执行重定向。这将导致重定向始终失败。这样做似乎也支持我的假设,但同样,很难知道这是否是原因


  • 还有其他人经历过这个问题吗?如果是这样的话,我的假设正确吗?除了添加“单击继续”按钮来实际执行重定向之外,您是否想出了另一种解决方法?有关于这种行为的文档吗?

    我也遇到过同样的问题。模拟单击可以实现以下目的:

    document.getElementById('linkElementID').click();