1、WebView 是什么?
WebView 的使用
WebView 是一个基于 WebKit 引擎、展现 web 页面显示 HTML 内容的控件。
2、WebView 的作用是什么?
- 1)显示和渲染 Web 页面
- 2)直接显示 html 页面(网络或本地 assets 中)
- 3)与 JavaScript 交互处理
3、WebView 如何使用?
- 1)在 AndroidManifest.xml 中添加联网权限
<uses-permission android:name="android.permission.INTERNET"/>
- 2)在 xml 布局中添加 WebView
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wv"
/>
- 3)在 java 中获取实例并加载页面
WebView wv = (WebView) findViewById(R.id.wv);
a、 加载本地 assets 中的 html 文件
wv.loadUrl("file:///android_asset/xx.html");
b、加载 web 资源
wv.loadUrl("http://baidu.com");
运行效果如下图:
4、WebView 的常用方法?
- 1)设置页面支持 JavaScript
WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
- 2)设置页面支持定位
wv.getSettings().setGeolocationEnabled(true);
同时需要在 AndroidManifest.xml 中添加定位权限;
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
注意:如果版本是 Android6.0 以后,还需要添加运行时权限。动态获取权限的封装
- 3)如果想按下返回按钮返回上一个界面,而不是退出当前 activity,可以添加如下代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (wv.canGoBack())
{
wv.goBack();
return true;
}
else
{
System.exit(0);}
}
return super.onKeyDown(keyCode, event);
}
- 4)设置不加载外部的浏览器:
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
{
wv.loadUrl(request.getUrl().toString());
return true;
}
});