前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter在IOS平台实现消息推送

Flutter在IOS平台实现消息推送

作者头像
越陌度阡
发布2021-03-02 10:54:32
3.4K0
发布2021-03-02 10:54:32
举报

1. 配置项目的包名

2. 申请IOS生产证书

IOS的生产证书在极光推送IOS平台配置时需要用到,完成这个证书的创建过程比较复杂,以下分为三个阶段来完成。

第一步:创建标识符。

登录苹果开发者中心,选择 证书/标识符/资料 。

添加标识符。

选择标识符类型,点击继续。

输入描述及包名,点击继续。

点击继续之前,记得勾选推送消息功能。

至此,标识符添加完毕,在标识符列表就可以看到了。

第二步:生成钥匙串文件。

打开苹果电脑的钥匙串访问功能。

选择 证书助理 ▸ 从证书颁发机构请求证书。

填写邮件地址,邮件地址可以随便填写,选择存储到磁盘。

生成完成后的文件。

第三步:创建证书。

登录苹果中心,添加证书。

选择证书的服务。

选择在第一步中创建成功的标识符,点击继续。

选择在第二步中创建成功的钥匙串文件,点击继续。

至此,证书就配置完成了,点击下载可将证书下载到本地。

下载完成后,双击打开,在电脑的钥匙串里就会显示出证书文件。

右键导出。

导出时需要输入保护密码,还会要求输入电脑的密码,导出的文件后辍名为p12。

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

创建应用。

填写应用程序名称。

选择IOS平台,在生产证书处选择之前创建的证书,证书格式为p12。

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

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

4. 使用极光推送SDK

1. 安装插件

代码语言:javascript
复制
dependencies:
  jpush_flutter: 0.6.3

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

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

2. 配置插件

(1). 在Xcode7 之后,明确要求必须是https协议的请求,配置如下:

打开配置文件,路径为:ios▸Runner▸ Info.plist 。

(2). 在 Xcode8 之后需要点开推送选项,配置如下:

3. 使用插件

代码语言:javascript
复制
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("设置别名成功");
        });

        // iOS10+ 可以通过此方法来设置推送是否前台展示,是否触发声音,是否设置应用角标 badge
        jpush.applyPushAuthority(new NotificationSettingsIOS(
            sound: true,
            alert: true,
            badge: true
        ));


        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(
                title: Text("极光推送"),
            ),
            body: Text("极光推送演示"),
        );
    }
}

5. 错误解决

配置权限后如果直接在Xcode中运行,可能会报错,所以建议先在VS code中运行一下项目,当执行 flutter run 后会自动下载一些项目的依赖。

另外,在 File▸Project Settings中建议将Build System设置成如下所示的选项。

参考:

https://pub.dev/packages/jpush_flutter

https://github.com/jpush/jpush-flutter-plugin

https://docs.jiguang.cn/jpush/client/iOS/ios_cer_guide/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 配置项目的包名
  • 2. 申请IOS生产证书
  • 3. 极光推送平台申请应用
  • 4. 使用极光推送SDK
  • 5. 错误解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档