Android WebView基本设置及监听设置

WebView基本设置

WebView基础设置,实现WebView加载数据

WebSettings webSettings = mWebView.getSettings();

// 支持JavaScript,允许WebKit执行JavaScript代码
webSettings.setJavaScriptEnabled(true);

// 设置缓存模式
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);

// 设置为true表示支持使用JavaScript打开新的窗口
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

// 网页需要保存一些数据时候,设置以下属性
webSettings.setDomStorageEnabled(true);

// 设置为使用WebView推荐的窗口
webSettings.setUseWideViewPort(true);

// 自适应屏幕
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setLoadWithOverviewMode(true);

// 设置是否启用地理位置
webSettings.setGeolocationEnabled(true);

// 设置可以支持缩放
webSettings.setSupportZoom(true);

// 设置出现缩放工具,缩放功能是否使用
webSettings.setBuiltInZoomControls(false);

// 设置网页渲染优先级
webSettings.setRenderPriority(RenderPriority.HIGH);

// 设置水平滚动条
webview.setHorizontalScrollBarEnabled(false);

// 设置垂直滚动条
webview.setVerticalScrollbarOverlay(true);

// 设置滚动条的样式
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

// 重写WebChromeClient监听网页加载的进度
webview.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
    }
});

// 重写WebViewClient可以监听网页的跳转和资源加载等等
webview.setWebViewClient(new WebViewClient());

WebView监听设置

页面加载进度监听

mWebView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
    }
});

页面加载完成与加载失败的监听

mWebView..setWebViewClient(new webClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
    }

    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        view.loadUrl("file:///android_asset/default_page/index.html");
    }
});
上一篇 GreenDao insert 解决 PRIMARY KEY must be unique
下一篇 Android开发MultiDex分包流程
目录
文章列表
1 Flutter Widget之TextField
Flutter Widget之TextField
2
SynchronizedMap和ConcurrentHashMap之同步方式比较
SynchronizedMap和ConcurrentHashMap之同步方式比较
3
Android阻止AlertDialog自动关闭
Android阻止AlertDialog自动关闭
4
Android插件化之startActivity hook实现登录拦截
Android插件化之startActivity hook实现登录拦截
5
matplotlib之plt.subplots
matplotlib之plt.subplots
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。