taro(React Native)集成个推

2020-09-24  本文已影响0人  行走世间全都是妖怪

        开早会的时候,突然就被安排了集成个推的任务,emmm……有点不知所措。(本人是android 开发,学习taro还不到一周,一行代码还没有写过。可能是我高度不够,所以技术水平也就停留在这一般的一般层次了。)

        其实集成第三方SDK各个平台的步骤都差不多,一般第三方都会提供各个平台的集成文档,根据文档一步步来基本上都能完成。这篇文章只记录集成过程中遇到的问题和坑,不代表最终可以达到推送功能的过程和代码。

        去个推官网,emmm,没有找到任何关于taro(react-native)相关的文档。幸好之前有加过个推的客服,通过咨询之后给到了rn的集成地址:GitHub - GetuiLaboratory/react-native-getui: 个推官方提供的推送SDK React Native 插件(支持 Android & iOS)

一:配置Android 

1、根据文档流程开始,通过终端进入到taro-native-shell文件夹,分别执行命令npm install react-native-getui --save和react-native link react-native-getui,终端显示link成功

link成功

再执行官方文档(上面的链接)的这个命令

但在Android studio中进行rebuild时,会出现这样的错误

Android studio报错 报错的引用

当然终端执行react-native run-android 同样会报错,这里就不贴出报错信息了(其实是报错后的截图我找不到了,总是就是报一些啥啥文件找不到,还有什么什么函数找不到的错误)

在build.gradle文件中添加如下代码

build.gradle配置

maven{

  url"http://mvn.gt.igexin.com/nexus/content/repositories/releases/"

}

2、继续执行,又出现了这样的错误

终端报错

在AndroidManifest.xml文件个推配置中,添加如下代码

清单文件添加配置

继续运行,又出现啥魅族、小米、华为啥啥的,这是多厂商配置的问题

多厂商配置报错

根据终端的错误进行配置即可

多厂商配置

开通了多厂商就配置上相应的appId和appKey,没有开通设置为空就好了。

3、再在android/app/build.gradle 的defaultConfig节点中添加如下代码

再在MainActivity中添加如下代码:

        至此,react native 配置Android 个推就完成了,剩下的就是要在taro框架中的页面完成推送的功能。

        完结撒花,👏👏👏👏👏👏👏👏

        哦,还有ios的,阿西吧~~~~~~~

二:配置ios

        先运行一下ios,看会报什么错

使用Xcode打开taro-native-shell/ios/taroDemo.xcodeproj。打开AppDelegate.h文件,发现引用的个推(在上面的步骤中,执行link和npm run GetuiConfigure。。。命令后,一般Xcode引用会自动生成)的头部文件没找到

依次找到target-build setting-search paths-header search paths添加路径$(SRCROOT)/../node_modules/react-native-getui/iOS/RCTGetuiModule

然后终端cd ios执行pod install,cd .. ,执行react-native run-ios 正常编译运行。再根据个推文档在AppDelegate.h和AppDelegate.m文件中添加相应的代码(上边也说过了,执行link和npm run GetuiConfigure。。。命令后,Xcode一般会把需要添加的代码自动引入,不需要手动添加。但还是需要检查一下,如果没有的话还是需要手动添加的),react native 集成个推的ios端就算完成了(感觉比配置Android 要简单。。。。。)。

三、集成个推代码后报错

引入

终端运行npm run dev:rn报错:

这个也算是集成的一个问题吧(其实就是自己没反应过来,个推提供的rn的文档,不是taro的,并不是完全一样的),原因就是只在taro-native-shell壳子中引入了个推,没有在自己的taro项目目录中引入。在自己项目中引入之后,问题就解决了。完美获取到了clientId

上一篇下一篇

猜你喜欢

热点阅读