MobPush for Flutter集成准备

目录
  • 集成准备
  • iOS
  • Android
  • SDK API
    • 回传用户隐私授权结果 (submitPrivacyGrantResult)
    • 设置远程推送环境
    • 设置远程推送环境 (setAPNsForProduction仅 iOS)
    • 停止推送(stopPush)
    • 重新打开推送服务(restartPush)
    • 是否已停止接收推送(isPushStopped)
    • 设置别名(setAlias)
    • 获取别名(getAlias)
    • 删除别名(deleteAlias)
    • 添加标签(addTags)
    • 获取标签(getTags)
    • 删除标签(deleteTags)
    • 清空标签(cleanTags)
    • 发送本地通知(addLocalNotification)
    • 绑定手机号(bindPhoneNum)
    • 测试模拟推送,用于测试(send)
    • 设置点击通知是否跳转默认页 (setClickNotificationToLaunchMainActivity 仅Android)
    • 移除本地通知(removeLocalNotification 仅Android)
    • 清空本地通知(clearLocalNotifications 仅)
    • 设置通知栏icon,不设置默认取应用icon(setNotifyIcon 仅Android)
    • 设置通知静音时段(推送选项)(setSilenceTime 仅Android)
    • 设置角标 (setBadge仅 iOS)
    • 清空角标,不清除通知栏消息记录 (clearBadge仅 iOS)
    • 获取注册Id(getRegistrationId)
  • Flutter iOS端注意事项

集成准备

这是一个基于 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的资料请关注我们其它相关文章!

(0)

相关推荐

  • flutter Toast实现消息提示框

    本文实例为大家分享了flutter Toast实现消息提示框的具体代码,供大家参考,具体内容如下 使用方法 //默认是显示在中间的 Toast.toast(context,msg: "中间显示的 "); Toast.toast(context,msg: "中间显示的 ",position: ToastPostion.center); Toast.toast(context,msg: "顶部显示的 Toast $_count",position:

  • Flutter集成高德地图并添加自定义Maker的实践

    目录 一.进入高德地图开放平台申请Key 二.yaml文件集成插件 目前地图开放平台三大巨头:高德.百度.腾讯基本都支持Flutter插件开发集成.从这里也能看出Flutter的生态在逐渐的完善.下面介绍下在Flutter项目集成高德地图的一些步骤和个人踩得一些坑. 一.进入高德地图开放平台申请Key Android端需要设置发布版本和调试版本SHA1值,这里可以通过AndroidStudio 自带工具获取, 点击会生成调式SHA1值.发布版本同理. 接着我们设置完SHA1值和包名之后点击提交即

  • flutter消息推送客户端集成方案详解

    目录 一.背景 二.第三方消息推送——个推 1.简介 2.注册开通 3.自定义消息推送——透传 三.项目集成 1.个推客户端flutter插件 2.Android和IOS配置 1)Android 2) iOS 3.通知栏插件flutter_local_notifications 4.个推消息与通知栏整合 最后 一.背景 公司一个CRM APP项目是用Flutter写的,根据业务要求,需要集成消息推送功能.所谓的消息推送就是系统会根据某些行为自动推送信息,手机的通知栏会接收到信息,点击可以打开ap

  • Android 集成Flutter

    目录 Android 集成Flutter 1, Hello Flutter 2, 引入 Flutter 模块 3,使用Flutter 3.1 添加依赖 3.2 运行Flutter页面 3.2.1 添加Flutter页面 4,Flutter APK 解析 5,踩过的坑 Android 集成Flutter Flutter 作为 Google 开源的新一代跨平台.高性能 UI 框架,旨在帮助开发者高效地构建出跨平台的.UI 与交互体验一致的精美应用,推出后一直倍受开发者的青睐. 当需要开发一个全新的应

  • Android原生项目集成Flutter解决方案

    了解一下如何在 Android 原生项目中集成 Flutter 生成配置 在原生项目根目录执行命令 flutter create -t module --org {package_name} {module_name} // 此处 module_name 的命令遵循 Android 子 module 的命名即可.不能有中划线. // 比如, flutter create -t module --org com.engineer.mini.flutter flutter_sub // 此处 mod

  • 详解如何在Flutter中集成华为认证服务

    最近发现华为AGC认证服务支持Flutter框架了,期待这个平台的支持已经很久了,所以迫不及待接入了,关联了自己的邮箱等账号. 集成步骤 安装flutter环境 a) 下载Flutter sdk包,地址:https://flutter.dev/docs/get-started/install/windows 将压缩包解压到任意文件夹,例如D:\Flutter b) 将flutter命令文件添加到环境变量中,此处我添加的Path为D:\Flutter\flutter_windows_1.22.2-

  • MobPush for Flutter集成准备

    目录 集成准备 iOS Android SDK API 回传用户隐私授权结果 (submitPrivacyGrantResult) 设置远程推送环境 设置远程推送环境 (setAPNsForProduction仅 iOS) 停止推送(stopPush) 重新打开推送服务(restartPush) 是否已停止接收推送(isPushStopped) 设置别名(setAlias) 获取别名(getAlias) 删除别名(deleteAlias) 添加标签(addTags) 获取标签(getTags)

  • Flutter集成到已有iOS工程的方法步骤

    前言 之前写过一篇介绍flutter集成到Android工程的文章,这次总结记录一下自己把flutter集成到iOS的流程,以及遇到的问题以及和解决方法供大家参考. 创建flutter_module 要在iOS工程中集成flutter,首先我们需要创建一个flutter_module,创建的方法有两种: 使用Android studio创建 使用Android studio创建在上一篇新版Flutter集成到已有Android项目中有介绍,这里不再赘述. 使用flutter命令创建 在指定目录下

  • 新版Flutter集成到已有Android项目的实现

    FlutterSDK升级后,我们发现不能按照原来的方式集成到已有Android项目中了,因为没有了Flutter这个类,通过阅读源码我找到了新的使用方式. 一.创建Flutter Module 在已有Android工程中集成flutter,可以使用AndroidStudio的new Flutter Module实现,方便快捷. 找到FlutterModule,一连串的next操作即可 创建完成后我们的项目中会多一个叫做flutter的module 并且在项目的setting.gradle文件中会

  • Flutter应用集成极光推送的实现示例

    概述 在移动应用开发中,消息推送可以说是一项非常重要的功能,它能够起到提醒或者唤醒用户的作用,同时也是产品运营人员更高效地实现运营目标的重要手段,比如将新上架一个商品或者最新的一条新闻推送给用户. 事实上,消息推送是一个横跨业务服务器.第三方推送服务托管厂商.操作系统长连接推送服务.用户终端以及移动手机应用等五方面的复杂业务应用场景.在原生iOS开发中,为了简化消息推送,苹果推送服务(简称APNs)接管了系统所有应用的消息通知需求,任何第三方消息推送都需要经过推送服务进行转发.对于原生Andro

  • Android集成Flutter

    目录 Android 集成Flutter 1, Hello Flutter 2, 引入 Flutter 模块 3,使用Flutter 3.1 添加依赖 3.2 运行Flutter页面 4,Flutter APK 解析 5,踩过的坑 Android 集成Flutter Flutter 作为 Google 开源的新一代跨平台.高性能 UI 框架,旨在帮助开发者高效地构建出跨平台的.UI 与交互体验一致的精美应用,推出后一直倍受开发者的青睐. 当需要开发一个全新的应用时,我们可以很方便地从零开始,完全

随机推荐