安卓开发中的系统版本兼容的注意事项(一)(Android5.0 API21)

传送门:安卓开发中的系统版本兼容的注意事项(二)(Android6.0 API23)

安卓开发中的系统版本兼容的注意事项(三)(Android7.0 API24)

安卓开发中的系统版本兼容的注意事项(四)(Android8.0 API26)

作为安卓开发者最头疼的一点,莫过于谷歌越来越快的版本更新速度。以及升级编译版本后需要面对的大量兼容性异常。尤其是今年电信终端产业协会(TAF)发布了《移动应用软件高API等级预置与分发自律公约》。https://baike.baidu.com/item/移动应用软件高API等级预置与分发自律公约/22759862

逼着你升级,想不升级都不行。

下面将根据自己实际项目中升级开发版本的经验,对每个版本的注意事项做一下总结性回顾。方便自己以后查阅方便,也可以给有这方面需求的新手提供一点借鉴。

一、WebView中Http和Https混合问题

升级到5.0+以后,我们会发现,WebView中加载的有些图片会空白不显示。从后台信息中,我们可以看到,这些图片资源都是https的。

这是因为从Android5.0以后,当一个安全的站点(https)去加载一个非安全的站点(http)时,系统将拒绝加载对应资源。需要配置Webview加载内容的混合模式,我们可以通过修改webSetting的方式来解决此问题。

//允许混合内容,5.0之后的api
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

注意,前面的版本判断一定不能忘。否则低版本会报错。

补充知识:关于WebView无法自动播放video标签里的视频的问题。在安卓4.2以上,浏览器默认是禁止视频自动播放的。只能通过手势点击去触发播放事件。如需自动播放需要修改WebSetting。解决方法如下:

//允许视频自动播放
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
    webSettings.setMediaPlaybackRequiresUserGesture(false);

 

你可能感兴趣的:(安卓开发中的系统版本兼容的注意事项(一)(Android5.0 API21))