手机扫描下载
android系统webview最新版本为你送上,专为谷歌浏览器量身定制的修复工具,有了这款app即可一站式解决你的诸多问题,让你更好的运行和使用谷歌浏览器,可以轻松修复浏览器使用过程中的报错问题。
1.WebView 基本使用
1.1 基本使用
在 Android 应用开发中会经常要嵌套H5来进行混合式开发,WebView是不可或缺的容器。
使用 WebView 加载一个网页很容易
在AndroidManifest.xml中添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
在布局中添加WebView
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
在Activity或Fragment中获取控件
WebView mWebview = findViewById(R.id.webView);// 也可以通过 new 的形式创建 WebView
加载目标地址
webView.loadUrl("https://developer.android.google.cn/");
so easy~
WebView有很丰富的功能,继续学习
1.2 加载页面
//加载一个远程网页webView.loadUrl("https://developer.android.google.cn/");// 加载assets中资源webView.loadUrl("file:///android_asset/test.html");//加载sdcard中子源webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html");
使用loadUrl,不过需要注意,这里因为是使用本地数据,所以传入的url需要做些处理,例如:
a 如果html文件存于assets:则加前缀:file:///android_asset/
b 如果html文件存于sdcard:则加前缀:content://com.android.htmlfileprovider/sdcard/
注意:content 前缀可能导致异常,也可使用file:///sdcard/ 或者 file:/sdcard 做前缀。
2. 加载设置
2.1 页面自适应屏幕
settings.setUseWideViewPort(true); // 将图片调整到适合webview的大小settings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
2.2 缩放
settings.setSupportZoom(true);//启用缩放功能settings.setBuiltInZoomControls(true);//使用WebView内置的缩放功能settings.setDisplayZoomControls(false);//隐藏屏幕中的虚拟缩放按钮
2.3 个性化设置
settings.setTextZoom(100);//字体百分比,替代原API:setTextSize
安卓端上可能因为设置了系统字体大小导致 h5 页面布局异常:
该方法可设置 webview 内部字体的缩放比例。而字体单位是 px,它其实设置的是 px 的缩放比例。通过强制设置为100%,来使得用户的外部设置无法内部 webview 的字体大小呈现。
settings.setMediaPlaybackRequiresUserGesture(false);//SDK>18 是否支持手势控制网页媒体,比如视频的全屏
String ua = webview.getSettings().getUserAgentString();webview.getSettings().setUserAgentString(ua+"; 自定义标记");
有时和H5交互的时候,H5需要一些设备信息,可以通过自定义 agent 处理,里面本身也包含一些内置浏览内核的信息
Mozilla/5.0 (Linux; Android 6.0; HTC D10w Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2564.106 Mobile Safari/537.36
2.4 Https 加载 Http 混合模式
当 WebView 加载 https 的地址中有 http 的地址时(比如 https 地址含有 http 的图片) WebView 无法加载 http 的资源
原因是 Android 5.0 (Lollipop)开始,WebView 默认不支持同时加载 Https 和 Http 混合模式。此时可以通过setMixedContentMode()方法设置混合模式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}
MIXED_CONTENT_NEVER_ALLOW:(Android 5.0 以上默认值)
Webview不允许一个安全的站点(https)去加载非安全的站点内容(http),比如,https网页内容的图片是 http 链接。强烈建议App使用这种模式,因为这样更安全。
MIXED_CONTENT_ALWAYS_ALLOW:(Android 5.0 以下默认值)
在这种模式下,WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http),这是WebView最不安全的操作模式,尽可能地不要使用这种模式。
MIXED_CONTENT_COMPATIBILITY_MODE:
在这种模式下,当涉及到混合式内容时,WebView会尝试去兼容最新Web浏览器的风格。一些不安全的内容(Http)能被加载到一个安全的站点上(Https),而其他类型的内容将会被阻塞。这些内容的类型是被允许加载还是被阻塞可能会随着版本的不同而改变,并没有明确的定义。这种模式主要用于在App里面不能控制内容的渲染,但是又希望在一个安全的环境下运行。
参考:Android5.0 WebView中Http和Https混合问题
3. 页面监听与拦截
3.1 WebViewClient
帮助 WebView 处理各种通知、请求事件、记录页面加载过程的。其中就包括URL地址,我们可以通过它来监控到地址的调用过程
// 设置 WebViewClientmWebView.setWebViewClient(mWebViewClient);
shouldOverrideUrlLoading
用户可选择是否拦截加载 URL
如果返回值为 true,拦截 WebView 加载 url,false 允许 WebView 加载 url
If a WebViewClient is provided, returning true causes the current WebView to abort loading the URL, while returning false causes the WebView to continue loading the URL as usual.
boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)boolean shouldOverrideUrlLoading(WebView view, String url) (API>21)
可以在这个方法里做什么呢,比如点击到已经定义好的 url 协议 电话号码tel://时,那么可以在这里做拦截,跳转到系统拨号界面。
@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } super.shouldOverrideUrlLoading(view, url);}
所以在实际项目中,可以在这里处理自定义的一些跳转协议。
onPageStarted() 开始载入页面调用
开始载入页面调用的,我们可以设定一个 loading 的页面,告诉用户程序在等待网络响应。
onPageFinished() 页面加载结束时调用。
页面加载结束时调用 onPageFinished()
1.WebView是安卓系统中一款基于webkit引擎、展现web页面的控件。
2.Android的Webview在低版本和高版本采用了不同的webkit版本内核,在版本更新到4.4后直接使用了Chrome版本。
3.谷歌组件
4.系统组件
5.网页显示
6.网页优化
7.手机优化
1、在Android应用中打开网页
2、能够较快速的显示网页的内容的软件
3、会一直持续更新这项组件
4、Android生态系统的重要组成部分,但它不能作为常规应用程序使用
5、默认情况下包含在大多数Android系统中
能够较快速的显示网页的内容的软件
会一直持续更新这项组件
Android生态系统的重要组成部分,但它不能作为常规应用程序使用
在Android应用中打开网页
默认情况下包含在大多数Android系统中
黑科技浏览器合集分享给众多朋友们!专为大家带来能够浏览任何网页同时去除所有广告内容的浏览器,能够帮你体验真实的科学上网,夜间学习丰富资料,还有学英语等资源浏览器,帮你体验更多学习的快乐!
Copyright © 2016-2024 www.y8l.com All Rights Reserved 举报邮箱:y8lzyw@sina.com
网站备案许可证号:鄂ICP备2020019878号-5
热门评论