Flutter学习日记之集成极光推送

本文地址:https://blog.csdn.net/qq_40785165/article/details/122746461,转载需附上此链接

每一个闪闪发光的人都在背后熬过了一个又一个不为人知的黑夜

大家好,我是小黑,一个还没秃头的程序员~~~

本次介绍的是在Flutter中集成极光推送,用于实现通知栏/自定义消息推送,我这里使用极光推送实现聊天消息推送功能以及使用本地推送功能模拟发送验证码功能
效果如下:
本地推送消息推送

(一)申请AppKey和AppSecret

登录极光推送官网,进行创建应用
创建应用
在这里插入图片描述
后续需要点击下一步,填写包名,包名为android模块中的包名在这里插入图片描述
点击完成后前往【应用设置】可查看应用的key和Secret,填写到下面步骤中的相应代码出即可
在这里插入图片描述

(二)添加依赖

  
//github  集成
dependencies:
  jpush_flutter:
    git:
      url: git://github.com/jpush/jpush-flutter-plugin.git
      ref: master
      
// pub 集成
dependencies:
  jpush_flutter: 2.1.4

在需要使用的组件中导入

import 'package:jpush_flutter/jpush_flutter.dart';

(三)使用

1.初始化

可以在MyApp的initState中进行初始化,后面的页面中只需new出一个Jpush组件就可以进行操作了,由于回调在各个页面的使用不一定相同,我这里的初始化只进行了key的设置以及IOS中相关设置的申请授权,代码如下:

 final JPush jpush = new JPush();
 jpush.setup(
      appKey: "ed9b55a015c2d03e171139fa", //你自己应用的 AppKey
      channel: "developer-default",
      production: false,
      debug: true,
    );
    jpush.applyPushAuthority(
        new NotificationSettingsIOS(sound: true, alert: true, badge: true));

2.设置别名

设置别名,一个 App 应用只有一个别名,一般用来存储用户 id。极光后台可以通过别名来推送,在设置完别名后,如果没有多余终端进行测试,可以使用极光官网进行测试如下图:
在这里插入图片描述

3.删除别名

可以通过 deleteAlias 方法来删除已经设置的 alias。
代码如下:

JPush jpush = new JPush();
jpush.deleteAlias().then((map) {})

4.本地推送

指定触发时间,添加本地推送通知。这里模拟2秒后收到验证码,效果可见开头获取验证码功能GIF
代码如下:

 var fireDate = DateTime.fromMillisecondsSinceEpoch(
            DateTime.now().millisecondsSinceEpoch + 2000);
        var randomId = new Random().nextInt(10000);
        setState(() {
          code = _randomBit(6);
        });
        var localNotification = LocalNotification(
            id: randomId,
            title: '$randomId(验证码)',
            buildId: 1,
            content: '验证码$code,仅用于密码修改',
            fireTime: fireDate,
            subtitle: '验证码',
            badge: 5,
            extra: {"": ""});
        jpush.sendLocalNotification(localNotification).then((value) {
          print(value);
        });

5.清除通知

清楚通知栏上所有通知,代码如下:

JPush jpush = new JPush();
jpush.clearAllNotifications();

6.设置推送的一些回调

设置Jpush收到消息或者点击推送时的一些操作

      _jPush.addEventHandler(
          onReceiveNotification: (Map<String, dynamic> message) async {
            print("flutter onReceiveNotification: $message");
          }, onOpenNotification: (Map<String, dynamic> message) async {
        Map<String, dynamic> map=  jsonDecode("${message["extras"]["cn.jpush.android.EXTRA"]}");
        String type=map['type'];
        print("flutter onOpenNotification: $type");
        if(type=="normal"){
          Navigator.pushNamed(context, "/ChatPage", arguments: {
            "user_name": map["userNickname"],
            "user_id": map["userId"],
          });
        }
      }, onReceiveMessage: (Map<String, dynamic> message) async {
        print("flutter onReceiveMessage: $message");
      }, onReceiveNotificationAuthorization:
          (Map<String, dynamic> message) async {
        print("flutter onReceiveNotificationAuthorization: $message");
      });

在极光推送官网中,还有其他几种推送方式,如Tag、Registration ID等,由于我这里暂时用不到,就不详细讲解了,感兴趣的可以自己去JPush的github上了解一下!感谢大家的支持与阅读,祝大家新年快乐!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值