2

我正在开发一个应用程序,我需要将一个方法请求从 javascript 发送到 android native,并且需要在 native 端实现代码。我的 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();
    }       
    });
    }
    }

根据我的代码,我无法烤面包。我的代码有什么问题吗?

谁能帮我这个..

4

1 回答 1

2

第二个参数是您将在 javascript 上下文中访问您在第一个参数中传递的对象的名称。

所以是的,如果您想从 javascript 代码中调用该对象的某些方法或属性,您将需要稍后使用该名称。

请参阅addJavascriptInterface()的文档。

于 2012-09-29T14:24:50.107 回答