webview中的Android-javascript接口
我正在尝试将javascript接口与google maps 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
我搜索了一下,发现了一种几乎与此相似的方法 这是我的代码:
<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);