在weex文档中只说明了怎么集成到activity中,网上也有很多人在问如何将weex集成到fragment。其实答案很简单,weex渲染出来的内容其实只是在一个控件中,所以只需要和普通的fragment开发一样,将weex sdk嵌入即可。根据weex官方描述,在回调IWXRenderListener的onViewCreated返回创建的view。所以我们只需要让fragment实现IWXRenderListener,然后在onViewCreated中将渲染出来的view添加到整个视图容器中即可。
最后提一点优化,**除了考虑到weex使用到fragment中,当然也要考虑到有些页面不是内嵌fragment的情况。**这里可以不用重新写一套weex sdk的集成,直接让activity使用已经集成了weex的fragment即可。
###2.加载方式选择
在weex文档中提供了2种常用的加载js方式,本地加载和远程加载。笔者在weex开发者大会上问过手淘官方的人员,他们表示手淘首页入口9成都是weex的页面,并且这2中加载方式都有用到,根据实际业务团队自己来灵活选择。
我们是使用的打开app或者前后台切换时下载js,然后直接加载本地js的方式。该方式由于不用每次从网上下载,所以加载效率会高一些,但是也有缺点,就是每次线上发布以后需要一段时间用户才能下载到代码并生效,并不能及时的达到更新效果。
注意:不要采用在上一个页面点击时去判断本地js版本,然后下载运行的方式。该方式看起来很美好,又能实时更新效率又高,但是其实并不然。问题在于该方式需要去请求服务器获取js更新状态,万一网络差的时候就一直不会初始化容器,此时用户点击多次就会打开多个页面,非常的不友好,而且会给服务器带来无所谓的压力。
###3.不同的业务模