总结webView的使用

1.webViewClient
private WebViewClient webViewClient = new WebViewClient() {
    @Override
    public void onPageFinished(final WebView view, String url) {
        super.onPageFinished(view, url);
        //网页加载完毕做处理
        可以通过view.getTitle()获取title
 
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        L.e("web_view", "started: "+ url);
        super.onPageStarted(view, url, favicon);
    }

    //可以拦截到加载的url
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        L.e("web_view", "loading: "+ url);
        //在这里可以对url进行一些处理,替换字段,新增参数等
        if(url!=null&&url.contains("getCoupon?couponId")){
            Intent  intent=new Intent();
            startActivity(intent);
            return  true;//代表拦截此链接,执行了跳转界面的操作,webView不会加载此链接
        }
        return super.shouldOverrideUrlLoading(view, url);
    }
};

2.返回按钮的处理,如果网页有上一层,先返回上一层

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack(); //goBack()表示返回WebView的上一页面
        return true;
    }
 
    return super.onKeyDown(keyCode, event);
}

3.通过js进行交互(h5调用native)

private void initView() {
    WebSettings webSettings = getSettings();
    webSettings.setJavaScriptEnabled(true);//设置支持js
    //设置js调用的接口
    this.addJavascriptInterface(new AbsClientCallback(), "android");

}

public class AbsClientCallback {

//js调用native的回调
    @Keep
    @JavascriptInterface
    public String callBackNative(String type, String scheme) {
        return onCallBackNativeForH5(type, scheme);
    }
}

4.native通过js调用h5(约定好的函数)

mWebView.loadUrl("javascript:righthandleparam('android')");

5.对webView的设置setting全部设置上去就好,少设置的话可能会有一些不知名的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值