我正在开发一个应用程序,我需要从javascript向android本机发送一个方法请求,并需要在本机端实现代码。 我的javascript文件包含。
function _CBSubscribeForNative( eventName, Message, Data ) {
try {
Android.CallFromJavaScript(eventName,Message.data);
}//...
在Main.java文件中,我使用以下代码。
{
WebView wv = (WebView) findViewById(R.id.webView1);
WebSettings webset = wv.getSettings();
webset.setJavaScriptEnabled(true);
wv.loadUrl("file:///android_asset/DocApt/DocApt/DocAptApp/72/index.html");
wv.addJavascriptInterface(new AndroidBridge(), "Android");
}//oncreate
private class AndroidBridge {
@SuppressWarnings("unused")
public void CallFromJavaScript(final String arg , final String arg1) {
System.out.println("222222222");
handler.post(new Runnable() {
public void run() {
String requestfrmjs = arg.toString();
Toast.makeText(getApplicationContext(), "received request is " + requestfrmjs, Toast.LENGTH_SHORT).show();
}
});
}
}
根据我的代码,我无法举杯。我的代码有什么问题吗?
任何人都可以帮我这个..
答案 0 :(得分:2)
第二个参数是您将在javascript上下文中访问第一个参数中传递的对象的名称。
所以是的,如果你想从javascript代码中调用该对象的某些方法或属性,你将需要稍后使用该名称。
请参阅addJavascriptInterface()的文档。