当前位置: 代码网 > it编程>App开发>苹果IOS > MobPush for Flutter集成准备

MobPush for Flutter集成准备

2024年05月18日 苹果IOS 我要评论
集成准备这是一个基于 mobpush 功能的扩展的 flutter 插件。使用此插件能够帮助您在使用 flutter 开发应用时,快速地实现推送功能。在pubspec.yaml文件中加入下面依赖dep

集成准备

这是一个基于 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)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com