集成准备
这是一个基于 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 { ... // 集成mobpush classpath "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" //配置mobpush mobpush { //配置厂商推送(可选配置,不需要厂商推送可不配置,需要哪些厂商推送只需配置哪些厂商配置即可) 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中添加以下代码:
@override protected 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)
setcustomnotification if (platform.isios) { mobpushplugin.setcustomnotification(); }
设置远程推送环境 (setapnsforproduction仅 ios)
setapnsforproduction if (platform.isios) { // 开发环境 false, 线上环境 true mobpushplugin.setapnsforproduction(false) }
添加推送回调监听(addpushreceiver 接收自定义透传消息回调、接收通知消息回调、接收点击通知消息回调、接收别名或标签操作回调)
addpushreceiver mobpushplugin.addpushreceiver(_onevent, _onerror); void _onevent(object event) { } void _onerror(object event) { }
停止推送(stoppush)
stoppush mobpushplugin.stoppush();
重新打开推送服务(restartpush)
restartpush mobpushplugin.restartpush();
是否已停止接收推送(ispushstopped)
ispushstopped mobpushplugin.ispushstopped();
设置别名(setalias)
setalias mobpushplugin.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)
getalias mobpushplugin.getalias().then((map<string, dynamic> aliasmap){ string res = aliasmap['res']; string error = aliasmap['error']; print(">>>>>>>>>>>>>>>>>>>>>>>>>>> getalias -> res: $res error: $error"); });
删除别名(deletealias)
deletealias mobpushplugin.deletealias().then((map<string, dynamic> aliasmap){ string res = aliasmap['res']; string error = aliasmap['error']; print(">>>>>>>>>>>>>>>>>>>>>>>>>>> deletealias -> res: $res error: $error"); });
添加标签(addtags)
addtags list 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)
gettags mobpushplugin.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)
deletetags list 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)
cleantags mobpushplugin.cleantags().then((map<string, dynamic> tagsmap){ string res = tagsmap['res']; string error = tagsmap['error']; print(">>>>>>>>>>>>>>>>>>>>>>>>>>> cleantags -> res: $res error: $error"); });
发送本地通知(addlocalnotification)
addlocalnotification mobpushplugin.addlocalnotification();
绑定手机号(bindphonenum)
bindphonenum mobpushplugin.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)
setclicknotificationtolaunchmainactivity mobpushplugin.setclicknotificationtolaunchmainactivity (bool enable);
移除本地通知(removelocalnotification 仅android)
removelocalnotification mobpushplugin.removelocalnotification(int notificationid);
清空本地通知(clearlocalnotifications 仅)
clearlocalnotifications mobpushplugin.clearlocalnotifications();
设置通知栏icon,不设置默认取应用icon(setnotifyicon 仅android)
setnotifyicon mobpushplugin.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)
setbadge mobpushplugin.setbadge(int badge);
清空角标,不清除通知栏消息记录 (clearbadge仅 ios)
clearbadge mobpushplugin.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地址 github地址
以上就是mobpush for flutter集成准备的详细内容,更多关于mobpush for flutter的资料请关注代码网其它相关文章!
发表评论