集成准备
这是一个基于 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的资料请关注代码网其它相关文章!
发表评论