Mob推送
Flutter对接文档
1、在pubspec.yaml文件中加入下面依赖
mobpush_plugin: ^1.2.2 # MOB推送
2、导入 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:+'
}
}
3、在 /android/app/build.gradle 中添加以下代码:
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
// 导入MobSDK
apply plugin: 'com.mob.sdk'
4、平台相关集成 在项目的/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"
}
}
}
}
5、在MainActivity的onCreate中添加以下代码:
package com.crlgc.canteenapp;
import android.os.Bundle;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.android.FlutterFragmentActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterFragmentActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(new FlutterEngine(this));
}
public void configureFlutterEngine(FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
}
}
SDK API
6、回传用户隐私授权结果 (submitPrivacyGrantResult)
/**
* 回传用户隐私授权结果
* @param status 用户是否同意隐私协议
* @param result 默认传null
*/
Mobcommonlib.submitPolicyGrantResult(bool status, Function(bool)? result)
7、设置别名(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");
});
8、添加推送回调监听(addPushReceiver 接收自定义透传消息回调、接收通知消息回调、接收点击通知消息回调、接收别名或标签操作回调)
MobpushPlugin.addPushReceiver(_onEvent, _onError);
void _onEvent(Object event) {
}
void _onError(Object event) {
}
- 有问题在gradle.properties添加
MobSDK.spEdition=FP
涉及文件如下:登录文件设置了别名,main获取推送消息及设置后续操作。
*** 问题排查:
1、如果遇到 missPlugin等问题,重新构建,重启环境或重启电脑。
2、获取不到registrationId,看看时候申请了权限;
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
3、创建了推送收不到:
(1)看手机是否开启了通知权限;
(2)在后台排查一下设备是否在线
(3)推送设置,包名是不是自己的包名,默认是com.null_as_default