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直连校验自定义证书。
网友评论