壮哉我大APICloud - useWKWebView参数解决iOS滚动监听问题

APICloud模块很方便,特别是openWinopenFrame等打开原生view的方法更是既方便又强大,但众所周知iOS的webview有诸多问题,比如:

  • 当页面上下滚动是所有js、css动画甚至gif图片都会暂停运行,直到滚动停止。无解!
  • 300ms点击延迟,通常都用fastclick解决
  • css3或者js动画跟原生动画还是有很大差距

曾经我也妥协了,以为APICloud已经尽力了,但今无意中看到了一篇文章讲苹果的新WebView的,就试了一下APIcloud的useWKWebView这个参数,然后就上天了。。。

戳我查看APICloud的api对象

api.openWin方法示例

api.openWin({
    name: 'page1',
    url: './page1.html',
    useWKWebView: true, // ←关键在这里
    pageParam: {
        name: 'test'
    }
});

useWKWebView:
类型:布尔
默认值:false
描述:(可选项)是否使用WKWebView来加载页面,只支持iOS8.0及以上系统。WKWebView是iOS8新出的WebKit库中的控件,相比于以前的UIWebView,在性能和功能等方面都有所提升。注意使用WKWebView的页面不支持同步方法。

我也没深入看这个WKWebView有啥优势,但试了之后发现上面的两个问题全都解决了,至于动画效率,据说是可以达到60fps,没试过。

  • 页面中onscroll方法居然可以持续返回window.scrollY来表示自己滚动了多远。这样以后就能实现大多数app的上滑将导航变透明的效果了。
  • 滚动过程中GIF居然没有受到任何影响,完美运行。要知道默认的webview只要手指一滚动gif就暂停的。
  • 啥都没用,300ms点击延迟直接消失。

壮哉我大APICloud。

BTW:上次试了一下React Native的底部TAB导航DEMO,快速点击切换的时候略有卡顿,跟apicloud相差甚远,而APICloud做出来的媲美原生微信tab切换,失望了。

你可能感兴趣的:(壮哉我大APICloud - useWKWebView参数解决iOS滚动监听问题)