このリンク: http://lexandera.com/category/webview_examples/ は、次のように WebView によってレンダリングされる Web ページに JavaScript を挿入できることを示しています。
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('body')[0].style.color = 'red'; " +
"})()");
}
});
さらに一歩進んで、キーを押すと実行される関数を挿入したいと思います。
私は使用しています:
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:function keyHandler(e) { " +
"document.getElementsByTagName('body')[0].style.color = 'red'; " +
"}");
}
});
ページはすでに作成されており、 document.onkeypress = keyHandler が含まれています。これにより、私の知る限り、ページで発生するキーイベントで keyHandler 関数をフックする必要があります。
問題は、それが機能しないことです。キーが押されたときにテキストを赤く変更したい。代わりに、ページがレンダリングされ、キーを押す前にテキストが赤くなります。
これがどのように連携するかを誤解していますか?
そして、私が何かをハッキングしようとしているわけではありません。これの全体的なポイントは、私の雇用主が Android WebView でレンダリングするために作成した Web ページにカスタム JavaScript 応答を提供することです。