2013-05-20 12 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内で呼び出しが行われ、iframeデータを取得するためにJavaScriptが挿入されていると想定しています。しかし、それは私には醜いようです。

質問:ウェブビュー内に読み込まれたiframe内のクリックをどのように検出しますか?

ありがとうございます!

答えて

4

私は問題が何かを発見したと思います。私はSame Origin Policyを壊しました。ウェブ開発を行っている同僚が正しい方向に私を指摘しました。

ドキュメント全体(iFrameを含む)は、iframeを含むものとは異なる起点(スキーム、ホスト名、ポート番号の組み合わせ)を持っています。それらのフレーム(ドキュメントと内部iframeを含む)が異なる起源を持つ限り、それらは通信できません。だから私はshouldOverrideUrlLoadingへの呼び出しを得ていない。

EDIT:「アクセス制御 - 許可 - 起源:のiframeを含む応答で次のヘッダーを追加します。それがセキュリティポリシー上乗り越えるための方法があるが、それは受け入れられたセキュリティ上のリスクが付属しているようです。 * "

+0

@gunnarビデオを再生することは可能ですか?私は多くのものを見つけることができますが、私のシナリオには適合しない答えが必要です。 –

+0

@NitinMisra:あなたが直面している問題は何ですか? StackOverflowで新しい質問を作成し、そのURLで新しいコメントを送信してみませんか?このようにして私はあなたの質問を理解することができますし、誰かが答えを知っているかもしれない大きなチャンスを持っています。 – gunar

関連する問題