【发布时间】:2014-08-03 23:56:13
【问题描述】:
我正在尝试在 android 应用程序中建立 javascript 和 java 之间的连接,并且我能够以一种方式控制 javascript,它用 111111 填充“gsm_num”字段,然后用 222222 填充,但它不能调用函数“jsmessage”在java中...我尝试在整个点击功能之前移动@SuppressLint(“JavascriptInterface”),但它无法打印js消息... 有人可以告诉我我做错了什么吗?
@Override
public void onClick(View arg0) {
String url = "http://www.page.com";
wv.loadUrl(url);
setContentView(wv);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view1, String url) {
view1.getSettings().setJavaScriptEnabled(true);
view1.loadUrl("javascript: document.getElementById('gsm_num').value = '11111111'; document.forms['button'].submit();");
view1.setWebViewClient(new WebViewClient() {
@SuppressLint("JavascriptInterface")
@JavascriptInterface
public void onPageFinished(WebView view2, String url) {
final class JavaScriptInterface {
JavaScriptInterface () { }
public void jsmessage() {
Log.e("btijs", "message");
}
}
view2.getSettings().setJavaScriptEnabled(true);
view2.addJavascriptInterface(new JavaScriptInterface(), "JSInterface");
view1.loadUrl("javascript: document.getElementById('gsm_num2').value = '2222222'; window.JSInterface.jsmessage();");
}
});
}
});
}
});
【问题讨论】:
标签: java javascript android interface bridge