踩坑日记:webView 使用的坑

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://mp.csdn.net/postedit

 

前言

    今天又是开心工作的一天呐,闲来无事,想写一写webView  结果这一写发现,坑多!

 

首先第一个坑:

 

这是WebView 加载URL网页   效果:

刚开始  显示  是这样的,搞得我一脸懵逼, 我权限添加了呀,为了防止不够还特意加了2个 网络权限

 

后面才发现原来是应为数据流没有加密造成的,要在AndroidManifest.xml  添加这个  

android:usesCleartextTraffic="true"

 

效果如下:

 

当然啦在Android  N中,

 shouldOverrideUrlLoading(WebView view, String url)  这个方法已经被废弃了,所以改了下

 

使用:

shouldOverrideUrlLoading(WebView view, WebResourceRequest request)

效果是一致的。

 

二  系统浏览器跳转网页

 

//跳转系统浏览器
mWebView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onProgressChanged(WebView view, int newProgress) { //设置跳转进度
        if (newProgress==100){
            mProgressBar.setVisibility(View.GONE);
        }else {
            mProgressBar.setVisibility(View.VISIBLE);
            mProgressBar.setProgress(newProgress);
        }
    }
});

 

三、//监听是否按下了back键,如果按下back键就返回上一个页面

mWebView.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {
        if ((keyEvent.KEYCODE_BACK==i)&&(mWebView.canGoBack())){
            mWebView.goBack();
            Log.e(TAG, "onKey: 按下back" );
            return true;
        }else {
            return false;
        }
    }
});

 

 

四、webView调用本地js和本地网页

网上拷的js  效果

 

将js放置在本地index.html 中

通过inputStream将数据写入

 

调用本地js

 

效果:

注意点:路径格式 

mWebView.loadDataWithBaseURL("file:///android_asset/",data,"text/html","utf-8",null);

 


版权声明:本文为qq_32425789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。