最近与一客户合作,我们的产品以h5的形式集成到别人的App里。客户发给我们测试版的android app,我们给他们链接,然后在他们app里的webview调试
问题来了,我们适配屏幕的方案是采用viewport缩放,算出缩放比,设置scale来做到适配所有机型,这套适配方案在我们的app里也经过了检验,基本没出什么问题,但是客户反馈,720p的手机上,并未缩放。我们测试之后发现,确实如此
于是分析原因,为什么没有缩放,打印出缩放比,确实是没错的。打印出viewport的属性值,也是没错的。在js里重新设置viewport值,仍然是OK的,那为什么缩放并未生效呢?
后来想到会不会是user-scalable=no导致,于是把这个值去掉,结果无效,仍然是一样的。于是设置user-scalable=yes,终于成功
问题虽然解决了,但是却并不知道原因,这个属性应该是控制用户缩放的,但是却导致设置的缩放失效?而且这个缩放问题虽然解决了,但是引起了另一个问题,就是4.3以下的手机,返回webview会变白,必须手触摸一下才会正常,估计也是这个原因引起的。
这个问题先记下,后续开发中看能不能找到原因,同时也决定采用手淘的lib-flexible方案了