首页 » 前端 » 正文

移动端web滚动对js对影响

最近在手机上开发一个功能,页面上有几个分享按钮,当web页面滚动到按钮的位置时,按钮状态改为悬浮,那么问题来了:iOS上,web滚动过程中,不响应js绘图事件

这里引用了相关说明:

现象

根源

### 关于web滚动响应js绘图事件的情况

ios7浏览器内核从根本上无法支持,包括safari浏览器 ios8浏览器内核支持,所以safair浏览器支持 ios8原生应用必须使用ios8+的新控件WKWebView才可以支持(WKWebView主要在和js交互的性能上优于原来的UIWebView,因为他直接使用的是safari的内核,UIWebView使用的是阉割版的)

### 解决方案

1、js自己做滚动,即不直接使用web的滚动事件,可能需要使用一些hack方法,也有一些三方库,风险h5自己评估

2、顶部改用原生实现,包括滚动效果,ios这边预计1-2天

弊端:

  • 警告!Apple文档明确警告开发者不要在webview里嵌套任何原生view,会带来不可预知的结果,且对于不同版本api可能有不同的兼容问题
  • 如果顶部也改为原生的话,那我们的页面就变成:原生header+web+原生footer,参考1,此方案复杂度更高,可能的兼容风险问- 题自然也更高,另外业界基本没有这么做的

3、 放弃ios7,只支持ios8+,使用WKWebView代替UIWebView,考虑到目前webview+原生footer的混合方式,无法预估时间,需额外调研

优点:

  • js执行效率大幅提升,响应时间减少,相差1-2倍

### 引用别人的题外话

没有解决不了的技术问题,无非是时间和解决方式可能带来的弊端权衡

问题的解决方式有很多,但是要明确想要什么,是不是通过别的方式能达到同样的目的

来源:网络

本文共 13 个回复

发表评论