android兼容性问题汇总

1、webview 当在H5中通过schema跳转时,如果当前系统中不存在接收该schema的意图,将会导致crash,需要 try catch

public boolean shouldOverrideUrlLoading(WebView view, String url)

{

if(!url.startsWith("http:") && !url.startsWith("https:"))

{

try

{

Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));

view.getContext().startActivity(intent);

}catch(Exception e)

{

}

return true;

} else

{

if(this.overideUrlCallBack != null)

{

this.overideUrlCallBack.onCallBack(view, url);

}

return false;

}

}

2、魅族手机5.1,;5.1.1;6.0版本调起支付的时候会启动安全模式导致 跳转成功页失败,在此延迟1秒,等待系统关闭安全模式然后再跳转

if(DeviceUtils.isMeizuFlymeOS() && ("22".equals(DeviceUtils.getAndroidVersion()) || "23".equals(DeviceUtils.getAndroidVersion())  ))

{

handler.postDelayed(new Runnable()

{

@Override

public void run()

{

goToSuccessPage();

}

},1000);

}else

{

goToSuccessPage();

}

3、webview 当android  level 大于15时,会限制js执行脚本的大小,当前将targetVersion设置为15 无此限制

4、自定义控件,当前android level小于16时,默认的背景颜色是黑色的,所以需要设置背景颜色,大于16默认是透明的。API16以下,View中是没有setBackground方法的,只有setBackgroundDrawable方法

5、viewPage + Fragment 布局,自定义控件偶现绘制失败,出现空白区域。解决方案: mViewPager.setOffscreenPageLimit(4);

6、webview 或 普通网络请求走https协议时,个别机型出现证书校验失败,原因是手机出厂的根证书有问题。当前webview的做法是放过,普通网络请求未处理。另一个方案是:当系统证书校验失败时,走ip直连校验自定义证书。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容