android接入weex

背景

支持app混合开发,由最初的原生+web,转成原生+(weex,RN,web,flutter等),优点是app可以不用更新,就能上线一些新功能。缺点主要是体验问题,目前weex,RN,web,flutter都不能达到原生页面的体验效果。

接入

官方文档:https://weex.apache.org/zh/guide/introduction.html

注意点

1、项目ndk abiFilters的配置,注意之前项目有配置适配哪些cpu类型,一般配置armeabi-v7a即可。如果需要模拟器运行,需在配置x86,一般sdk初始化都是这个问题。
2、weex图片加载,里面有很多坑。原生需要实现IWXImgLoaderAdapter接口,并在初始化weex配置,目前项目使用的是glide图片加载,出现过图片拉伸,加载不全,模糊,等各种问题,建议尽量不要使用placeholder,DrawableTransitionOptions.withCrossFade。weex js端注意image标签resize属性设置。weex js端的所有图片加载都是走原生的实现类加载。
3、weex的网络请求,需要原生实现IWXHttpAdapter接口,所有的js的网络请求都是走原生的实现类去网络请求,可以配置网络请求超时时间,以及要处理cookie问题。以及http状态码的初步处理
4、自定义插件:原生继承WXModule,通过WXSDKEngine.registerModule(moduleName, moduleClass),自定义WXModule中方法为public,并添加注解@JSMethod,可指定方法执行在UI线程或者子线程,默认为UI线程。方法入参为具体根据插件功能自己定义,回调通过JSCallback.invokeAndKeepAlive或者JSCallback.invoke回调数据。两者区别为invoke为WXModule方法调一次就有一次回调,invokeAndKeepAlive则更像原生的listener,设置回调之后,不用每次调用方法,只需要有触发就有回调,相当于事件绑定的一个持续回调。
5、自定义js标签:原生继承WXComponent,实现自定义view。weex默认提供的text image标签是同样的原理,只不过是weex原生sdk已经默认实现了。通过@WXComponentProp注释方法自定义属性,可获取js标签的属性值,@JSMethod自定义方法。WXSDKEngine.registerComponent注册自定义组件
6、weex页面渲染:实现IWXRenderListener,可加载本地js文件,以及js链接。会出现不触发onRenderSuccess回调的情况,如果在加载js时有loading,需要注意
7、注意处理加载js异常,onException处理
8、如果有需要做js本地缓存,这样加载过的js页面,即使没有网络也可以打开。具体看业务需求

你可能感兴趣的:(android接入weex)