Android webview白屏

众所周知,Android 程序员会遇到一个极其之坑的问题,webview 加载h5页面,然后各种遭bb的问题就出来了


1.webview 只显示一部分内容

2.webview显示的图片不正常,巨TM大,或者巨tm小

3.webview上的点击没效果,你mmp的

4...


当遇到这些情况的时候,一般我们会谷歌,然后我们一般会发现这么些解决办法:

   WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        webSettings.setDomStorageEnabled(true);
        webSettings.setDatabaseEnabled(true);
        webSettings.setAppCacheEnabled(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setSavePassword(true);
        webSettings.setSupportZoom(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSettings.setUseWideViewPort(true);


确实,上述这些配置,确实可以解决大部分问题,但是,但是,

没错 有一种神奇的问题就是 白屏问题,我所说的白屏问题不是一般的白屏问题,



周一:晴,我拿了个1200块的Android机 用来加载h5页面,点点测测,毫无问题,好,过了过了,


周一晚:由于1200的Android手机被人借走了,只能拿出当年的300块大哥大来测, fuck怎么回事,怎么白屏?  不要慌,嗯,肯定是网络的问题,

于是大喊一声,mmp谁在下小电影,赶紧给老子关了,一声吼之后,再次心平气和坐下来,run....  made,怎么回事,怎么还是白屏,莫慌,莫慌,冷汗开始往下流,made,明天要上 uat怎么办,,,,,

于是想到了,反正测试过了,关我鸟事,出问题也是测试抗...........



好了,比装到这里,下面说正事,由于现在h5大部分都是 vue的形式打包,(可能过个一两年就变了,但是万变不离其中),这个时候要注意了, 由于是webv加载的h5,在Android老的机型上  webview 内核可能不支持  最新的h5 框架,这时候 就需要我们找h5 的同学 搞事情了,  对于 vue,想要老机器不出现白屏其实也很简单,

让h5的同学 做一下老版本的兼容,具体方法:


虽然vue-cli引入了babel对js语法进行降级,但是还是有些老旧的机型会发生各种各样的问题,这里需要引入一个叫babel-polyfill的包。所以你只需只在你引入import vue之前 import babel-polyfill进来就可以了,主要是为了让es6对个别机型做到兼容。


好了,到这里就应该差不多了。。。





你可能感兴趣的:(android,进阶篇)