2013-05-20 123 views
5

我有一個WebView,我加載了一個JavaScript,加載一些內容。該內容是一個帶有iframe的html。WebView檢測點擊iframe

iframe中的任何點擊似乎沒有觸發調用WebViewClient#shouldOverrideUrlLoading(WebView view, String url); webview已設置WebViewClientWebChromeClient

我可以看到的解決方法是在WebView上調用getSettings().setSupportMultipleWindows(true),然後在onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg)內假設調用是在iframe內進行的,並使用一些插入的javascript來獲取iframe數據。但那對我來說似乎很醜。

所以,問題:你如何檢測在webview中加載的iframe中的點擊?

謝謝!

回答

4

我想我已經發現了什麼問題:我打破了Same Origin Policy。一位正在進行網絡開發的同事指出我正確的方向。

整個文檔(包含iFrame)具有與包含iframe不同的原點(方案,主機名和端口號的組合)。只要這些框架(包含文檔和內部iframe)具有不同的來源,它們就無法通信。這就是爲什麼我沒有打電話給shouldOverrideUrlLoading

編輯:似乎有一種方法立交橋上面的安全策略,但那是公認的安全風險:添加下列頭中包含iframe中迴應:「訪問控制允許來源: *

+0

@gunnar是否有可能現在播放視頻,我非常需要一些答案,我發現很多但不適合我的場景。 –

+0

@NitinMisra:你面臨的問題是什麼?你爲什麼不在StackOverflow上創建一個新的問題,用它的URL發送一個新的評論。通過這種方式,我可以理解你的問題,並且你有更大的機會讓其他人知道答案。 – gunar