2015-06-06 155 views
2

我目前正在處理在移動應用程序的webview中的iframe內加載的web應用程序。當用戶點擊一個按鈕時,我執行一個AJAX請求,一旦我獲得了成功的響應,我需要通過修改window.top.location.href將用戶重定向到另一個頁面。這在大多數情況下都適用,但在某個iOS應用程序中,重定向不會在相當數量的情況下執行。在iOS中阻止的webview中的iframe中的重定向在iOS中阻止

我試過尋找有關這方面的信息,但考慮到特殊的設置,我還沒有真正能夠找到任何東西。我不控制iOS應用程序,只控制在iframe中運行的應用程序,因此調試相當困難。

當重定向失敗時,它會默默執行。如果我檢查應用程序的網絡流量,我可以看到沒有對我嘗試重定向到的URL進行請求。

我目前的假設是重定向被阻止作爲安全措施,因爲它不是用戶交互的直接結果。您點擊一個按鈕,發出請求,然後重定向發生一兩秒鐘後(取決於請求需要多長時間)。我曾嘗試用兩種方式來驗證這一點:

  1. 點擊屏幕隨機,非交互點,而reuqest正在取得。如果有某種簡單的定時器在您與設備進行交互時重置,則確定是否允許重定向,然後點擊應使重定向工作。據我所知,情況就是這樣,但很難確定它不是由其他東西引起的。

  2. 在重定向之前引入人爲延遲。因此,即使請求在500ms後完成,我還要等5秒鐘才能進行重定向。這應該導致重定向失敗一致。這樣做似乎也支持我的假設,但同樣,很難知道這是否是原因。

有其他人遇到過這個問題嗎?如果是這樣,我的假設是否正確,您是否想出了另一個解決方法,而不是添加「點擊繼續」按鈕來實際執行重定向?有沒有關於這種行爲的任何文件?

回答

0

我遇到了同樣的問題。點擊仿真訣竅:

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