(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案

1  因为项目需要webview需要适配android4.4以下版本。原生的webview在4.4以下版本不显示。可以使用以腾讯x5为内核的webview 完美解决我的问题。腾讯x5为内核的webview网上有很多例子,自己查找 很简单的。

2  刚适配完4.4以下的,8.0以上的又出问题了,fuck。。。。后来经过本人查阅是兼容性问题,在项目build.gradle里添加这段话

splits {

abi {

enable true

        reset()

include'x86','armeabi-v7a','x86_64'

        universalApk true

    }

}

如图:

(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案_第1张图片
添加这段话

虽然可以显示了,但是为什么我在不同的手机里运行,却能生成不同的apk,这是为什么呢?希望有大神可以帮忙解决。如图:


(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案_第2张图片

3  当我感觉所有问题都解决的时候,又用4.4以下版本跑了以下,4.4以下又不显示了,崩溃!!肯定有事兼容性问题,兼容了8.0,又不兼容4.4以下了。于是又在build.gradle中又加了几句话,如图:

(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案_第3张图片

4  到此为止,4.4以下和8.0 的都可以兼容了,再有机型不兼容的  再继续添加!!!(我猜的)

注意将在android8.0上跑的apk,安装到4.4以下版本的就可以显示了。直接在4.4以下机型跑还是显示不了

5 过了俩天技术负责人找我说 小米5 安卓8.0还是加载不出来webview,我又翻阅了很多资料终于解决问题。在web设置里加上以下属性

//--------在小米5 8.0系统无法加载出来-------//

webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持通过JS打开新窗口

webSettings.setAllowFileAccess(true);

webSettings.setAppCacheEnabled(true);

webSettings.setPluginsEnabled(true);

webSettings.setSaveFormData(false);

webView.refreshPlugins(true);

webSettings.setLoadsImagesAutomatically(true);//支持自动加载图片

// http请求的时候,模拟为火狐的UA会造成实时公交那边的页面存在问题,所以模拟iPhone的ua来解决这个问题

String user_agent =

"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1";

webSettings.setUserAgentString(user_agent);

/* Enable zooming */

webSettings.setSupportZoom(false);

//--------在小米5 8.0系统无法加载出来-------//

如图:

(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案_第4张图片

主要是红框里的内容。

6  下午我又在android4.4以下又跑了下。4.4以下的又显示不了了。转了一大圈又回来了,我也很无奈啊。于是决定将上步骤的2和3去掉,如图


(Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案_第5张图片
把这个splits去掉

对,把这个注释掉,跟x86什么的 应该没什么关系。注释掉以后就不会出现多个apk了,只会出现一个app-debug-apk。嗯!!!至此完美的解决了!!!!!

希望此文章可以帮到你!

你可能感兴趣的:((Android)Webview在anroid4.4以下和8.0以上版本兼容性解决方案)