Taro 消息通知(一)(Android Notification)

        之前集成了个推到项目中,现在需要完成接收到消息后展示通知(Notification),消息发送通过个推(消息发送使用的是个推的透传,和整个个推渠道有区别,不会自动生成notification),只需要在接收到消息后,生成展示notification。这里使用插件react-native-push-notification

        1、在 终端进入到壳子根目录下分别执行

npm install react-native-push-notification

react-native link react-native-push-notification

执行react-native run-android,终端报错

androidx适配异常

修改引入的react-native-push-notification版本到3.1.3,再进入到react-native-push-notification依赖包的build.gradle文件,修改依赖的第三方包版本如下

可正常运行Android 端(react-native run-android)

2、终端进入到自己的项目根目录下分别执行

npm install react-native-push-notification@3.1.3

react-native link react-native-push-notification

在官网中,有这么一段话

翻译一下

然后按照对应版本的官方文档react-native-push-notification - npm,进行Android端设置,在壳子android下的AndroidManifest.xml文件中,添加如下代码(只做notification展示,所以只需要PushNotification.localNotification()即可):

<service

            android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"

            android:exported="false" >

            <intent-filter>

                <action android:name="com.google.firebase.MESSAGING_EVENT" />

            </intent-filter>

 </service>

<meta-data android:name="com.dieam.reactnativepushnotification.notification_channel_name" android:value="YOUR NOTIFICATION CHANNEL NAME" />

<meta-data android:name="com.dieam.reactnativepushnotification.notification_channel_description" android:value="YOUR NOTIFICATION CHANNEL DESCRIPTION" />

<!-- Change the resource name to your App's accent color - or any other color you want -->

<meta-data android:name="com.dieam.reactnativepushnotification.notification_color" android:resource="@android:color/white" />

在需要引用notification的地方添加代码:

PushNotification.localNotification({

      /* Android Only Properties */

      id: '0', // (optional) Valid unique 32 bit integer specified as string. default: Autogenerated Unique ID

      ticker: "My Notification Ticker", // (optional)

      autoCancel: true, // (optional) default: true

      largeIcon: "ic_launcher", // (optional) default: "ic_launcher"

      smallIcon: "ic_notification", // (optional) default: "ic_notification" with fallback for "ic_launcher"

      bigText: "My big text that will be shown when notification is expanded", // (optional) default: "message" prop

      subText: "This is a subText", // (optional) default: none

      color: "red", // (optional) default: system default

      vibrate: true, // (optional) default: true

      vibration: 300, // vibration length in milliseconds, ignored if vibrate=false, default: 1000

      tag: 'some_tag', // (optional) add tag to message

      group: "group", // (optional) add group to message

      ongoing: false, // (optional) set whether this is an "ongoing" notification

      priority: "high", // (optional) set notification priority, default: high

      visibility: "private", // (optional) set notification visibility, default: private

      importance: "high", // (optional) set notification importance, default: high

      /* iOS only properties */

      alertAction: 'view',// (optional) default: view

      category: null,// (optional) default: null

      userInfo: null,// (optional) default: null (object containing additional notification data)

      /* iOS and Android properties */

      title: "My Notification Title", // (optional)

      message: "My Notification Message", // (required)

      playSound: false, // (optional) default: true

      soundName: 'default', // (optional) Sound to play when the notification is shown. Value of 'default' plays the default sound. It can be set to a custom sound such as 'android.resource://com.xyz/raw/my_sound'. It will look for the 'my_sound' audio file in 'res/raw' directory and play it. default: 'default' (default sound is played)

      number: '10', // (optional) Valid 32 bit integer specified as string. default: none (Cannot be zero)

      repeatType: 'day', // (optional) Repeating interval. Check 'Repeating Notifications' section for more info.

      actions: '["Yes", "No"]',  // (Android only) See the doc for notification actions to know more

    });

运行Android 端之后,可以看到发送的notification成功

通过调整PushNotification.localNotification参数来达到需要的样式和信息。

3、点击notification

notification的点击触发通过PushNotification.configure()来实现。其中的方法

onNotification: function (notification) {

        console.log('NOTIFICATION:', notification);

        // process the notification

        // required on iOS only (see fetchCompletionHandler docs: https://facebook.github.io/react-native/docs/pushnotificationios.html)

        // notification.finish(PushNotificationIOS.FetchResult.NoData);

      },

其中的notification参数会把第二步中的PushNotification.localNotification()全部参数返回,通过解析来达到跳转或者网络请求。

到这一步为止,Android端的notification就完成了。

4、再来看一看iOS。先不修改代码,直接运行看看会有什么效果。emmm~~虽说不会报错,但也没有任何效果

做了各种配置,也进行了各种测试,浪费了很久的时间才发现,ios模拟器不支持消息推送,一口老血喷出来。既然这样的话,ios的推送就放到等到公司提供了测试机之后的篇章里讲吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容