博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐一款 Flutter Push 推送功能插件
阅读量:6983 次
发布时间:2019-06-27

本文共 2617 字,大约阅读时间需要 8 分钟。

又到了推荐好插件的时候了。开发 APP 避免不了使用「推送」功能。比如,新上架一个商品,或者最新的一条体育新闻,实时推送给用户。

比较了几家推送平台,貌似「极光」出了 Flutter 插件,所以就拿它试试手,顺便记录下整个推送功能开发流程。

说到「推送」,自然有推送端和接收端,接收端自然包括 Android 端和 iOS 端。

demo

引入插件:

flutter_jpush: ^0.0.4复制代码

main.dart 加入初始化代码:

void _initJPush() async {  await FlutterJPush.startup();  print("初始化jpush成功");  // 获取 registrationID  var registrationID =await FlutterJPush.getRegistrationID();  print(registrationID);    // 注册接收和打开 Notification()  _initNotification();}void _initNotification() async {  FlutterJPush.addReceiveNotificationListener(    (JPushNotification notification) {      print("收到推送提醒: $notification");    }  );  FlutterJPush.addReceiveOpenNotificationListener(    (JPushNotification notification) {      print("打开了推送提醒: $notification");    }  );}复制代码

Android 配置

在极光后台创建应用,生成 appkey 等信息,Android 配置好说,添加包名即可。

在项目 Android 工程 build.gradle 代码中,增加配置信息:

defaultConfig {        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).        applicationId "com.*.*"        minSdkVersion 16        targetSdkVersion 27        versionCode flutterVersionCode.toInteger()        versionName flutterVersionName        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        manifestPlaceholders = [            JPUSH_PKGNAME : applicationId,            JPUSH_APPKEY : "****", // 极光上注册的包名对应的appkey.            JPUSH_CHANNEL : "developer-default",        ]    }复制代码

好了,我们先在极光后台编写一条消息通知,看看效果。

当 APP 处于打开状态,通过命令好 log,我们能看到「收到推送提醒」:

同时,我们在通知栏上也能收到这条消息推送通知:

打开这条通知后,执行的是「addReceiveOpenNotificationListener」

就是这么简单。

iOS 配置

如何申请证书和签权,具体看极光的说明:

需要注意的是,先在 Xcode 那打开「Push Notifications」

在「iOS」工程下,添加极光配置信息:

增加#include "FlutterJPushPlugin.h"增加[self startupJPush:launchOptions appKey:@"你的key" channel:@"你的渠道" isProduction:是否生产版本];复制代码

好了,配置之后,dart 端还是上面的同样代码,还是利用极光的后台,推送一条测试通知,看看效果:

打开该通知后,也执行 print 了:

服务器编程推送

只要消息能到达客户端,那具体怎么使用,或者打开客户端跳转到具体页面,这些工作就好说了,此处就没必要展开说了。

剩下的就是后台接口推送通知了,总不能每次都要在「极光」后台做推送吧!

所以我们需要借助「极光」提供的接口了。

极光提供了多语言服务端 SDK,基本可以满足我们的集成需要了。

我还是以 Laravel 为案例,简要说一说集成。

1. composer.json 文件中添加 jpush 依赖.

"jpush/jpush": "^3.5"复制代码

2. 写一个 demo 命令行推送服务:

Artisan::command('jpush', function () {    $client = new \JPush\Client($app_key, $master_secret);})->describe('jpush');复制代码

3. 发送一个通知试试:

$client->push()    ->setPlatform('all')    ->addAllAudience()    ->setNotificationAlert('你好, 极光推送')    ->send();复制代码

执行命令:php artisan jpush 看看:

okey,到目前为止,通过简单的例子,就可以把从服务端到客户端走通 Push 流程。

注:服务端 SDK 参考

总结

如果知道怎么结合原生 Android 和 iOS 插件集成到 Flutter 上,那使用极光推送,也可以不需要官方提供的 Flutter 插件,相信你也能写。

相反地,使用官方提供的 Flutter 插件和集成文档,可以让我们快速的完成 push 通知功能,可以让我们更聚焦于我们的产品逻辑和功能上。

转载地址:http://tmnpl.baihongyu.com/

你可能感兴趣的文章
《IPv6精髓(第2版)》——第1章 为何使用IPv61.1 IPv6历史
查看>>
最让程序员懊恼的 10 件事
查看>>
Iframe高度自适应(兼容IEFirefox、同域跨域)
查看>>
Google 工程师如何发现 Heartbleed 漏洞
查看>>
《Python面向对象编程指南》——2.8 __new__()方法和不可变对象
查看>>
ROS机器人程序设计(原书第2版)第1章 ROS Hydro系统入门
查看>>
《Android平板电脑开发秘籍》——3.9节技巧:创建一个下拉列表式的ActionBar
查看>>
《软件工程(第4版?修订版)》—第1章1.4节软件工程涉及的人员
查看>>
剖析一个java对象初始化顺序问题
查看>>
《Python和Pygame游戏开发指南》——1.7 安装Pygame
查看>>
reveal.js实现html播放ppt的炫酷效果
查看>>
《HTML5 canvas开发详解(第2版)》——2.12 检查一个点是否在当前路径
查看>>
《深入理解Scala》——第2章,第2.1节学习使用Scala交互模式(REPL)
查看>>
在Tableau中自定义版块地图
查看>>
《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.1节被动信息搜索——开源情报(OSINT)...
查看>>
《21天学通HTML+CSS+JavaScript Web开发(第7版)》——1.7 作业
查看>>
微服务,微架构[一]之springboot[helloWorld]
查看>>
MySql导入CSV文件或制表符分割的文件
查看>>
《机器学习与R语言(原书第2版)》一1.2 机器学习的使用与滥用
查看>>
Android Monkey原理探讨
查看>>