版权声明:本文为博主原创文章,遵循 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版权协议,转载请附上原文出处链接和本声明。