WebView与JS交互

首先

WebView 记载方式有两种:
加载网络:web_view.loadUrl(“https://abnerming8.github.io/abnerming.html”);
加载本地:需要先在src下新建 assets文件 放入本地H5文件
加载方式:web_view.loadUrl(“file:///android_asset/web/about.html”);
注意写路径时 是asset 不要加’S’ 不要加载不到

public class My_Fragment extends BaseFragment {

private Zdy_view zdy_view;
private Button my_btn_color;
private Button my_btn_two;
private WebView web_view;

private String web_url = "https://abnerming8.github.io/abnerming.html";

@Override
protected int initLayout() {
    return R.layout.my_fragment;
}

@Override
protected void initView(View view) {
    zdy_view = view.findViewById(R.id.zdy_view);
    my_btn_color = view.findViewById(R.id.my_btn_color);
    my_btn_two = view.findViewById(R.id.my_btn_two);
    web_view = view.findViewById(R.id.web_view);
}

@Override
protected void initData() {

    web_view.loadUrl(web_url);
    //获取设备管理器
    WebSettings settings = web_view.getSettings();
    //开启支持JS 权限
    settings.setJavaScriptEnabled(true);
    //开启 窗口权限 AlertDialog需要
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    //添加你与 H5 要交互的方法 参数1:是定义两边需要交互的方法 参数2:就是H5的调用者
    web_view.addJavascriptInterface(new TestTwo(), "android");

  web_view.setWebViewClient(new WebViewClient());

    web_view.setWebChromeClient(new WebChromeClient(){
        @Override
        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            return super.onJsAlert(view, url, message, result);
        }
    });
    my_btn_color.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    web_view.loadUrl("javascript:changeColor('#d43c3c')");
                }
            });
        }
    });
}

class TestTwo {

    @JavascriptInterface
    public void show() {
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                web_view.loadUrl("javascript:toast()");
            }
        });
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值