Scott同学,RN如何与第三方ios,android版本的SDK完美集成,或有什么替代方案
来源:
欧自成
2016-09-20
RN可以在很大程度上重用WEB开发的知识和经验,而且APP开发中的调试也更方便,除此之外用RN写的很多代码可以多平台重用,进一步提升开发效率。
但是我遇到如下的疑惑:
1、很多平台本身并没有为RN提供定制的SDK,一般来说都是提供原生版本的SDK和WEB版的SDK。比如最近想用阿里百川的IM功能(http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.nyoyaK&treeId=41&articleId=102828&docType=1),看看了文档,提供有原生SDK,还有H5版JSSDK(应该就是WEB版集成方法)。但是没有RN版的SDK。
2、在这样的情况下我们采用什么样的策略比较合适:
A、分别用官方的原生SDK实现原生版的IM功能,之后再将整个功能封装成RN模块,再与RN写的其他功能集成到一个APP中?
B、将官方原生SDK先封装成RN组件,然后在RN中使用?
C、像云旺这样有H5版的JSSDK,我们是否就可以直接在RN中使用这个JSSDK,因为RN本身就是JS的天下。但是有一个问题,大致看了下,H5版的集成文档介绍的明显是针对WEB,RN中应该怎么用?比如说示例代码中直接用<script src=……这样的方式引入一个在线JS文件,在RN中应该没有这样的写法吧。我们把文件下载了再引入?而且为WEB设计的SDK即使在RN中使用是不是还是会有性能问题?
D、另外有些开放平台根本没有JS版本SDK,我们如何是好?
3、2中所说的方法只是一些想法,不知道是否可行。我只是业余学习,请Scott大牛就第三方开放平台没有RN版SDK这样的情况分享一下见解。
1回答
-
第三方平台有 SDK 可以使用当然是最好,但 RN 还处在发展期并不完全稳定,可以静静等待一下,如果迫切需要第三方 SDK,可以给第三方团队发邮件请求支持,当然了,如果时间允许,可以等到自己 RN 掌握纯熟的时候,自己动手封装,无论是纯 RN 还是,利用 js bridge 桥接原生 SDK.
总之,这里面坑还是应该有很多的,先不建议踩,先以掌握 RN 及它周边的生态为主,等待掌握好了以后,再来接触一下 原生模块封装,web js 封装或者调用,是需要学习更多比如 swift object-c js bridge 的知识的,把硬骨头放到后面啃,不然很容易搭进去太多时间。
012016-09-21
相似问题