美文网首页
React Native上集成腾讯推送服务TPNS

React Native上集成腾讯推送服务TPNS

作者: 乱七八糟谈技术 | 来源:发表于2020-05-31 15:16 被阅读0次
    在项目中需要用到推送服务,之前使用的是腾讯的信鸽推送,但今年腾讯的信鸽免费服务将不再维护,被逼需要升级到付费的腾讯云推送服务TPNS。在升级的过程中,由于项目很长时间没有维护,使用的React Native,Node和NPM版本比较低,在升级的过程中也遇到不少问题,总结出来给有需要的人。

    准备环境

    手机端依赖包

    1. React Native 0.32

    2. React-native-tencent-xg 0.1.0

    3. TPNS-SDK-Android

    4. TPNS-SDK-IOS

    服务端依赖包

    1. Tencent xg api library

    编译工具

    1. gradle V2.14.1

    2. npm V6.4.1

    3. Node V8.16.0

    开发工具

    1. Android Studio

    2. VS code

    实现

         设备注册
    • 第一步,在React Native Tencent XG模块中完成设备注册,由于升级到TPNS SDK, 之前的库React Native Tencent XG模块作者已经不再维护,因此需要在此模块中实现对新的TPNS SDK的支持。
    • 第二步,调用TPNS SDK注册设备
    • 第三步,TPNS返回设备的token
    • 第四步,在callback函数中获取TPNS返回的设备token,并调用React Native的DeviceEventManageModule来发送消息给JS程序
    • 第五步,ReactJS中获取到设备token,并调用平台的设备注册服务来将用户信息和设备token信息绑定。
      推送消息
    • 第一步,从移动端或者web端或者其他程序需要发送消息,首先调用平台的消息推送服务
    • 第二步,从数据库中根据业务推送规则获取设备token,也可以群发
    • 第三步, 调用XG push API来推送消息
    • 第四步,将消息推送到TPNS
      通知消息
    • 第一步,TPNS推送消息到Android或者IOS
    • 第二步,React Native Tencent XG模块里定义的Receiver接收到此消息,同样由于这个模块作者没有维护,需要根据最新的TPNS Android和IOS SDK来重构此功能
    • 第三步,Receiver接受到消息,调用React Native的Android DeviceEventManageModule或IOS里的消息模块来发送消息给JS程序
    • 第四步,React JS收到此消息,并根据业务规则显示在应用程序里。比如透传消息,通知消息需要做不同的处理

      遇到的问题

      兼容问题
      在开发中遇到的问题,首先是包的编译问题。由于这是一个没有定期维护的项目,因此NPM, Node,Gradle的版本都比较低,因此在项目的开发过程中遇到一些版本兼容导致的编译错误。因此对于这种项目在开发过程中,建议首先是不要升级版本,沿用原始的版本,等功能都稳定后,再依次升级工具版本,逐个问题解决。
      平台升级问题
      由于Tencent XG平台之前的SDK有些代码问题,特别是接口命名的英文名错误,在新的TPNS的SDK中都修改了。刚开发时没有注意这些,导致一些问题。此外,Tencent的推送平台SDK3版本和4版本域名也发生了变化,刚开始没有注意,每次推送报403错误而不是404错误,这个错误很让人迷惑,一直以为是认证问题,尝试了签名认证和Basic认证,都是403错误,花费些时间才得以解决。

    相关文章

      网友评论

          本文标题:React Native上集成腾讯推送服务TPNS

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