经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
React-Native使用极光进行消息推送 - 归去来兮-不如去兮
来源:cnblogs  作者:归去来兮-不如去兮  时间:2018/12/20 9:33:27  对本文有异议

推送作为APP几乎必备的功能,不论是什么产品都免不了需要消息推送功能,一般做RN开发的可能都是前端出身(比如我),关于android ios 都不是很懂??,所以使用第三方推送插件是比较好的解决方案

? 我选取了极光来集成推送服务的,按一些博客一步一步来的,React Native集成极光推送,基本没有什么坑吧,但是写的并不是完成正确

注册极光账号

极光官网

注册完成后进入极光推送,然后创建应用

创建完成后将会获得自己的AppKey

安装极光SDK

这里可以看看官方github

  1. npm install jcore-react-native --save
  2. react-native link jcore-react-native
  3. npm install jpush-react-native --save
  4. react-native link jpush-react-native

检查project/android/app/build.gradle

  1. android {
  2. ...
  3. defaultConfig {
  4. applicationId "yourApplicationId" // (包名有用)在极光官网上申请应用时填写的包名
  5. ...
  6. manifestPlaceholders = [
  7. JPUSH_APPKEY: "yourAppKey", //安装的时候填写这里无需改动
  8. APP_CHANNEL: "developer-default" //应用渠道号, 默认即可
  9. ]
  10. }
  11. }
  12. ...
  13. dependencies {
  14. // ....
  15. compile project(':jpush-react-native') // 添加 jpush 依赖
  16. compile project(':jcore-react-native') // 添加 jcore 依赖
  17. // ....
  18. }

进行推送设置

到此为止就完成了环境的配置,可以尝试去进行推送了

成功啦!!

点击推送

很多情况下,我们需要在应用内部进行消息的触发,比如 新的消息 这就必须通过代码进行触发了

极光推送RN的API文档

  1. import React, { Component } from 'react'
  2. import { Text, StyleSheet, View, Button } from 'react-native'
  3. import JPushModule from 'jpush-react-native'
  4. export default class ChatWith extends Component {
  5. constructor(props) {
  6. super(props)
  7. }
  8. componentDidMount() {
  9. // 初始化 JPush
  10. JPushModule.initPush()
  11. // 获取当前极光开发者信息
  12. JPushModule.getInfo(map => {
  13. console.log(map)
  14. })
  15. // 点击推送通知回调
  16. JPushModule.addReceiveOpenNotificationListener(map => {
  17. console.log('进行一系列操作')
  18. console.log('map.extra: ' + map)
  19. // 可执行跳转操作,也可跳转原生页面 关于参数请看文档
  20. // this.props.navigation.navigate("SecondActivity");
  21. })
  22. // 接收推送通知回调
  23. JPushModule.addReceiveNotificationListener(message => {
  24. console.log('receive notification: ', message)
  25. })
  26. //
  27. }
  28. render() {
  29. return (
  30. <View style={styles.containers}>
  31. <Button
  32. title="点击推送"
  33. onPress={() => {
  34. // 推送事件 业务代码 请提取到函数里面
  35. JPushModule.sendLocalNotification({
  36. buildId: 1, // 设置通知样式
  37. id: 5, // 通知的 id, 可用于取消通知
  38. extra: { key1: 'value1', key2: 'value2' }, // extra 字段 就是我们需要传递的参数
  39. fireTime: new Date().getTime(), // 通知触发时间的时间戳(毫秒)
  40. badge: 8, // 本地推送触发后应用角标的 badge 值 (iOS Only)
  41. subtitle: 'subtitle', // 子标题 (iOS10+ Only)
  42. title: '通知',
  43. content: '您有未读消息',
  44. })
  45. }}
  46. />
  47. </View>
  48. )
  49. }
  50. }
  51. const styles = StyleSheet.create({
  52. containers: {
  53. paddingTop: 20
  54. }
  55. })
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号