【问题标题】:Interface between android to javascript?android到javascript之间的接口?
【发布时间】:2012-09-21 03:10:13
【问题描述】:

我正在开发一个应用程序,我需要将一个方法请求从 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();
    }       
    });
    }
    }

根据我的代码,我无法敬酒。我的代码有什么问题吗?

谁能帮帮我..

【问题讨论】:

    标签: javascript android interface webview


    【解决方案1】:

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

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

    请参阅addJavascriptInterface() 的文档。

    【讨论】:

    • 例如,给定您的代码,在 JavaScript 中,您可以调用 android.AN_CallFromJavaScript("foo", "bar");,这将由您的 AndroidBridge 类处理。
    • 根据您的回答,我正在使用的代码是否正确。在日志中也没有显示我从 javascript 获得的数据...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 2011-09-18
    • 2012-10-24
    • 2016-12-05
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多