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

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

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

demo

引入插件:

flutter_jpush: ^0.0.4
复制代码

main.dart 加入初始化代码:

void _initJPush() async {await FlutterJPush.startup();print("初始化jpush成功");// 获取 registrationIDvar 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 16targetSdkVersion 27versionCode flutterVersionCode.toInteger()versionName flutterVersionNametestInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"manifestPlaceholders = [JPUSH_PKGNAME : applicationId,JPUSH_APPKEY : "****", // 极光上注册的包名对应的appkey.JPUSH_CHANNEL : "developer-default",]}
复制代码

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

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

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

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

就是这么简单。

iOS 配置

如何申请证书和签权,具体看极光的说明:docs.jiguang.cn/jpush/clien…

需要注意的是,先在 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 参考

github.com/jpush/jpush…

总结

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

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

推荐一款 Flutter Push 推送功能插件相关推荐

  1. Flutter集成推送功能-小米推送集成

    Dart4Flutter -01 – 变量, 类型和 函数 Dart4Flutter – 02 –控制流 和异常 Dart4Flutter – 03 – 类和泛型 Dart4Flutter – 04 ...

  2. iPhone 的 Push(推送通知)功能原理浅析

    第一部分:Push原理 (以下绝大多数内容参考自.图片来自iPhone OS Reference Library) 机制简介 Push 的工作机制可以简单的概括为下图 图中, Provider是指某个 ...

  3. iPhone的Push(推送通知)功能原理浅析

    来自http://blog.csdn.net/omgle/archive/2011/06/29/6574313.aspx 第一部分:Push原理 (以下绝大多数内容参考自.图片来自iPhone OS ...

  4. iPhone的Push(推送通知)功能原理浅析[转]

    转自:http://xiaolife.com/wordpress/an-introduce-to-iphone-push/ 第一部分:Push原理 (以下绝大多数内容参考自.图片来自iPhone OS ...

  5. App系列之Push推送---实现推送方式解决方案

    本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...

  6. 58同城高性能移动Push推送平台架构演进之路

    本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需要,原理和方案对比:移动Push推送第一阶段(单平台)架构如何设计:移动Push推送典型性能问 ...

  7. 友盟消息推送服务器demo,umeng友盟消息推送功能集成

    umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...

  8. 在 Asp.NET MVC 中使用 SignalR 实现推送功能

    一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送 ...

  9. 一篇文章带你了解APP PUSH推送机制

    本文为PMCAFF专栏作者卓别木出品 写作目的: 本文主要讲解关于APP PUSH的流程.机制及相关经验,一是为了方便各位可以针对APP迅速制定PUSH消息推送方案,实现0到1的推送功能搭建,二是可以 ...

最新文章

  1. win10下pycharm安装opencv tensorflow anaconda
  2. linux代码签名,浅谈Linux容器和镜像签名(示例代码)
  3. c 语言 结构体的引用
  4. 我要学python之装饰器
  5. ROS Nodelet使用
  6. 购物商城Web开发第十四天
  7. linux看网络信息失败的原因,Linux版本登录提示网络错误
  8. Using Flume要点
  9. mysql 校对规则名_MySQL字符集及校对规则的理解
  10. 为什么RGBW排列比RGB排列分辨率更高
  11. android 音乐平板,酷狗音乐安卓Pad版
  12. 手写原笔迹输入_OneNote/YouNote原笔迹手写_原道 W8S_平板电脑评测-中关村在线
  13. wps教鞭功能_三个PPT2010新增实用功能
  14. PLC通讯之串口转以太网/WIFI的透传模块(DTU)的专用OPC软件和DLL通讯组件
  15. 5分钟学会Python爬虫神器autoscraper——自动化爬虫必备
  16. Android 号牌号码识别,支持新能源车牌,离线识别
  17. 解决谷歌浏览器提示Google账号无法登录提示浏览器或应用不安全问题
  18. flowable 查询完成的流程_flowable流程引擎初体验,完成一个请假流程
  19. 苹果A13芯片细节曝光,大幅提升AI性能
  20. MySQL数据库优化高频面试题(最新版)

热门文章

  1. Nginx负载均衡集群介绍
  2. PHP-Fpm应用池配置
  3. 关键词排名下降怎么办-优八学院给你支招
  4. Google 全球 IP 地址库一览表(更新中)
  5. 不错的工具:Reflector for .NET
  6. 自己写的程序密码功能 ------数字功能
  7. 使用kaptcha生成验证码
  8. 比较v-bind和v-model
  9. js控制表格隔行变色
  10. 欧盟剑指科技巨头,意欲上调税款