集成准备这是一个基于MobPush功能扩展的Flutter插件。使用该插件可以帮助您在使用Flutter开发应用时快速实现推送功能。在pubspec.yaml文件中添加如下依赖:mobcommonlib:mobpush_plugin:然后执行:flutterpackagesgetimportpackage在你的dart工程文件中,导入如下头文件,开始使用import'package:mobcommonlib/mobcommonlib.dart';import'包:mobpush_plugin/mobpush_plugin.dart';iOS平台配置参考iOS集成文档实现文档中的Xcode配置:配置AppKey和AppSecretAndroid导入MobPush相关依赖在项目根目录的build.gradle中添加如下代码:buildscript{repositories{//配置MobMavenlibrarymaven{url"https://mvn.mob.com/android"}//配置HMSCoreSDK的Maven仓库地址。(集成华为厂商需要添加)maven{url'https://developer.huawei.com/repo/'}}...}dependencies{...//集成MobPushclasspath"com.mob.sdk:MobSDK:2018.0319.1724"}}在/android/app/build.gradle中添加如下代码:MobSDKapplyplugin:'com.mob.sdk'在项目的/android/app/build.gradle中添加平台相关的集成:MobSDK{appKey"你的MobTech平台appKey"appSecret"你的MobTech平台appSecret"//配置MobPushMobPush{//Configuremanufacturerpush(可选配置,不需要配置厂商推送,只需要配置需要配置哪个厂商推送)devInfo{//配置小米厂商推送XIAOMI{appId"你的小米平台appId"appKey"你的小米平台appKey"}//配置华为推送HUAWEI{appId"yourHuaweiplatformappId"}//配置魅族推送MEIZU{appId"你的魅族appId"appKey"你的魅族appKey"}//配置FCM厂商推送FCM{//设置默认推送通知显示图标iconRes"@mipmap/default_ic_launcher"}//配置OPPO厂商推送OPPO{appKey"你的OPPO平台appKey"appSecret"你的OPPO平台appSecret"}//配置VIVO厂商推送VIVO{appId"你的VIVOplatformappId"appKey"YourVIVOplatformappKey"}}}}添加代码在MainActivity的onCreate中添加如下代码@OverrideprotectedvoidonCrSDKAPIeate(BundlesavedInstanceState){super.onCreate(savedInstanceState);生成的插件注册人。注册(这个);}SDKAPI返回用户隐私授权结果(submitPrivacyGrantResult)/***返回用户隐私授权结果*@paramstatus用户是否同意隐私协议*@paramresult默认为null*/mobcommonlib.submitPolicyGrantResult(boolstatus,Function(bool)?result)示例:Mobcommonlib.submitPolicyGrantResult(true,null);设置远程推送环境并授权给用户(setCustomNotification仅iOS)setCustomNotificationif(Platform.isIOS){MobpushPlugin.setCustomNotification();}设置远程推送环境(setAPNsForProductiononlyiOS)setAPNsForProductionif(Platform.isIOS){//开发环境false,线上环境trueMobpushPlugin.setAPNsForProduction(false)}添加推送回调监听(addPushReceiver接收自定义透传消息回调,接收通知消息回调,接收点击通知消息回调,接收别名或标签操作回调)addPushReceiverMobpushPlugin.addPushReceiver(_onEvent,_onError);void_onEvent(Objectevent){}void_onError(Objectevent){}停止推送(stopPush)`stopPushMobpushPlugin.stopPush();`重新开启推送服务(restartPush)restartPushMobpushPlugin.restartPush();是否停止接收推送(isPushStopped)isPushStoppedMobpushPlugin.isPushStopped();设置别名(setAlias)setAliasMobpushPlugin.setAlias("alias").then((MapaliasMap){Stringres=aliasMap['res'];Stringerror=aliasMap['error'];StringerrorCode=aliasMap['errorCode'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>setAlias->res:$reserror:$error");});获取别名(getAlias)getAliasMobpushPlugin.getAlias().then((MapaliasMap){Stringres=aliasMap['res'];Stringerror=aliasMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>getAlias->res:$reserror:$error");});删除别名(deleteAlias)deleteAliasMobpushPlugin.deleteAlias().then((MapaliasMap){Stringres=aliasMap['res'];Stringerror=aliasMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>deleteAlias->res:$reserror:$error");});添加标签(addTags)addTagsListtags=newList();tags.add("tag1");tags.add("tag2");MobpushPlugin.addTags(tags).then((MaptagsMap){Stringres=tagsMap['res'];Stringerror=tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>addTags->res:$reserror:$error");});获取标签(getTags)getTagsMobpushPlugin.getTags().then((MaptagsMap){ListresList;if(tagsMap['res']==null){resList=[];}else{resList=tagsMap['res'].toList();}Stringerror=tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>getTags->res:$resListerror:$error");});删除标签(deleteTags)deleteTagsListtags=newList();tags.add("tag1");tags.add("tag2");MobpushPlugin.deleteTags(tags).then((MaptagsMap){Stringres=tagsMap['res'];Stringerror=tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>deleteTags->res:$reserror:$error");});cleantags(cleanTags)cleanTagsMobpushPlugin.cleanTags().then((MaptagsMap){Stringres=tagsMap['res'];Stringerror=tagsMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>res:$reserror:$error");});发送本地通知(addLocalNotification)addLocalNotificationMobpushPlugin.addLocalNotification();绑定电话号码(bindPhoneNum)bindPhoneNumMobpushPlugin.bindPhoneNum("110");测试模拟推送,用于测试(send)send/***测试模拟推送,用于测试*type:模拟消息类型,1.通知测试;2.内推测试;3.定时*content:模拟发送内容,500字节以内,UTF-8*space:只对定时消息有效,单位分钟,1分钟默认*extras:附加数据,json字符串*/MobpushPlugin.send(inttype,Stringcontent,intspace,Stringextras).then((MapsendMap){Stringres=sendMap['res'];Stringerror=sendMap['error'];print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>send->res:$reserror:$error");});设置点击通知是否跳转到默认页面(setClickNotificationToLaunchMainActivityAndroidonly)enable);移除本地通知(removeLocalNotificationonlyAndroid)removeLocalNotificationMobpushPlugin.removeLocalNotification(intnotificationId);清除本地通知(仅clearLocalNotifications)clearLocalNotificationsMobpushPlugin.clearLocalNotifications();设置通知栏图标,不设置默认应用图标(setNotifyIconsetify.Androidonly)setN(StringresId);设置通知静默期(推送选项)(setSilenceTimeAndroidonly)setSilenceTime/***设置通知静默期(推送选项)(Androidonly)*@paramstartHour开始时间[0~23](小时)*@paramstartMinute开始时间[0~59](分钟)*@paramendHour结束时间[0~23](小时)*@paramendMinute结束时间[0~59](分钟tes)*/MobpushPlugin.setSilenceTime(intstartHour,intstartMinute,intendHour,intendMinute)设置徽章(setBadge仅限iOS)setBadgeMobpushPlugin.setBadge(int徽章);清除badge,不清除通知栏消息记录(clearBadge仅适用于iOS)`clearBadgeMobpushPlugin.clearBadge();`获取注册Id(getRegistrationId)getRegistrationIdMobpushPlugin.getRegistrationId().then((MapridMap){print(ridMap);StringregId=ridMap['res'].toString();print('------>####registrationId:'+regId);});FlutteriOSsideMatters注意事项由于插件的更新,SDK的Pod依赖被替换。Flutter本身在写入Pod文件时不会删除原有的依赖。因此,原来的本地库可能仍然存在。请检查Pod文件夹下的文件,直接手动删除mob_pushsdk。而MOBFoundation文件就足够了。如有任何疑问,请直接通过官网联系我们。其他问题demo地址demo:github地址推送证书制作推送证书申请流程见:推送证书文档