您现在的位置是:首页 >学无止境 >flutter集成Mob推送(Android)网站首页学无止境

flutter集成Mob推送(Android)

雨汨 2023-06-22 08:00:02
简介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) {

}

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
在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。