新建assets文件夹,将html复制到assets目录下

javascript.html

               Carson_Ho        

MainActivity.this

package com.example.kanghuwei.xrecylerview;import android.app.AlertDialog;import android.content.DialogInterface;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.webkit.JsResult;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.widget.Button;public class MainActivity extends AppCompatActivity {    private WebView mWebView;    private Button button;    @Override    protected 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);        // 先载入JS代码        // 格式规定为:file:///android_asset/文件名.html        mWebView.loadUrl("file:///android_asset/javascript.html");        button = (Button) findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @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;            }        });    }}

更多相关文章

  1. Android - GridView,自定义开关控件,状态选择器selector,自定义对话
  2. Android Dialog对话框的七种形式的使用
  3. Android 去掉运营商STK对话框提示
  4. Android 对话框(Dialog)大全 建立你自己的对话框
  5. android 自定义对话框
  6. android 对话框集合
  7. Android 列表对话框
  8. Android对话框图片全屏
  9. android 长按power键弹出对话框

随机推荐

  1. Android(安卓)项目(一):自定义View绘制“折
  2. 每个Android迷应该使用的75个超酷app
  3. 2020腾讯Android岗初级到高级面试真题收
  4. 【android】使用Event Bus模式解耦Androi
  5. android 网络框架性能优化分析
  6. android 手把手教你打造属于自己的文件浏
  7. Android变形矩阵——Matrix
  8. android 内存优化详解
  9. 一个轻量级、可插拔的Android消息推送框
  10. Android调用系统相册和相机选择图片并显