主要概括:

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();};}


更多相关文章

  1. Android(安卓)自定义dialog
  2. Android中两种设置全屏的方法!!!
  3. android 通过设置intent-filter 启动程序
  4. 2012Android开发热门资料(110个)
  5. Android(安卓)OTA升级(2):开启升级过程
  6. Android(安卓)访问权限清单
  7. android 两种全屏
  8. Android(安卓)Service使用
  9. 在intellij idea 中进行android 单元测试

随机推荐

  1. Android夸进程通信机制一:多进程简介
  2. android 2048游戏、kotlin应用、跑马灯、
  3. Android中layout_gravity和gravity的区别
  4. 七款android地图 [Map] 开源项目框架分类
  5. Android OpenGL教程-第一课
  6. android 创建AVD时 无系统镜像 No target
  7. Android(安卓)模仿360二维码扫描功能
  8. Android-安全退出
  9. android中shape的属性
  10. android兼容oppo手机刘海屏解决方案