美文网首页
taro(React Native)集成个推

taro(React Native)集成个推

作者: 行走世间全都是妖怪 | 来源:发表于2020-09-24 18:27 被阅读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

    相关文章

      网友评论

          本文标题:taro(React Native)集成个推

          本文链接:https://www.haomeiwen.com/subject/pmrzyktx.html