相关文章推荐
乖乖的冲锋衣  ·  Unable to create a ...·  1 年前    · 
眼睛小的柚子  ·  javascript数组多字段排序_js数组 ...·  2 年前    · 
有胆有识的酸菜鱼  ·  ES新提案:双问号操作符-腾讯云开发者社区-腾讯云·  2 年前    · 
有胆有识的勺子  ·  微软.NET Framework ...·  2 年前    · 
绅士的勺子  ·  六部门制定政策联合保障儿童用药供应与安全_要 ...·  2 年前    · 
Code  ›  Flutter在Android平台实现消息推送开发者社区
软件 极光 jpush jpush推送
https://cloud.tencent.com/developer/article/1795142?from=15425&areaSource=102001.1&traceId=N8KY0Y4i_USEDYx7_kf1k
淡定的梨子
2 年前
作者头像
越陌度阡
0 篇文章

Flutter在Android平台实现消息推送

前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 大前端(横向跨端 & 纵向全栈) > 正文

Flutter在Android平台实现消息推送

发布 于 2021-03-02 10:54:15
868 0
举报

1. 极光推送平台申请应用

1. 注册极光推送平台;

https://www.jiguang.cn/push

2. 极光推送平台创建应用;

填写应用程序名称。

选择平台,选择服务,点击下一步。

需要输入应用包名(Android平台),选择渠道,点击下一步。

完成上面的操作在应用管理中就可以看到创建的应用程序了。

点击“应用设置”,就可以看到应用信息了,其中AppKey非常重要,在项目中使用极光推送会用到。

2. 集成极光推送SDK

1. 安装插件

dependencies:
  jpush_flutter: 0.6.3

在pubspec.yaml中配置保存后,在VS Code环境中会自动下载依赖包。

如果无法正常下载,执行 flutter pub get 。

2. 配置

Android平台 在 android ▸ app ▸ build.gradle中修改代码如下:

android: {
  defaultConfig {
    applicationId "你的应用包名"
    ndk {
	    // 选择要添加的对应CPU类型的.SO库。
	    abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'     
    manifestPlaceholders = [
        JPUSH_PKGNAME : applicationId,
        // 极光上注册的包名对应的 Appkey
        JPUSH_APPKEY : "appkey", 
        // 暂时填写默认值即可.
        JPUSH_CHANNEL : "developer-default"
}

3. 使用极光推送

import 'package:flutter/material.dart';
import 'package:jpush_flutter/jpush_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            title: 'Flutter Demo',
            theme: ThemeData(
                primarySwatch: Colors.blue,
            home: JpushPage(),
class JpushPage extends StatefulWidget {
    JpushPage({Key key}) : super(key: key);
    _JpushPageState createState() => _JpushPageState();
class _JpushPageState extends State<JpushPage> {
    @override
    void initState() {
        super.initState();
        // 初始化极光推送
        this.initJpush();
    //  监听极光推送 (自定义的方法)
    //  https://github.com/jpush/jpush-flutter-plugin/blob/master/documents/APIs.md
    initJpush() async {
        // 初始化
        JPush jpush = new JPush();
        // 获取注册的ID
        jpush.getRegistrationID().then((rid) {
            print("获取注册的id:$rid");
        // 初始化
        jpush.setup(
            // 极光官方申请应用的APP KEY
            appKey: "17d78ecf32c322db169a1d98",
            channel: "theChannel",
            production: false,
            debug: true,
        // 设置别名实现指定用户推送
        jpush.setAlias("jg6666").then((map) {
            print("设置别名成功");
        try {
            // 监听消息通知
            jpush.addEventHandler(
                // 接收通知回调方法。
                onReceiveNotification: (Map<String, dynamic> message) async {
                    print("flutter onReceiveNotification: $message");
                // 点击通知回调方法。
                onOpenNotification: (Map<String, dynamic> message) async {
                    // 当用户点击时,可以做一些路由跳转
                    print("flutter onOpenNotification: $message");
                // 接收自定义消息回调方法。
                onReceiveMessage: (Map<String, dynamic> message) async {
                    print("flutter onReceiveMessage: $message");
        } catch (e) {
            print('极光SDK配置异常');
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
 
推荐文章
乖乖的冲锋衣  ·  Unable to create a running container for mysql:latest image from Docker Hub - Microsoft Q&A
1 年前
眼睛小的柚子  ·  javascript数组多字段排序_js数组根据字段排序__大猪的博客-CSDN博客
2 年前
有胆有识的酸菜鱼  ·  ES新提案:双问号操作符-腾讯云开发者社区-腾讯云
2 年前
有胆有识的勺子  ·  微软.NET Framework 4.7独立离线安装包发布下载 - IT之家
2 年前
绅士的勺子  ·  六部门制定政策联合保障儿童用药供应与安全_要闻_新闻_中国政府网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号