Uma*_* A. 5 javascript java android webview
我编写了一段Java代码,旨在通过android WebView网关从Javascript调用Java代码.
webView = (WebView) findViewById(R.id.captchaView);
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);
webView.loadUrl("https://google.com/");
webView.setWebViewClient(BrowserHandler);
webView.addJavascriptInterface(new IJavascriptHandler(), "cpjs");
WebViewClient BrowserHandler = new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.cpjs.onPageLoaded(document.body.innerHTML);void(0);");
}
};
final class IJavascriptHandler {
IJavascriptHandler() {
}
public void onPageLoaded(String html) {
// this is called from JS
Toast t = Toast.makeText(getApplicationContext(), "Yes", 2000);
t.show();
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码检查网页加载,一旦页面加载完成,它将调用从Java公开的javascript函数,以便它可以从页面中携带我需要的东西.
这没有按预期工作它只是每隔几秒刷新页面.我不确定这里有什么问题?
嗯,你所做的事情中有很多很奇怪的地方。
从 Java 中,您正在触发 Javascript...回调到 Java。您假设这是安全的。
你正在加载Google主页,当它遇到Android浏览器时,它将执行重定向,这是我上次检查的。
您正在尝试显示 a Toast,但您不知道该代码是否会在主应用程序线程上运行。
| 归档时间: |
|
| 查看次数: |
9077 次 |
| 最近记录: |