我目前正在开发一个在移动应用中的webview内部加载到iframe内的Web应用程序。当用户单击按钮时,我执行AJAX请求,一旦获得成功响应,我需要通过修改window.top.location.href
将用户重定向到另一个页面。这适用于大多数情况,但在某个iOS应用中,重定向不会在相当多的情况下执行。
我试图搜索有关这方面的信息,但鉴于这种特殊的设置,我真的找不到任何东西。我不控制iOS应用程序,只控制在iframe中运行的应用程序,因此调试起来相当困难。
当重定向失败时,它会默默地执行此操作。如果我检查应用的网络流量,我可以看到没有请求我尝试重定向到的网址。
我目前的假设是重定向被阻止作为安全措施,因为它不是用户交互的直接结果。您单击一个按钮,发出请求,然后重定向发生一两秒钟(取决于请求需要多长时间)。我试图通过两种方式验证这一点:
在进行重新拍摄时,在随机,不可互动的位置点按屏幕。如果在您与设备交互时有某种简单的计时器被重置,为了确定是否允许重定向,那么点击应该使重定向工作。据我所知,情况确实如此,但很难确定它是不是由别的东西引起的。
在重定向之前引入人为延迟。因此,即使请求在500ms之后完成,我还需要等待5秒才能进行重定向。这应该导致重定向始终失败。这样做似乎也支持我的假设,但同样,很难知道这是否是原因。
还有其他人遇到过此问题吗?如果是这样,我的假设是否正确,你是否提出了另一种解决方法,而不是添加"点击继续"按钮实际上做重定向?是否有关于此行为的任何文档?
答案 0 :(得分:0)
我遇到了同样的问题。点击模拟可以解决问题:
document.getElementById('linkElementID').click();