Android开发--WebView的应用

2019-06-24  本文已影响0人  nice荷包蛋

随着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);// 进行其他处理 } } );

image.png

``
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);
    }
};

重写一下 这个方法

大功告成

上一篇 下一篇

猜你喜欢

热点阅读