美文网首页
Weex使用心得(一):网络请求优化

Weex使用心得(一):网络请求优化

作者: 今天i你好吗 | 来源:发表于2019-01-24 18:34 被阅读37次

weex官方github地址:https://github.com/apache/incubator-weex

以下内容以0.19.0版本为例

先来一段官方文档

weex本身是有一套网络默认的网络请求框架的,但是是基于HttpURLConnection所写,而且没有做cookie持久化存储等操作。这些我们可以从weex源码中可以看出。

但是在实际的开发中我们更多的是采用okhttp来进行网络请求,而且如果原生也有网络请求,这样维护两套网络请求是非常复杂的。所以我们需要自定义我们自己的网络请求。可以在weex初始化的时候通过setHttpAdapter来进行网络请求的替换。

自定义weex网络请求大致逻辑如下。

在WXRequest我们可以获取到所要进行网络请求的所有参数,OnHttpListener进行网络请求结果的回调。

所以我们拿到WXRequest可以修改里面的任何东西,比如header,cookie,甚至是baseurl等数据之后再次进行网络请求,因为我们采用的是okhttp进行网络请求,所以我们就可以通过okhttp的拦截器进行各种操作。

在这里可以返回一个自定义的OkHttpClient就可以发挥出okhttp的各种优势了。

源码地址:https://github.com/ws616628604/Weex/blob/master/playground/app/src/main/java/com/alibaba/weex/yzh/OkHttpWXHttpAdapter.java

100多行代码,比默认网络请求看起来更加简单明了

以上内容完,接下来是js加载的优化

通过源码我们发现通过renderPageByURL来加载weex页面最终是调用IWXHttpAdapter也就是我们自定义的网络请求来进行加载js文件的。当页面关闭的时候js的下载是没有停止的,这是一种资源的浪费,我们可以自己下一套通过okhttp来进行js文件下载的方案,在关闭页面的时候取消js文件的下载,以及监听js文件的加载进度来模仿web view的加载加一个进度条。

这种操作会涉及一下数据的传递,可参考weex自己的方案来修改。其实weex也是有示例代码的,但是不是太好,最好还是参考WXSDKInstance里面的解决方案。

后续有时间再写一些其它方面的问题。

相关文章

网友评论

      本文标题:Weex使用心得(一):网络请求优化

      本文链接:https://www.haomeiwen.com/subject/fyfujqtx.html