Android(安卓)Java中调用js代码,js中调用Java代码
16lz
2021-01-26
主要概括:
1. Java 中调用 js 代码,主要在 (1) 设置js在webview 中可以使用 webView.getSettings().setJavaScriptEnabled(true);
(2)加载网页代码 webview.loadUrl();
(3)设置内容渲染 不然弹不出alert ,内容渲染需要webChromeClient 去实现,设置webChromeClient基类
webView.setWebChromeClient(new WebChromeClient());
(4)调用js中函数 webview.loadUrl("javascript:showMsg()");
2. js 调用Java 代码 ,(1)在 在webview中 有 WebView.addJavascriptInterface(Object object,String name) 方法,传递两个参数
第一个是 被js调用的类 ,第二个是别名 ,在js中使用的 对象名
(2) js 代码中 直接用 WebView.addJavascriptInterface(Object object, String name) 方法 第二个参数名.方法名 调用Java中方法。
java 代码
package com.tong.androidtest;import android.annotation.SuppressLint;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.webkit.WebChromeClient;import android.webkit.WebView;import android.widget.Button;@SuppressLint("JavascriptInterface")public class MainActivity extends Activity {private Button but_js = null;private WebView web = null;private JsKit jsKit = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);but_js = (Button) findViewById(R.id.but_js);web = (WebView) findViewById(R.id.web);web.getSettings().setBuiltInZoomControls(true);//内容渲染需要webChromeClient 去实现,设置webChromeClient基类,解决alert 不弹出问题web.setWebChromeClient(new WebChromeClient());web.getSettings().setJavaScriptEnabled(true);jsKit = new JsKit(this);web.addJavascriptInterface(jsKit, "myjs");web.loadUrl("file:///android_asset/test.html");but_js.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {web.loadUrl("javascript:showMsg()");}});}}
html 代码:测试js使用
package com.tong.androidtest;import android.content.Context;import android.widget.Toast;public class JsKit {private Context context;public JsKit(Context context){this.context = context;}public void showMsg(String msg){Toast.makeText(context, msg, 2000).show();};}
更多相关文章
- Android(安卓)自定义dialog
- Android中两种设置全屏的方法!!!
- android 通过设置intent-filter 启动程序
- 2012Android开发热门资料(110个)
- Android(安卓)OTA升级(2):开启升级过程
- Android(安卓)访问权限清单
- android 两种全屏
- Android(安卓)Service使用
- 在intellij idea 中进行android 单元测试