最近想用react native来练习练习,首选是做个微博客户端,有长列表,有浮层,有二级页面。。
react native也出来这么久了,生态应该不成问题,就找了找微博RN组件,发现了https://github.com/reactnativecn/react-native-weibo 和 react-native-weibo-login。 react-native-weibo已经好久没维护了,PR也没人合并,react-native-weibo-login虽然可以使用,但只支持登陆功能。
有点失望。
只能自己动手了,官方的weibo_ios_sdk,其实没把源码放在上面,而是打包好的静态库,不过通过查看WeiboSDKDemo也大致能知道如何调用。而我们要做的是调用weibo_ios_sdk的接口,react native文档也有native-modules-ios。最核心是通过RCT_EXPORT_METHOD暴露接口。
比起一切从头开始,选择在react-native-weibo的基础上做修改,github.com/yun77op/rea…
- 引用
#import "RCTBridgeModule.h"
改成
#import <React/RCTBridgeModule.h>
或者如果需要兼容老版本
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else
#import "RCTBridgeModule.h"
#endif
- 微博sdk本身的改动
- WBVideoObject变成了WBNewVideoObject,并添加了addVideo方法
- WBMusicObject类去掉了
- ...
- 事件通信
以前通过eventDispatcher,现在改成继承RCTEventEmitter
总结
本文记录本人的实践,如果有第三方服务没有现成的RN库,可以从本文从得到启发也不错。