MobPush for Flutter
集成准备
这是一个基于 MobPush 功能的扩展的 Flutter 插件。使用此插件能够帮助您在使用 Flutter 开发应用时,快速地实现推送功能。
在pubspec.yaml文件中加入下面依赖
dependencies:mobcommonlib:mobpush_plugin:
然后执行:flutter packages get 导入package 在你的dart工程文件中,导入下面头文件,开始使用
import 'package:mobcommonlib/mobcommonlib.dart';
import 'package:mobpush_plugin/mobpush_plugin.dart';
iOS
平台配置参考 iOS集成文档
实现文档中 Xcode配置:配置AppKey和AppSecret
Android
导入 MobPush 相关依赖
在项目根目录的build.gradle中添加以下代码:
buildscript {repositories {// 配置Mob Maven库maven {url "https://mvn.mob.com/android"}// 配置HMS Core SDK的Maven仓地址。(集成华为厂商需要添加)maven {url 'https://developer.huawei.com/repo/'}}...}dependencies {...// 集成MobPushclasspath "com.mob.sdk:MobSDK:2018.0319.1724"}
}
在 /android/app/build.gradle 中添加以下代码:
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
// 导入MobSDK
apply plugin: 'com.mob.sdk'
平台相关集成 在项目的/android/app/build.gradle中添加:
MobSDK {appKey "您的MobTech平台appKey"appSecret "您的MobTech平台appSecret"//配置MobPushMobPush {//配置厂商推送(可选配置,不需要厂商推送可不配置,需要哪些厂商推送只需配置哪些厂商配置即可)devInfo {//配置小米厂商推送XIAOMI {appId "您的小米平台appId"appKey "您的小米平台appKey"}//配置华为厂商推送HUAWEI {appId "您的华为平台appId"}//配置魅族厂商推送MEIZU {appId "您的魅族平台appId"appKey "您的魅族平台appKey"}//配置FCM厂商推送FCM {//设置默认推送通知显示图标iconRes "@mipmap/default_ic_launcher"}//配置OPPO厂商推送OPPO {appKey "您的OPPO平台appKey"appSecret "您的OPPO平台appSecret"}//配置VIVO厂商推送VIVO {appId "您的VIVO平台appId"appKey "您的VIVO平台appKey"}}}
}
添加代码
在MainActivity的onCreate中添加以下代码:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);GeneratedPluginRegistrant.registerWith(this);}
SDK API
回传用户隐私授权结果 (submitPrivacyGrantResult)
/*** 回传用户隐私授权结果* @param status 用户是否同意隐私协议* @param result 默认传null*/
Mobcommonlib.submitPolicyGrantResult(bool status, Function(bool)? result)
例:
Mobcommonlib.submitPolicyGrantResult(true, null);
设置远程推送环境,向用户授权(setCustomNotification仅 iOS)
setCustomNotificationif (Platform.isIOS) {MobpushPlugin.setCustomNotification();
}
设置远程推送环境 (setAPNsForProduction仅 iOS)
setAPNsForProductionif (Platform.isIOS) {// 开发环境 false, 线上环境 trueMobpushPlugin.setAPNsForProduction(false)
}
添加推送回调监听(addPushReceiver 接收自定义透传消息回调、接收通知消息回调、接收点击通知消息回调、接收别名或标签操作回调)
addPushReceiverMobpushPlugin.addPushReceiver(_onEvent, _onError);void _onEvent(Object event) {}void _onError(Object event) {}
停止推送(stopPush)
stopPushMobpushPlugin.stopPush();
重新打开推送服务(restartPush)
restartPushMobpushPlugin.restartPush();
是否已停止接收推送(isPushStopped)
isPushStoppedMobpushPlugin.isPushStopped();
设置别名(setAlias)
setAliasMobpushPlugin.setAlias("别名").then((Map<String, dynamic> aliasMap){String res = aliasMap['res'];String error = aliasMap['error'];String errorCode = aliasMap['errorCode'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> setAlias -> res: $res error: $error");
});
获取别名(getAlias)
getAliasMobpushPlugin.getAlias().then((Map<String, dynamic> aliasMap){String res = aliasMap['res'];String error = aliasMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> getAlias -> res: $res error: $error");
});
删除别名(deleteAlias)
deleteAliasMobpushPlugin.deleteAlias().then((Map<String, dynamic> aliasMap){String res = aliasMap['res'];String error = aliasMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> deleteAlias -> res: $res error: $error");
});
添加标签(addTags)
addTagsList tags = new List();
tags.add("tag1");
tags.add("tag2");
MobpushPlugin.addTags(tags).then((Map<String, dynamic> tagsMap){String res = tagsMap['res'];String error = tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> addTags -> res: $res error: $error");
});
获取标签(getTags)
getTagsMobpushPlugin.getTags().then((Map<String, dynamic> tagsMap) {List<String> resList;if (tagsMap['res'] == null) {resList = [];} else {resList = tagsMap['res'].toList();}String error = tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> getTags -> res: $resList error: $error");});
删除标签(deleteTags)
deleteTagsList tags = new List();
tags.add("tag1");
tags.add("tag2");
MobpushPlugin.deleteTags(tags).then((Map<String, dynamic> tagsMap){String res = tagsMap['res'];String error = tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> deleteTags -> res: $res error: $error");
});
清空标签(cleanTags)
cleanTagsMobpushPlugin.cleanTags().then((Map<String, dynamic> tagsMap){String res = tagsMap['res'];String error = tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> cleanTags -> res: $res error: $error");
});
发送本地通知(addLocalNotification)
addLocalNotificationMobpushPlugin.addLocalNotification();
绑定手机号(bindPhoneNum)
bindPhoneNumMobpushPlugin.bindPhoneNum("110");
测试模拟推送,用于测试(send)
send/*** 测试模拟推送,用于测试* type:模拟消息类型,1、通知测试;2、内推测试;3、定时* content:模拟发送内容,500字节以内,UTF-8* space:仅对定时消息有效,单位分钟,默认1分钟* extras: 附加数据,json字符串*/
MobpushPlugin.send(int type, String content, int space, String extras).then((Map<String, dynamic> sendMap){String res = sendMap['res'];String error = sendMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>> send -> res: $res error: $error");
});
设置点击通知是否跳转默认页 (setClickNotificationToLaunchMainActivity 仅Android)
setClickNotificationToLaunchMainActivityMobpushPlugin.setClickNotificationToLaunchMainActivity (bool enable);
移除本地通知(removeLocalNotification 仅Android)
removeLocalNotificationMobpushPlugin.removeLocalNotification(int notificationId);
清空本地通知(clearLocalNotifications 仅)
clearLocalNotificationsMobpushPlugin.clearLocalNotifications();
设置通知栏icon,不设置默认取应用icon(setNotifyIcon 仅Android)
setNotifyIconMobpushPlugin.setNotifyIcon(String resId);
设置通知静音时段(推送选项)(setSilenceTime 仅Android)
setSilenceTime/*** 设置通知静音时段(推送选项)(仅Android)* @param startHour 开始时间[0~23] (小时)* @param startMinute 开始时间[0~59](分钟)* @param endHour 结束时间[0~23](小时)* @param endMinute 结束时间[0~59](分钟)*/
MobpushPlugin.setSilenceTime(int startHour, int startMinute, int endHour, int endMinute)
设置角标 (setBadge仅 iOS)
setBadgeMobpushPlugin.setBadge(int badge);
清空角标,不清除通知栏消息记录 (clearBadge仅 iOS)
clearBadgeMobpushPlugin.clearBadge();
获取注册Id(getRegistrationId)
getRegistrationId
MobpushPlugin.getRegistrationId().then((Map<String, dynamic> ridMap) {print(ridMap);String regId = ridMap['res'].toString();print('------>#### registrationId: ' + regId);
});
Flutter iOS端注意事项
由于插件更新,SDK的Pod依赖被替换,Flutter 本身写入Pod文件不会先执行删除原有依赖,导致可能会出现原有本地库依然存在,请检查Pod文件夹下文件,直接手动删除mob_pushsdk 以及 MOBFoundation文件即可,如有疑问,请直接通过官网和我们联系。
其他问题
demo地址
demo: GitHub地址
推送证书制作
推送证书申请流程见:推送证书文档
MobPush for Flutter相关推荐
- flutter常用库整理
目前除了官方提供的package和plugin库外,第三方开发者也开发了大量好用的开源工具,这里稍作整理以供查阅. 目录 基础库 控件库 插件库 三方SDK 其他 脚本工具 开源组织 dart仓库 参 ...
- 国内第三方移动推送对接调查:Android、IOS、Flutter,各种云推送、个推、极光、统一推送联盟
文章目录 前言 一.来自小组成员的争议 二.开启调查 三.调查结果 总结 前言 第三方移动推送对接,刚开始是移动端发起的.在开会讨论这个对接时,心里突然很迷茫,为什么要做第三方移动推送对接?我们自己为 ...
- Flutter 拨打电话和跳转网页
首先需要一如库 url_launcher 如下 具体写法如下 import 'package:flutter/material.dart'; import 'package:url_launcher ...
- flutter导入第三方库
在pubspec.yaml 文件中找到 dependencies 在里面填写 第三方库即可 例如图中我写了fluttertoast库 特别注意:导入的位置要不dependencies下面的flutte ...
- Flutter 导包 以及体验
Flutter 第一个list 体验 具体位置看图吧 是在pubspec.yaml 里面的 dev_dependencies 里面 然后点击packages_get flutter 不用每次都运行,保 ...
- Flutter 配置
参考 Flutter 中文网 配置的 这里说一下 https://flutterchina.club/setup-windows/ 1 如果自己不能翻墙 先配置镜像 使用镜像 由于在国内访问Flutt ...
- flutter中的路由跳转
在前面的基本路由和命名路由中,都演示了如何进行路由跳转,并且在路由跳转以后,可以借用系统自带的按钮就行返回上一级,当然了,也可以自定义按钮返回上一级. 返回上一级 在前面的例子中,当从Home.dar ...
- Flutter 网络请求库http
http 集成http库 https://pub.dartlang.org/packages/http 添加依赖 dependencies:http: ^0.12.0 安装 flutter packa ...
- 配置flutter For IOS
https://www.cnblogs.com/lovestarfish/p/10628205.html 第一步,下载flutter最新版,解压到自己的目录里: 提供网址:https://flutte ...
最新文章
- 【Live555】live555源码详解(六):FramedSource、RTPSource、RTPSink
- 从Flash Remoting For .Net 返回一个数组数据给Flash
- sqlite只能用于android系统,Android 数据库的使用 -- Sqlite
- python能处理多大的数据-使用Python Pandas处理亿级数据
- linux vnc的小黑点和鼠标不同步_公欲善其事 | VNC的安装和使用
- mysql batis传多个参数_Mybatis传多个参数(三种解决方案)
- UVA-714 二分
- 学习Spring Boot前需要了解的Spring基础知识
- 系统学习深度学习(二十七)--CTC
- 发送HTTP请求返回415状态码的解决办法
- 计算机课程设计 校园网规划设计与实现,校园网的规划与实现.doc
- 等保2.0三级安全要求
- 服务器版“永恒之蓝”高危预警 (Samba远程命令执行漏洞CVE-2017-7494) 攻击演示...
- SEO搜索引擎优化是什么
- LittleVGL体验记录
- 5财务分析的基本方法-盈利能力分析
- 微软代码签名证书使用指南(SignTool)
- 一篇文章了解什么是增长黑客
- 昆仑ONLINE外挂脚本--基于Seraph
- 这几年我看过的书,力荐书单(含技术和非技术)
热门文章
- linux no root file or directory,安装Ubuntu时出现“no root file system is defined”的问题解决...
- 用计算机画魔方的一个面,计算机求解魔方算法.pdf
- 在计算机网络的s,在计算机网络中传输二进制信息时,经常使用的速率单位有“kb/s”、“Mb/s”等。其中,1Mb/s=1000kb/s...
- 除了高额房贷,美国购房者仍面临其他“财政危机”
- 你拥有的知识比你想象中更有意义和价值
- 计算机原理 中断,中断及中断系统-微计算机原理-电子发烧友网站
- mysql 1032 1062_MySQL 主从复制 ERROR-1032
- 【C语言进阶】C语言程序设计:动态通讯录(顺序表实现)
- 阿里万亿交易量级下的秒级监控
- 无限循环小数四则运算_无尽小数的公理及其四则运算.doc