Android WebView属性设置

本文详细介绍了WebView的初始化配置,包括设置编码、支持JavaScript、启用缓存、调整缩放和加载模式等,旨在优化网页在Android应用中的显示和性能。同时,讨论了如何处理JavaScript窗口打开、网页自适应屏幕、图片自动加载以及滚动条样式等关键问题。
protected void init() {
    // 清理页面焦点
    clearFocus();
    // 设置是否可获取焦点
    setFocusable(true);
    // 设置编码
    getSettings().setDefaultTextEncodingName("GBK");
    // 设置支持Js,必须设置的,基本大多数网页都涉及js
    getSettings().setJavaScriptEnabled(true);
    // 启动缓存,设置缓存模式, 网页需要实时更新,故去掉缓存                                                
    getSettings().setAppCacheEnabled(true);
    /**
     * 缓存模式(5种)
     * LOAD_CACHE_ONLY:不使用网络,只读取本地缓存数据
     * LOAD_DEFAULT:根据cache-control决定是否从网络上取数据。
     * LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式
     * LOAD_NO_CACHE:不使用缓存,只从网络获取数据.
     * LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。
     */
    getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    // user_agent
    getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36");
    // 设置为true时表示支持使用js打开新的窗口
    getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    // 设置为使用webview推荐的窗口,主要是为了配合下一个属性
    getSettings().setUseWideViewPort(true);  
    // 设置网页自适应屏幕大小,该属性必须和上一属性配合使用
    getSettings().setLoadWithOverviewMode(true);  
    getSettings().setSupportZoom(true);
    // 设置是否允许webview使用缩放的功能
    getSettings().setBuiltInZoomControls(true);
    // 设置可以访问文件,当设置为true,就可以使用file://加载文件,这是所有file协议的总开关
    getSettings().setAllowFileAccess(true);
    // 当设置为true,就可以使用content://加载文件
    getSettings().setAllowContentAccess(true);
    // 设置是否允许运行在一个URL环境(the context of a file scheme URL)中的JavaScript访问来自其他URL环境的内容
    getSettings().setAllowFileAccessFromFileURLs(true);
    /**
     * 设置 是否允许运行在一个file schema URL环境下的JavaScript访问来自其他任何来源的内容,包括        
     * 其他file schema URLs。通过此API可以设置是否允许通过file url加载的Javascript可以访问其他 
     * 的源,包括其他的文件和http,https等其他的源
     */
    getSettings().setAllowUniversalAccessFromFileURLs(true);
    // 当网页需要保存数时据,设置下面属性
    getSettings().setDomStorageEnabled(true);
    // 启用还H5的地理定位服务
    getSettings().setGeolocationEnabled(true);
    // 提高网页渲染的优先级
    getSettings().setRenderPriority(RenderPriority.HIGH);
    // 缩放至屏幕的大小
    getSettings().setLoadWithOverviewMode(true);
    // 支持自动加载图片
    getSettings().setLoadsImagesAutomatically(true);
    // 设置是否显示水平滚动条
    setHorizontalScrollBarEnabled(false);  
    // 设置垂直滚动条是否有叠加样式
    setVerticalScrollbarOverlay(false);
    // 设置滚动条的样式 
    setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    // 设置显示缩放比例(百分比)
    setInitialScale(100);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值