这是在项目里使用了weex,遇到一些坑,也费了挺多时间,都是要慢慢来的。总共两个页面,一个列表页,一个详情页,其中,涉及到js与native之间互相通信,页面与页面之间的交互等。
js与native通信
列表页的数据需要从接口请求得到,考虑到在项目里用js重新实现一套网络通信的成本,最后还是在native进行网络请求,获取到的数据再返回给js页面。
weex提供了module扩展的功能,具体使用方法见官网weex
在这里我自定义了一个网络请求的module:
Android代码:
/**
* 请求module
* 处理weex页面中的网络请求
* Created by xiaoqiuhong on 2017/4/12.
*/
public class RequestModule extends WXModule implements INoProguard {
private JSCallback failureResult; // 接口请求失败返回给js的回调
private JSCallback successResult; // 接口请求成功返回给js的回调
private JSCallback doingResult; // 正在接口请求返回给js的回调
private String urlMethod;
private String urlService;
private static final String SERVICE= "service";
private static final String METHOD_ONE= "methodOne";
private static final String METHOD_TWO= "methodTwo";
/**
* 请求参数
*/
private static class RequestParams implements INoProguard {
public String type; // 服务器类型
public String api; // 请求api地址
public Map<String, Object> params; // 请求request
}
/**
* weex页面通过native请求服务器
*
* @param params 请求参数
* @param doingResult doing回调
* @param successResult 成功回调
* @param failureResult 失败回调
*/
@WXModuleAnno(runOnUIThread = true)
public void requestWithOption(RequestParams params, JSCallback doingResult,
final JSCallback successResult, final JSCallback failureResult) {
this.failureResult = failureResult;