webview中的Android-javascript接口

webview中的Android-javascript接口,javascript,android,webview,interface,Javascript,Android,Webview,Interface,我正在尝试将javascript接口与google maps javascript库一起使用。 我搜索了一下,发现了一种几乎与此相似的方法 这是我的代码: <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> <script type="text/javascript"> function testAPI() { JSInterface.te

我正在尝试将javascript接口与google maps javascript库一起使用。
我搜索了一下,发现了一种几乎与此相似的方法

这是我的代码:

 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>

 <script type="text/javascript">
    function testAPI() {
        JSInterface.test();
    }
 </script>
 <script>
  // gooogle maps code 
  // 
 </script>
 </head>
 <body>
 <div id="map-canvas"></div>
 <div><input type="button" value="Make Toast" onClick="testAPI()" /></div>
我在这里创建了所有:

myBrowser = (WebView) findViewById(R.id.mybrowser);

    myBrowser.setWebChromeClient(new WebChromeClient() {
        public void onGeolocationPermissionsShowPrompt(String origin,
                GeolocationPermissions.Callback callback) {
            callback.invoke(origin, true, false);
        }
    });
    myBrowser.getSettings().setJavaScriptEnabled(true);
    String javascrips = null;
    // myBrowser.loadUrl("file:///android_asset/geolocation.html");
    try {
        AssetManager am = getAssets();
        InputStream input = am.open("geolocation.html");
        int size;
        size = input.available();
        byte[] buffer = new byte[size];
        input.read(buffer);
        input.close();
        javascrips = new String(buffer);
    } catch (IOException e) {
        e.printStackTrace();
    }
    jsInterface = new JavaScriptInterface(this);
    myBrowser.addJavascriptInterface(jsInterface, "JSInterface");

    myBrowser.loadDataWithBaseURL("file:///android_res/raw/", javascrips,
            "text/html", "UTF-8", null);

当单击按钮(带有testAPI()函数的javascript输入)时,什么都没有发生,Toast没有显示为什么

尝试将@JavascriptInterface添加到test()方法中


需要以JellyBean开头的注释吗?它在没有mapsapi的情况下工作吗?好的,您可能需要先修复它。html中对
testAPI()
的调用后面是否应该有分号?我做的java比javaScript多;)不,我不这么认为,我也试过了。Welcome,当我们更改默认构建平台时,在一天中的大部分时间里,我都被难住了。
myBrowser = (WebView) findViewById(R.id.mybrowser);

    myBrowser.setWebChromeClient(new WebChromeClient() {
        public void onGeolocationPermissionsShowPrompt(String origin,
                GeolocationPermissions.Callback callback) {
            callback.invoke(origin, true, false);
        }
    });
    myBrowser.getSettings().setJavaScriptEnabled(true);
    String javascrips = null;
    // myBrowser.loadUrl("file:///android_asset/geolocation.html");
    try {
        AssetManager am = getAssets();
        InputStream input = am.open("geolocation.html");
        int size;
        size = input.available();
        byte[] buffer = new byte[size];
        input.read(buffer);
        input.close();
        javascrips = new String(buffer);
    } catch (IOException e) {
        e.printStackTrace();
    }
    jsInterface = new JavaScriptInterface(this);
    myBrowser.addJavascriptInterface(jsInterface, "JSInterface");

    myBrowser.loadDataWithBaseURL("file:///android_res/raw/", javascrips,
            "text/html", "UTF-8", null);