一个简单的交互我就不发效果图了

Html

        Carson    //点击按钮则调用callAndroid函数

Activity

WebView mWebView;Button button;@SuppressLint("JavascriptInterface")@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    mWebView =(WebView) findViewById(R.id.webview);    WebSettings webSettings = mWebView.getSettings();    // 设置与Js交互的权限    webSettings.setJavaScriptEnabled(true);    // 设置允许JS弹窗    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);    mWebView.addJavascriptInterface(new AndroidtoJs(), "test");//AndroidtoJS类对象映射到js的test对象    // 先载入JS代码    // 格式规定为:file:///android_asset/文件名.html    mWebView.loadUrl("file:///android_asset/javascript.html");    button = (Button) findViewById(R.id.button);    button.setOnClickListener(new View.OnClickListener() {        @RequiresApi(api = Build.VERSION_CODES.KITKAT)        @Override        public void onClick(View v) {            // 通过Handler发送消息            mWebView.post(new Runnable() {                @Override                public void run() {                    // 注意调用的JS方法名要对应上                    // 调用javascript的callJS()方法                    mWebView.loadUrl("javascript:callJS()");                }            });        }    });    // 由于设置了弹窗检验调用结果,所以需要支持js对话框    // webview只是载体,内容的渲染需要使用webviewChromClient类去实现    // 通过设置WebChromeClient对象处理JavaScript的对话框    //设置响应js 的Alert()函数    mWebView.setWebChromeClient(new WebChromeClient() {        @Override        public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {            AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);            b.setTitle("Alert");            b.setMessage(message);            b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    result.confirm();                }            });            b.setCancelable(false);            b.create().show();            return true;        }    });}

Js交互Android类

package com.wd.androidjs;import android.util.Log;import android.webkit.JavascriptInterface;class AndroidtoJs extends Object{    // 定义JS需要调用的方法    // 被JS调用的方法必须加入@JavascriptInterface注解    @JavascriptInterface    public void hello(String msg) {        Log.e("my",""+msg);    }}

更多相关文章

  1. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  2. android JNI 学习笔记1
  3. android三种动画详解
  4. ui布局参数设置
  5. Android(安卓)WebView详解(二):Android原生与JS互调
  6. Android(安卓)布局中的android:onClick的使用方法总结
  7. 【Android布局】在程序中设置android:gravity 和 android:layout
  8. 【Android布局】在程序中设置android:gravity 和 android:layout
  9. android组建属性及使用许可

随机推荐

  1. sqlserver 日志恢复方法(搞定drop和trunc
  2. select into 和 insert into select 两种
  3. 海量数据库查询语句
  4. Excel导入Sqlserver数据库脚本
  5. sql cast,convert,QUOTENAME,exec 函数学习
  6. 让editView、AutoCompleteTextView开始捕
  7. UI设计
  8. Android开发人员不得不收集的代码(持续更
  9. Android(安卓)HIDL 简介
  10. 第九篇 ANDROID包管理服务机制与架构