zoukankan      html  css  js  c++  java
  • Android 控件: Webview 的一些知识点

    WebView 加载网页,当点击返回键的时,会显示上一个页面,并刷新。

    同时可以对返回上一个页面进行干预,就是用到了缓存。

    webview加载网页的几个模式,即websetting中设置的加载模式。websetting.setCacheMode( int  mode)

    LOAD_CACHE_ELSE_NETWORK:只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。

    LOAD_CACHE_ONLY:只加载缓存数据,如果没有缓存数据,就出现加载失败;

    LOAD_DEFAULT:默认加载方式, 根据cache-control决定是否从网络上取数据;

    LOAD_NO_CACHE:不使用缓存,只从网络获取数据;

    LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式

    新的需求:(点击返回键,返回到上一个点击的页面但是不刷新,点击新的页面进行刷新加载,这个需求是要求与 iOS 的浏览效果保持一致)

     1 public class WebViewActivity extends Activity{  
     2   
     3     private WebView mWebView;  
     4     @Override  
     5     protected void onCreate(Bundle savedInstanceState) {  
     6         super.onCreate(savedInstanceState);  
     7         setContentView(R.layout.activity_webview);  
     8           
     9         mWebView = (WebView) findViewById(R.id.webview);  
    10           
    11         initWebView();  
    12           
    13         mWebView.loadUrl("http://www.baidu.com");  
    14     }  
    15   
    16     private void initWebView() {  
    17         WebSettings ws = mWebView.getSettings();   
    18         ws.setJavaScriptEnabled(true);  
    19         mWebView.setWebViewClient(new WebViewClient(){  
    20             @Override  
    21             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
    22                 view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);  
    23                 view.loadUrl(url);  
    24                 return super.shouldOverrideUrlLoading(view, url);  
    25             }  
    26         });  
    27     }  
    28       
    29     @Override  
    30     public boolean onKeyDown(int keyCode, KeyEvent event) {  
    31         if(keyCode==KeyEvent.KEYCODE_BACK){  
    32             if(mWebView.canGoBack()){  
    33                 mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  
    34                 mWebView.goBack();  
    35                 return true;  
    36             }  
    37         }  
    38         return false;  
    39     }  
    40 }  

    webview 的其他一些设置:

    webSettings.setDomStorageEnabled ( boolean );//是否支持持久化存储,保存到本地

    webSettings.setJavaScriptEnabled ( boolean );//设置支持javascript脚本

    webSettings.setSupportZoom ( boolean ) ;// 设置支持缩放

    webSettings.setBuiltInZoomControls ( boolean );//设置是否出现缩放工具

    webSettings.setDatabaseEnabled ( boolean );//开启database storage API 功能

     webSettings.setDatabasePath(path);//设置数据库缓存路径

     webSettings.setAppCacheEnabled( boolean );//设置开启application H5 Caches 功能

     webSettings.setAppCachePath(path);//设置application caches 缓存目录

    //设置webview自适应屏幕

    webSettings.setLayoutAlgorithm ( LayoutAlgorithm.SINGLE_COLUMN );

    webSettings.setLoadWithOverviewMode ( true ); 

  • 相关阅读:
    string类的方法
    引用
    面向对象之多态性(基类引用可以指向子类)
    SQL Server、Oracle数据库排序空值null问题解决办法(转)
    远程计算机已结束连接解决方法
    GUID自增ID表关联比较
    第四种行转列
    SQL简体转繁体互换(常用汉字词组)
    CSS基本布局16例
    Dojo Javascript 编程规范
  • 原文地址:https://www.cnblogs.com/liyiran/p/6417304.html
Copyright © 2011-2022 走看看