前言
现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,这样在每过节假日的时候界面都会随时更换,大大减小了工作量,所以也应用的比较广泛,如下图:
所以就引入Android里一个组件WebView来实现的,根据API的学习,介绍一下WebView的常用用法,大致结构如下图:
WebView 内置了 Html 解析的组件,可以显示 Html 页面上的图像、文本、超链接等信息
mWebView = (WebView) findViewById(R.id.m_web);
// 设置页面属性
WebSettings settings = mWebView.getSettings();
// 设置支持 Javascript
settings.setJavaScriptEnabled(true);
// 设置页面的默认编码
settings.setDefaultTextEncodingName("utf-8");
// 支持缩放控制器
settings.setBuiltInZoomControls(true);
// 支持缩放
settings.setSupportZoom(true);
处理超链接
// 超链接 ( 请求 ) 相关的处理
mWebView.setWebViewClient(new WebViewClient(){
// 检测到有一个超链接正在访问
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
加载网址
mWebView.loadUrl("http://www.baidu.com");
注意加上 Internet 权限
//1、检测可否(历史记录中)向前
mWebView.canGoForward();
//2、检测可否 ( 在历史记录中 ) 向后
mWebView.canGoBack()
//3、回退到历史记录的上一级
mWebView.goBack();
// 返回键中处理回退
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
if(mWebView.canGoBack()){
mWebView.goBack();
return true;
}
}
return super.onKeyUp(keyCode, event);
}
多级跳转
// 负数向后 正数向前
mWebView.goBackOrForward(2);
WebView 处理页面弹框以及页面通知
//用来辅助WebView处理js弹框,以及页面的标题、图标、进度相关的事情
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url,
String message, final JsResult result) {