Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
WebView»º´æÔ­Àí·ÖÎöºÍÓ¦ÓÃ
 
  1945  次浏览      29
 2018-7-23
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ΢ÐÅ£¬½éÉÜÁËWebViewµÄ»º´æÀàÐÍ£¬ä¯ÀÀÆ÷×Ô´øµÄÍøÒ³Êý¾Ý»º´æ£¬H5µÄ»º´æµÈ¡£

Ò»¡¢±³¾°

ÏÖÔÚµÄApp¿ª·¢£¬»ò¶à»òÉÙ¶¼»áÓõ½Hybridģʽ£¬µ½ÁËWebViewÕâ±ß£¬¾­³£»á¼ÓÔØÒ»Ð©jsÎļþ£¨ÀýÈçºÍWebViewÓÃÀ´NativeͨÐŵÄbridge.js£©£¬¶øÕâЩjsÎļþ²»»á¾­³£·¢Éú±ä»¯£¬ËùÒÔÎÒÃÇÏ£ÍûjsÔÚWebViewÀïÃæ¼ÓÔØÒ»´ÎÖ®ºó£¬Èç¹ûjsûÓз¢Éú±ä»¯£¬Ï´ξͲ»ÓÃÔÙ·¢ÆðÍøÂçÇëÇóÈ¥¼ÓÔØ£¬´Ó¶ø¼õÉÙÁ÷Á¿ºÍ×ÊÔ´µÄÕ¼Óá£ÄÇôÓÐʲô·½Ê½¿ÉÒÔ´ïµ½Õâ¸öÄ¿µÄÄØ£¿ÏȵôÓWebViewµÄ»º´æÔ­ÀíÈëÊÖ¡£

¶þ¡¢WebViewµÄ»º´æÀàÐÍ

WebViewÖ÷Òª°üÀ¨Á½À໺´æ£¬Ò»ÀàÊÇä¯ÀÀÆ÷×Ô´øµÄÍøÒ³Êý¾Ý»º´æ£¬ÕâÊÇËùÓеÄä¯ÀÀÆ÷¶¼Ö§³ÖµÄ¡¢ÓÉHTTPЭÒ鶨ÒåµÄ»º´æ£»ÁíÒ»ÀàÊÇH5»º´æ£¬ÕâÊÇÓÉwebÒ³ÃæµÄ¿ª·¢ÕßÉèÖõģ¬H5»º´æÖ÷Òª°üÀ¨ÁËApp Cache¡¢DOM Storage¡¢Local Storage¡¢Web SQL Database ´æ´¢»úÖÆµÈ£¬ÕâÀïÎÒÃÇÖ÷Òª½éÉÜApp CacheÀ´»º´æjsÎļþ¡£

Èý¡¢ä¯ÀÀÆ÷×Ô´øµÄÍøÒ³Êý¾Ý»º´æ

1.¹¤×÷Ô­Àí

ä¯ÀÀÆ÷»º´æ»úÖÆÊÇͨ¹ýHTTPЭÒéHeaderÀïµÄCache-Control£¨»òExpires£©ºÍLast-Modified£¨»ò Etag£©µÈ×Ö¶ÎÀ´¿ØÖÆÎļþ»º´æµÄ»úÖÆ¡£¹ØÓÚÕ⼸¸ö×ֶεÄ×÷ÓúÍä¯ÀÀÆ÷µÄ»º´æ¸üлúÖÆ£¬´ó¼Ò¿ÉÒÔ¿´¿´ÕâÁ½ÆªÎÄÕÂ(H5 »º´æ»úÖÆÇ³Îö ÒÆ¶¯¶Ë Web ¼ÓÔØÐÔÄÜÓÅ»¯£¬Android£ºÊÖ°ÑÊÖ½ÌÄã¹¹½¨ WebView µÄ»º´æ»úÖÆ & ×ÊÔ´Ô¤¼ÓÔØ·½°¸)£¬ÀïÃæÓÐÏêϸµÄ½éÉÜ¡£ÏÂÃæ´ÓÎÒʵ¼ÊÓ¦ÓõĽǶȣ¬½éÉÜÒ»ÏÂͨ³£»áÔÚHTTPЭÒéÖÐÓöµ½µÄHeader¡£

ÕâÁ½¸ö×Ö¶ÎÊǽÓÊÕÏìӦʱ£¬ä¯ÀÀÆ÷¾ö¶¨ÎļþÊÇ·ñÐèÒª±»»º´æ£»»òÕßÐèÒª¼ÓÔØÎļþʱ£¬ä¯ÀÀÆ÷¾ö¶¨ÊÇ·ñÐèÒª·¢³öÇëÇóµÄ×ֶΡ£

Cache-Control:max-age=315360000£¬Õâ±íʾ»º´æÊ±³¤Îª315360000Ãë¡£Èç¹û315360000ÃëÄÚÐèÒªÔÙ´ÎÇëÇóÕâ¸öÎļþ£¬ÄÇôä¯ÀÀÆ÷²»»á·¢³öÇëÇó£¬Ö±½ÓʹÓñ¾µØµÄ»º´æµÄÎļþ¡£ÕâÊÇHTTP/1.1±ê×¼ÖеÄ×ֶΡ£

Expires: Thu, 31 Dec 2037 23:55:55 GMT£¬Õâ±íʾÕâ¸öÎļþµÄ¹ýÆÚʱ¼äÊÇ2037Äê12ÔÂ31ÈÕÍíÉÏ23µã55·Ö55Ã룬ÔÚÕâ¸öʱ¼ä֮ǰä¯ÀÀÆ÷¶¼²»»áÔٴη¢³öÇëÇóÈ¥»ñÈ¡Õâ¸öÎļþ¡£ÕâÊÇHTTP/1.0ÖеÄ×ֶΣ¬Èç¹û¿Í»§¶ËºÍ·þÎñÆ÷ʱ¼ä²»Í¬²½»áµ¼Ö»º´æ³öÏÖÎÊÌ⣬Òò´Ë²ÅÓÐÁËÉÏÃæµÄCache-Control£¬µ±ËüÃÇͬʱ³öÏÖÔÚHTTP ResponseµÄHeaderÖÐʱ£¬Cache-ControlÓÅÏȼ¶¸ü¸ß¡£

ÏÂÃæÁ½¸ö×Ö¶ÎÊÇ·¢ÆðÇëÇóʱ£¬·þÎñÆ÷¾ö¶¨ÎļþÊÇ·ñÐèÒª¸üеÄ×ֶΡ£

Last-Modified:Wed, 28 Sep 2016 09:24:35 GMT£¬Õâ±íʾÕâ¸öÎļþ×îºóµÄÐÞ¸Äʱ¼äÊÇ2016Äê9ÔÂ28ÈÕ9µã24·Ö35Ãë¡£Õâ¸ö×ֶζÔÓÚä¯ÀÀÆ÷À´Ëµ£¬»áÔÚÏ´ÎÇëÇóµÄʱºò£¬×÷ΪRequest HeaderµÄIf-Modified-Since×ֶδøÉÏ¡£ÀýÈçä¯ÀÀÆ÷»º´æµÄÎļþÒѾ­³¬¹ýÁËCache-Control£¨»òÕßExpires£©£¬ÄÇôÐèÒª¼ÓÔØÕâ¸öÎļþʱ£¬¾Í»á·¢³öÇëÇó£¬ÇëÇóµÄHeaderÓÐÒ»¸ö×Ö¶ÎΪIf-Modified-Since£ºWed, 28 Sep 2016 09:24:35 GMT£¬·þÎñÆ÷½ÓÊÕµ½ÇëÇóºó£¬»á°ÑÎļþµÄLast-Modifiedʱ¼äºÍÕâ¸öʱ¼ä¶Ô±È£¬Èç¹ûʱ¼äû±ä£¬ÄÇôä¯ÀÀÆ÷½«·µ»Ø304 Not Modified¸øä¯ÀÀÆ÷£¬ÇÒcontent-length¿Ï¶¨ÊÇ0¸ö×Ö½Ú¡£Èç¹ûʱ¼äÓб仯£¬ÄÇô·þÎñÆ÷»á·µ»Ø200 OK£¬²¢·µ»ØÏàÓ¦µÄÄÚÈݸøä¯ÀÀÆ÷¡£

ETag:¡±57eb8c5c-129¡±£¬ÕâÊÇÎļþµÄÌØÕ÷´®¡£¹¦ÄÜͬÉÏÃæµÄLast-ModifiedÊÇÒ»ÑùµÄ¡£Ö»ÊÇÔÚä¯ÀÀÆ÷Ï´ÎÇëÇóʱ£¬ETagÊÇ×÷ΪRequest HeaderÖеÄIf-None-Match:¡±57eb8c5c-129¡±×ֶδ«µ½·þÎñÆ÷¡£·þÎñÆ÷ºÍ×îеÄÎļþÌØÕ÷´®¶Ô±È£¬Èç¹ûÏàͬÄÇô·µ»Ø304 Not Modified£¬²»Í¬Ôò·µ»Ø200 OK¡£µ±ETagºÍLast-Modifiedͬʱ³öÏÖʱ£¬ÈκÎÒ»¸ö×Ö¶ÎÖ»ÒªÉúЧÁË£¬¾ÍÈÏΪÎļþÊÇûÓиüеġ£

2.WebViewÈçºÎÉèÖòÅÄÜÖ§³ÖÉÏÃæµÄЭÒé

ÓÉÉÏÃæµÄ½éÉÜ¿ÉÖª£¬Ö»ÒªÊǸöÖ÷Á÷µÄ¡¢ºÏ¸ñµÄä¯ÀÀÆ÷£¬¶¼Ó¦¸ÃÄܹ»Ö§³ÖHTTPЭÒé²ãÃæµÄÕ⼸¸ö×ֶΡ£Õâ²»ÊÇÎÒÃÇ¿ª·¢Õß¿ÉÒÔÐ޸ĵģ¬Ò²²»ÊÇÎÒÃÇÓ¦¸ÃÐ޸ĵÄÅäÖá£ÔÚAndroidÉÏ£¬ÎÒÃǵÄWebViewÒ²Ö§³ÖÕ⼸¸ö×ֶΡ£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ý´úÂëÈ¥ÉèÖÃWebViewµÄCache Mode£¬¶øÊ¹µÃЭÒéÉúЧ»òÕßÎÞЧ¡£WebViewÓÐÏÂÃæ¼¸¸öCache Mode£º

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£¬¶¼Ê¹Óûº´æÖеÄÊý¾Ý¡£±¾µØÃ»Óлº´æÊ±²Å´ÓÍøÂçÉÏ»ñÈ¡¡£

ÉèÖÃWebView»º´æµÄCache ModeʾÀý´úÂëÈçÏ£º

WebSettings settings = webView.getSettings();
settings .setCacheMode(WebSettings.LOAD_DEFAULT);

ÍøÉϺܶàÈ˶¼Ëµ¸ù¾ÝÍøÂçÌõ¼þȥѡÔñCache Mode£¬µ±ÓÐÍøÂçʱ£¬ÉèÖÃΪLOAD_DEFAULT£¬µ±Ã»ÓÐÍøÂçʱÉèÖÃΪLOAD_CACHE_ELSE_NETWORK¡£µ«ÊÇÔÚÎÒµÄÒµÎñÖУ¬jsÎļþµÄ¸üж¼ÊǷǸ²¸ÇʽµÄ¸üУ¬Ò²¾ÍÊÇʱºòÿ´Î¸Ä±äjsÎļþµÄʱºò£¬ÎļþµÄurlµØÖ·Ò»¶¨»á·¢Éú±ä»¯£¬ËùÒÔÎÒÏ£Íûä¯ÀÀÆ÷Äܹ»»º´æÏÂÀ´js£¬²¢ÇÒһֱʹÓÃËü£¬ÄÇôÎҾ͸øËüÖ»ÉèÖÃΪLOAD_CACHE_ELSE_NETWORK¡£µ±È»Èç¹ûÄãÒªÊÇ¿ÉÒÔ¸ÄjsµÄcdn·þÎñÆ÷µÄCache-Control×ֶΣ¬ÄÇÒ²Ðа¡£¬ÓÃLOAD_DEFAULT¾ÍokÁË¡£ÖÁÓÚÎļþÊÇÓ¦¸Ã²ÉÓø²¸Çʽor·Ç¸²¸ÇʽµÄ¸üУ¬²»ÊÇÎÒ½ñÌìÒªÌÖÂÛµÄÄÚÈÝ£¬ÔÚwebǰ¶ËÁìÓò£¬ÕâÊÇÒ»¸ö¿ÉÒÔÁÄÁĵÄtopic¡£

¹ØÓÚiOSµÄWebView£¬ÎÒͬÊÂÔÚʵ¼Ê²âÊÔµÄʱºò¾¹È»·¢ÏÖ£¬¿ØÖÆÎļþ»º´æµÄResponse HeaderÊÇExpires×ֶΡ£¡£¶øÇÒiOSÎÞ·¨Õë¶ÔÕû¸öWebViewÉèÖÃCache Mode£¬Ö»ÄÜÕë¶Ôÿһ¸öURLRequestÈ¥ÉèÖᣡ£ºóÐøÓлú»áҪѧϰһÏÂiOSÄÇ¿éµÄÇé¿ö¡£

3.ÔÚÊÖ»úÀïÃæµÄ´æ´¢Â·¾¶

ä¯ÀÀÆ÷ĬÈÏ»º´æÏÂÀ´µÄÎļþÊÇÔõô±»´æ´¢µ½ÁËÄÄÀïÄØ£¿Õâ¸öÎÊÌâÔÚ½Ó´¥µ½WebViewÒÔÀ´£¬¾ÍÒ»Ö±ÊÇÒ»¸öÃÕÌâ¡£Õâ´ÎÓÉÓÚ¹¤×÷µÄÐèÒª£¬ÎÒÌØÒârootÁËÁ½Ì¨ÊÖ»ú£¬Ò»Ì¨ºìÃ×1£¨Android 4.4£©ºÍһ̨СÃ×4c£¨Android 5.1£©£¬ÔÚroot¸ßϵͳ°æ±¾£¨6.0ºÍ7.1£©µÄÁ½Ì¨Nexus¶¼ÒÔʧ°Ü¸æÖÕÖ®ºó£¬ÎÒ¾ö¶¨»¹ÊÇÏÈ¿´¿´4.4ºÍ5.1ϵͳÉÏ£¬WebView×Ô´øµÄ»º´æ´æµ½ÁËÄÄÀï¡£

Ê×ÏÈ£¬²»ÓÃ˼¿¼¾ÍÖªµÀ£¬ÕâЩÎļþÒ»¶¨ÊÇÔÚ/data/data/°üÃû/Ŀ¼Ï£¬ÔÚÎÒ֮ǰµÄһƪ²©¿ÍÀïÃæÌáµ½¹ý£¬ÕâÊÇÿһ¸öÓ¦ÓÃ×Ô¼ºµÄÄÚ²¿´æ´¢Ä¿Â¼¡£

½Ó×Å£¬ÎÒÃÇ´ò¿ªÖÕ¶Ë£¬Ê¹ÓÃadbÁ¬½ÓÊÖ»ú£¬È»ºó°´ÕÕÏÂÃæÃüÁî²Ù×÷һϡ£

// 1.ÏȽøÈëshell
adb shell // 2.¿ªÆôrootÕ˺Å
su // 3.ÐÞ¸ÄÎļþ¼ÐȨÏÞ
chmod 777 data/data/ÄãµÄÓ¦ÓðüÃû/
// 4.ÐÞ¸Ä×ÓÎļþ¼ÐµÄȨÏÞ£¬ÒòΪAndroidÃüÁîÐв»Ö§³ÖÏòLinuxÄÇÑùµÄ-RÃüÁîʵÏֵݹéʽµÄchmod¡£¡£¡£
chmod 777 data/data/ÄãµÄÓ¦ÓðüÃû/*
// 5.ËùÒÔÈç¹ûÄã¶ÔÓ¦ÓÃĿ¼²ã¼¶¸üÉÄã¾ÍÒª½øÒ»²½µØchmod ¡£¡£¡£
chmod 777 data/data/ÄãµÄÓ¦ÓðüÃû/*/*
// 6.Ö±µ½ÖÕ¶ËÀïÌáʾÄã˵£¬no such file or directory ʱ£¬ËµÃ÷chmod ÍêÁË£¬ËùÓеÄÄÚ²¿´æ´¢ÀïÃæµÄÎļþ¼ÐºÍÎļþ¶¼¿ÉÒÔ¿´µ½ÁË£¬Èç¹û´ó¼ÒÓиüºÃµÄ·½·¨ÇëÒ»¶¨¸æËßÎÒ£¬¶àлÁË~

Android 4.4µÄĿ¼£º/data/data/°üÃû/app_webview/cache/£¬ÈçÏÂͼËùʾµÄµÚ¶þ¸öÎļþ¼Ð¡£

¿ÉÄÜÄã×¢Òâµ½ÁË£¬µÚÒ»¸öÎļþ¼ÐÊǽÐApplication Cache£¬ÎÒÃǺóÃæÔÙ˵Ëü¡£

Android 5.1µÄĿ¼£º/data/data/°üÃû/cache/org.chromium.android_webview/ÏÂÃæ£¬ÈçÏÂͼËùʾ¡£

µ«ÊÇÔÚ5.1ϵͳÉÏ£¬/data/data/°üÃû/app_webview/Îļþ¼ÐÒÀÈ»´æÔÚ£¬Ö»ÊÇ4.4ϵͳÉÏÃæ´æ´¢WebView×Ô´ø»º´æµÄapp_webview/cacheÎļþ¼Ð²»ÔÙ´æÔÚÁË£¨×¢ÒâÏÂApp CacheĿ¼»¹ÔÚ£©£¬ÈçÏÂͼËùʾ¡£

×ÛÉÏËùÊö£¬WebView×Ô´øµÄä¯ÀÀÆ÷ЭÒéÖ§³ÖµÄ»º´æ£¬ÔÚ²»Í¬µÄϵͳ°æ±¾ÉÏ£¬Î»ÖÃÊDz»Ò»ÑùµÄ¡£Ò²Ðí³ýÁËÎÒroot¹ýµÄ4.4¡¢5.1ÒÔÍ⣬ÆäËû°æ±¾ÏµÍ³µÄWebView×Ô´ø»º´æ»¹¿ÉÄÜ´æÔÚÓÚ²»Í¬µÄĿ¼ÀïÃæ¡£

ÁíÍâÒ»¸öÊǹØÓÚ»º´æÎļþµÄ´æ´¢¸ñʽºÍË÷Òý¸ñʽ£¬ÔÚ²»Í¬µÄÊÖ»úÉÏ¿ÉÄÜÒ²Óвî±ð£¬ÒòΪ֮ǰ¿´µ½ÍøÉϵÄÈ˶¼ËµÓнÐwebview.db»òÕßwebviewCache.dbµÄÎļþ£¬Õâ¸öÎļþÄØ£¬»¹²»ÊÇÔÚapp_webview/cache»òÕßorg.chromium.android_webviewÏÂÃæ£¬¶øÊÇÔÚ/data/data/°üÃû/database/ÀïÃæ¡£µ«ÊÇ£¬ÎÒÕâÁ½Ì¨root¹ýµÄÊÖ»ú¶¼Ã»Óп´µ½ÕâÖÖÎļþ£¬¶øÇÒÎÒ°Ñ/data/data/°üÃû/ÏÂÃæËùÓеÄdbÎļþ¶¼´ò¿ª¿´ÁË£¬²¢Ã»Óз¢ÏÖÓд洢url¼Ç¼µÄtable¡£¡£

ʵ¼ÊÉÏ£¬ÒÔ5.1ϵͳΪÀý£¬ÎÒ¿´µ½ÁË/data/data/°üÃû/cache/org.chromium.android_webview/ÏÂÃæÓнÐindexºÍ/index-dir/the-real-indexµÄÎļþ£¬ÒÔ¼°Ò»¶ÑÃû³ÆÎªmd5+Ï»®Ïß+Êý×ÖµÄÎļþ£¬ÉÏÃæµÄͼÖÐÒ²¿ÉÒÔ¿´µÃµ½£¬Õâ¿éµÄÔ­ÀíÈÔÈ»ÓÐЩÒÉÎÊ£¬Ò²Ï£ÍûרҵµÄ´óÉñ¿ÉÒÔ½â´ðһϡ£

ËÄ¡¢H5µÄ»º´æ

½²ÍêÁËWebView×Ô´øµÄ»º´æ£¬ÏÂÃæ½²Ò»ÏÂH5ÀïÃæµÄApp Cache¡£Õâ¸öCacheÊÇÓÉ¿ª·¢WebÒ³ÃæµÄ¿ª·¢Õß¿ØÖƵ쬶ø²»ÊÇÓÉNativeÈ¥¿ØÖƵ쬵«ÊÇNativeÀïÃæµÄWebViewÒ²ÐèÒªÎÒÃÇ×öÒ»ÏÂÉèÖòÅÄÜÖ§³ÖH5µÄÕâ¸öÌØÐÔ¡£

1.¹¤×÷Ô­Àí

дWebÒ³Ãæ´úÂëʱ£¬Ö¸¶¨manifestÊôÐÔ¼´¿ÉÈÃÒ³ÃæÊ¹ÓÃApp Cache¡£Í¨³£htmlÒ³Ãæ´úÂë»áÕâôд£º

<html manifest = "xxx.appcache">
</html>

xxx.appcacheÎļþÓõÄÊÇÏà¶Ô·¾¶£¬ÕâʱappcacheÎļþµÄ·¾¶ÊǺÍÒ³ÃæÒ»ÑùµÄ¡£Ò²¿ÉÒÔʹÓõľø¶Ô·¾¶£¬µ«ÊÇÓòÃûÒª±£³ÖºÍÒ³ÃæÒ»Ö¡£

ÍêÕûµÄxxx.appcacheÎļþÒ»°ã°üÀ¨ÁË3¸ösection£¬»ù±¾¸ñʽÈçÏ£º

CACHE MANIFEST
# 2017- 05- 13 v1.0.0
/bridge .js
NETWORK:
*
FALLBACK:
/404.html

CACHE MANIFESTÏÂÃæÎļþ¾ÍÊÇÒª±»ä¯ÀÀÆ÷»º´æµÄÎļþ

NETWORKÏÂÃæµÄÎļþ¾ÍÊÇÒª±»¼ÓÔØµÄÎļþ

FALLBACKÏÂÃæµÄÎļþÊÇÄ¿±êÒ³Ãæ¼ÓÔØÊ§°ÜʱµÄÏÔʾµÄÒ³Ãæ

AppCache¹¤×÷µÄÔ­Àí£ºµ±Ò»¸öÉèÖÃÁËmanifestÎļþµÄhtmlÒ³Ãæ±»¼ÓÔØÊ±£¬CACHE MANIFESTÖ¸¶¨µÄÎļþ¾Í»á±»»º´æµ½ä¯ÀÀÆ÷µÄApp CacheĿ¼ÏÂÃæ¡£µ±Ï´μÓÔØÕâ¸öÒ³ÃæÊ±£¬»áÊ×ÏÈÓ¦ÓÃͨ¹ýmanifestÒѾ­»º´æ¹ýµÄÎļþ£¬È»ºó·¢ÆðÒ»¸ö¼ÓÔØxxx.appcacheÎļþµÄÇëÇóµ½·þÎñÆ÷£¬Èç¹ûxxx.appcacheÎļþûÓб»Ð޸Ĺý£¬ÄÇô·þÎñÆ÷»á·µ»Ø304 Not Modified¸øµ½ä¯ÀÀÆ÷£¬Èç¹ûxxx.appcacheÎļþ±»Ð޸Ĺý£¬ÄÇô·þÎñÆ÷»á·µ»Ø200 OK£¬²¢·µ»ØÐµÄxxx.appcacheÎļþµÄÄÚÈݸøä¯ÀÀÆ÷£¬ä¯ÀÀÆ÷ÊÕµ½Ö®ºó£¬ÔÙ°ÑеÄxxx.appcacheÎļþÖÐÖ¸¶¨µÄÄÚÈݼÓÔØ¹ýÀ´½øÐлº´æ¡£

¿ÉÒÔ¿´µ½£¬AppCache»º´æÐèÒªÔÚÿ´Î¼ÓÔØÒ³ÃæÊ±¶¼·¢³öÒ»¸öxxx.appcacheµÄÇëÇóÈ¥¼ì²émanifestÎļþÊDz»ÊÇÓиüУ¨byte by byte£©¡£¸ù¾ÝÕâÆªÎÄÕ£¨H5 »º´æ»úÖÆÇ³Îö ÒÆ¶¯¶Ë Web ¼ÓÔØÐÔÄÜÓÅ»¯£©µÄ½éÉÜ£¬AppCacheÓÐһЩ¿ÓµÄµØ·½£¬ÇÒ¹Ù·½ÒѾ­²»ÍƼöʹÓÃÁË£¬µ«Ä¿Ç°Ö÷Á÷µÄä¯ÀÀÆ÷ÒÀÈ»ÊÇÖ§³ÖµÄ¡£ÎÄÕÂÀïÖ÷ÒªÌáµ½ÏÂÃæÕâЩ¿Ó£º

Òª¸üлº´æµÄÎļþ£¬ÐèÒª¸üаüº¬ËüµÄ manifest Îļþ£¬ÄÇÅÂÖ»¼ÓÒ»¸ö¿Õ¸ñ¡£³£Óõķ½·¨£¬ÊÇÐÞ¸Ä manifest Îļþ×¢ÊÍÖеİ汾ºÅ¡£È磺# 2012-02-21 v1.0.0

±»»º´æµÄÎļþ£¬ä¯ÀÀÆ÷ÊÇÏÈʹÓã¬ÔÙͨ¹ý¼ì²é manifest ÎļþÊÇ·ñÓиüÐÂÀ´¸üлº´æÎļþ¡£ÕâÑù»º´æÎļþ¿ÉÄÜÓõIJ»ÊÇ×îеİ汾¡£

ÔÚ¸üлº´æ¹ý³ÌÖУ¬Èç¹ûÓÐÒ»¸öÎļþ¸üÐÂʧ°Ü£¬ÔòÕû¸ö¸üлáʧ°Ü¡£

manifest ºÍÒýÓÃËüµÄHTMLÒªÔÚÏàͬ HOST¡£

manifest ÎļþÖеÄÎļþÁÐ±í£¬Èç¹ûÊÇÏà¶Ô·¾¶£¬ÔòÊÇÏà¶Ô manifest ÎļþµÄÏà¶Ô·¾¶¡£

manifest Ò²ÓпÉÄܸüгö´í£¬µ¼Ö»º´æÎļþ¸üÐÂʧ°Ü¡£

ûÓлº´æµÄ×ÊÔ´ÔÚÒѾ­»º´æµÄ HTML Öв»ÄܼÓÔØ£¬¼´Ê¹ÓÐÍøÂç¡£ÀýÈ磺http://appcache-demo.s3-website-us-east-1.amazonaws.com/without-network/

manifest Îļþ±¾Éí²»Äܱ»»º´æ£¬ÇÒ manifest ÎļþµÄ¸üÐÂʹÓõÄÊÇä¯ÀÀÆ÷»º´æ»úÖÆ¡£ËùÒÔ manifest ÎļþµÄ Cache-Control »º´æÊ±¼ä²»ÄÜÉèÖÃÌ«³¤¡£

2.WebViewÈçºÎÉèÖòÅÄÜÖ§³ÖAppCache

WebViewĬÈÏÊÇûÓпªÆôAppCacheÖ§³ÖµÄ£¬ÐèÒªÌí¼ÓÏÂÃæÕ⼸ÐдúÂëÀ´ÉèÖãº

WebSettings webSettings = webView.getSettings();
webSettings.setAppCacheEnabled(true);
String cachePath = getApplicationContext (). getCacheDir() .getPath (); // °ÑÄÚ²¿Ë½Óлº´æÄ¿Â¼'/data/data/ °üÃû/cache/ '×÷ΪWebViewµÄAppCacheµÄ´æ´¢Â·¾¶
webSettings.setAppCachePath (cachePath);
webSettings.setAppCacheMaxSize( 5 * 1024 * 1024);

×¢Ò⣺WebSettingsµÄsetAppCacheEnabledºÍsetAppCachePath¶¼±ØÐëÒªµ÷ÓòÅÐС£

3.´æ´¢AppCacheµÄ·¾¶

°´ÕÕAndroid SDKµÄAPI˵Ã÷£¬setAppCachePathÊÇ¿ÉÒÔÓÃÀ´ÉèÖÃAppCache·¾¶µÄ£¬µ«ÊÇÎÒʵ¼Ê²âÊÔ·¢ÏÖ£¬²»¹ÜÄãÔõôÉèÖÃÕâ¸ö·¾¶£¬ÉèÖõ½Ó¦ÓÃ×Ô¼ºµÄÄÚ²¿Ë½ÓÐĿ¼»¹ÊÇÍⲿSD¿¨£¬¶¼ÎÞ·¨ÉúЧ¡£AppCache»º´æÎļþ×îÖÕ¶¼»á´æµ½/data/data/°üÃû/app_webview/cache/Application CacheÕâ¸öÎļþ¼ÐÏÂÃæ£¬ÔÚÉÏÃæµÄAndroid 4.4ºÍ5.1ϵͳĿ¼½ØÍ¼¿ÉÒÔ¿´µÃµ½£¬µ«ÊÇÈç¹ûÄã²»µ÷ÓÃsetAppCachePath·½·¨£¬WebView½«²»»á²úÉúÕâ¸öĿ¼¡£ÕâÀïÓеãÈÃÎÒ¾õµÃÆæ¹Ö£¬ÎҲ²â¿ÉÄÜ´Óijһ¸öϵͳ°æ±¾¿ªÊ¼£¬ÎªÁË»º´æÎļþµÄÍêÕûÐԺͰ²È«ÐÔ¿¼ÂÇ£¬SDKʵÏÖµÄʱºò¾Í°ÉAppCache»º´æÄ¿Â¼ÉèÖõ½ÁËÄÚ²¿Ë½Óд洢¡£

Îå¡¢×ܽá

Ïàͬµã

WebView×Ô´øµÄ»º´æºÍAppCache¶¼ÊÇ¿ÉÒÔÓÃÀ´×öÎļþ¼¶±ðµÄ»º´æµÄ£¬»ù±¾ÉϱȽϺõØÂú×ã¶ÔÓڷǸ²¸ÇʽµÄjs¡¢cssµÈÎļþ¸üС£

²»Í¬µã

WebView×Ô´øµÄ»º´æÊÇÊÇЭÒé²ãʵÏֵģ¨ä¯ÀÀÆ÷Äں˱ê׼ʵÏÖ£¬¿ª·¢ÕßÎÞ·¨¸Ä±ä£©£»¶øAppCacheÊÇÓ¦ÓòãʵÏֵġ£

WebViewµÄ»º´æÄ¿Â¼ÔÚ²»Í¬ÏµÍ³ÉÏ¿ÉÄÜÊDz»Í¬µÄ£»¶ø¶ÔÓÚAppCache¶øÑÔ£¬AppCacheµÄ´æ´¢Â·¾¶ËäÈ»Óз½·¨ÉèÖ㬵«ÊÇ×îÖÕ¶¼´æ´¢µ½ÁËÒ»¸ö¹Ì¶¨µÄÄÚ²¿Ë½ÓÐĿ¼Ï¡£

WebView×Ô´øµÄ»º´æ¿ÉÒÔÔÚ»º´æÉúЧµÄʱºò²»ÓÃÔÙ·¢HTTPÇëÇó£»¶øAppCacheÒ»¶¨»á·¢³öÒ»¸ömanifestÎļþµÄÇëÇó¡£

WebView×Ô´øµÄ»º´æ¿ÉÒÔͨ¹ýÉèÖÃCacheModeÀ´¸Ä±äWebViewµÄ»º´æ»úÖÆ£»¶øAppCacheµÄ»º´æ²ßÂÔÊÇÓÉmanifestÎļþ¿ØÖƵģ¬Ò²¾ÍÊÇ˵ÊÇÓÉwebÒ³Ãæ¿ª·¢Õß¿ØÖƵġ£

×îºó˵һÏ£¬ÆäʵºÜ¶àʱºò£¬ÕâÁ½À໺´æÊǹ²Í¬ÔÚ¹¤×÷µÄ£¬µ±manifestÎļþûÓпØÖÆÄ³Ð©×ÊÔ´¼ÓÔØÊ±£¬ÀýÈçÎÒÉÏÃæÐ´µÄxxx.appcacheÎļþÀNETWORK sectionÏÂÃæÓõÄÊÇ*ºÅ£¬Òâ˼ÊÇËùÓв»»º´æµÄÎļþ¶¼ÒªÈ¥ÍøÂç¼ÓÔØ¡£´Ëʱ£¬ÕâЩ×ÊÔ´¾Í»á×ßµ½WebView×Ô´øµÄ»º´æ»úÖÆÈ¥£¬½áºÏWebViewµÄCacheMode£¬ÎÒÃÇʵ¼ÊÉ϶ÔÕâЩÎļþ½øÐÐÁËÒ»´ÎWebView×Ô´øµÄ»º´æ¡£¸ãÇå³þÕâÁ½À໺´æµÄÔ­ÀíÓÐÀûÓÚÎÒÃǸüºÃµÄÉè¼Æ×Ô¼ºµÄÒ³ÃæºÍApp£¬¾¡¿ÉÄܼõÉÙÍøÂçÇëÇó£¬Ìá¸ßAppÔËÐÐЧÂÊ¡£

   
1945 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì