APICloud模块很方便,特别是openWin
和openFrame
等打开原生view的方法更是既方便又强大,但众所周知iOS的webview有诸多问题,比如:
- 当页面上下滚动是所有js、css动画甚至gif图片都会暂停运行,直到滚动停止。无解!
- 300ms点击延迟,通常都用
fastclick
解决 - css3或者js动画跟原生动画还是有很大差距
曾经我也妥协了,以为APICloud已经尽力了,但今无意中看到了一篇文章讲苹果的新WebView的,就试了一下APIcloud的useWKWebView
这个参数,然后就上天了。。。
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切换,失望了。