flutter集成Mob推送(Android)

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) {
	Map<String, dynamic> eventMap = json.decode(event);
    Map<String, dynamic> result = eventMap['result'];
    //action:0自定义;1接收通知;2用户点击
    int action = eventMap['action'];
}

void _onError(Object event) {

}
  • 有问题在gradle.properties添加
    MobSDK.spEdition=FP

涉及文件如下:登录文件设置了别名,main获取推送消息及设置后续操作。
在这里插入图片描述
*** 问题排查:
1、如果遇到 missPlugin等问题,重新构建,重启Android Studio或重启电脑。
2、获取不到registrationId,看看时候申请了权限;

 <!--允许程序读写手机状态和身份-->
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

3、创建了推送收不到:
在这里插入图片描述

(1)看手机是否开启了通知权限;
(2)在后台排查一下设备是否在线
在这里插入图片描述
(3)推送设置,包名是不是自己的包名,默认是com.null_as_default
在这里插入图片描述
4、离线消息:只能通过厂商下发才能及时收到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值