这篇文章主要介绍了使用runtime 实现weex 跳转原生页面的相关资料,需要的朋友可以参考下
一、简述
最近项目组打算引入weex,并选定了一个页面进行试水。页面很简单,主要是获取数据渲染页面,并可以跳转到指定的页面。跟之前使用RN 相比,weex 确实要简单很多。从下图中我们可以看到,weex 页面需要跳转到原生页面,并且跳转到哪个页面我们可能并不能写死。也就是说只要原生页面之前项目中写过了,那么理论上来说使用weex 可以任意调用。那么问题来了,我原来的页面可能只知道名字,我怎么为那个页面传值呢?比如有个页面orderDetailVC ,跳转时需要传入orderId,即orderDetailVC.orderId = @"123";
二、思考
可能最直接的想法就是直接原生给weex 提供一个方法,让weex 传入orderId,然后再push。但是如果明天我们需要跳转到另一个页面merchantDetailVC呢?它需要的不是orderId了,可能是一个merchantId,甚至更多参数。那怎么才能实现任意跳转呢?我的想法是,项目是我写的,需要跳转到哪个类,那么这个类名我肯定是清楚的,并且这个类应该需要什么参数我也是清楚的。只不过我可能不知道怎么用weex 把它参数传过去而已。如果知道了类名就意味着我知道了这个类,我能找到这个类,那么我就知道这个类有哪些属性了,这个类的所有属性我都能拿到,只不过有些是我需要给它赋值的,有些是不需要处理的。
三、实现
整体的思路是:原生给weex 提供一个通用的跳转方法。参数是类名和属性字典。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
提供方法后weex 可以这样调用:
确定了方案之后,剩下唯一的事情就是如何实现给weex 提供的方法。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|