随着Android的发展,在app内打开一个网页的用处越来越多,那么今天就来用说说webview的用法。
1、打开本地的网页
首先把文件放入project模式下,app/assets下
image.png 然后新建一个activity。布局文件 image.png
在java里写
`` protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
WebView webview = (WebView)findViewById(R.id.web_view);
webview.loadUrl("file:///android_asset/PrivacyProtocol.html");
//实现WebView中链接在WebView内部跳转
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//自适应屏幕
webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webview.getSettings().setLoadWithOverviewMode(true);
//设置可以支持缩放
webview.getSettings().setSupportZoom(true);
//扩大比例的缩放
webview.getSettings().setUseWideViewPort(true);
}
``
大功告成!!
2、打开在线的页面
首先第一步很重要的 去AndroidMainfest添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
首先定义一个string型的url
private String Url = "http://www.baidu.com";
然后就是设置webview
wb = findViewById(R.id.wb); wb.getSettings().setJavaScriptEnabled(true); wb.getSettings().setBuiltInZoomControls(true); wb.getSettings().setSaveFormData(false); wb.setWebViewClient(webViewClient); wb.loadUrl(Url); wb.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // TODO Auto-generated method stub // super.onReceivedSslError(view, handler, error); 父类的默认处理方式,内部是handler.cancel(),必须去除 handler.proceed();// 接受所有网站的证书 // handleMessage(Message msg);// 进行其他处理 } } );
``
WebViewClient webViewClient = new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
};
重写一下 这个方法
大功告成
网友评论