android java和js交互
16lz
2021-01-23
android本地java代码和javascript的交互
java调用js
- 通用设置
mWebView = (WebView) findViewById(R.id.web_view); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(this, "jsbridge"); mWebView.loadUrl("file:///android_asset/demo_java_js_call.html");
不带参数
mBtnJavaCallJsWithoutParam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:java_call_js_without_param()"); } });
带参数
mBtnJavaCallJsWithParam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String param = "'a param from java'";//注意引号 mWebView.loadUrl("javascript:java_call_js_with_param(" + param + ")" ); } });
js调用java
- 设置
mWebView.addJavascriptInterface(this, "jsbridge");
不带参数
js:<a onClick="window.jsbridge.callFromJs()">点击这里-->调用java代码,无参数</a><br/>java: @JavascriptInterface public void callFromJs() { Toast.makeText(this, "callFromJs, 无参", Toast.LENGTH_LONG).show(); }
带参数
js:<a onClick="window.jsbridge.callFromJsWithParam('来自js的参数')">点击这里-->调用java代码并传递参数</a><br/>java: @JavascriptInterface public void callFromJsWithParam(String param) { Toast.makeText(this, "callFromJs, 参数是:" + param, Toast.LENGTH_LONG).show(); }
其他
- 完整示例 https://github.com/cheyiliu/JsJavaInteractInAndroid
- js返回值问题 http://stackoverflow.com/questions/3298597/how-to-get-return-value-from-javascript-in-webview-of-android
- jsbridge(js桥)开源库推荐 https://github.com/pedant/safe-java-js-webview-bridge
更多相关文章
- android电话拨号器源代码
- Anko:Android 代码动态布局的新方案
- Android 获取系统权限的代码
- 编译代码报出Android library projects cannot be launched错误
- 解决Eclipse3.6中Android 代码自动补全卡死的问题
- Android性能检测--traceview工具各个参数的意思
- android 下测试网络的丢包率和延迟 的代码
- 《Android/OPhone 开发完全讲义》已出版,现提供源代码下载
- 如何关联androidSDK源代码