此链接: http: //lexandera.com/category/webview_examples/ 表示您可以将 javascript 注入到由 WebView 呈现的网页中,如下所示:
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 AFAIK 应该将我的 keyHandler 函数与页面上发生的任何关键事件挂钩。
问题是,它不起作用。我希望它在按下一个键时将文本更改为红色。相反,在我按下任何键之前,页面被渲染并且文本变为红色。
我是否误解了这一切如何协同工作?
就这样,我没有试图破解某些东西,这一切的重点是为我的雇主创建的要在 Android WebView 中呈现的网页提供自定义 javascript 响应。