MobPush 第三方插件:Uni-app

插件集成

  1. 访问MobPush插件、MobCommon插件点击购买并添加到项目当中。
  2. 在uniapp的“manifest.json”中选择“app原生插件配置”,点击勾选上方添加的两个插件完成上述两步后请务必先打自定义基座哦,否则SDK代码无法生效!

iOS平台相关配置

添加Background Modes
按照官网教程添加 Background Modes -> Remote notifications
APP信息配置
在manifest.json文件中配置如下属性
在这里插入图片描述
厂家信息配置
在manifest.json文件中配置如下属性
在这里插入图片描述

Android平台相关配置

APP信息配置
打开 manifest.xml配置如下属性
在这里插入图片描述
厂商信息配置
添加自定义模块
可从gitHub上下载对应厂商库并添加到自定义模块中进行使用,并配置厂商账号信息,点击查看自定义模块使用方法;
示例:
在这里插入图片描述
在这里插入图片描述
配置AndroidManifest
在HBuilderX中,对项目根目录右键菜单 “新建” -> “自定义文件”
在这里插入图片描述
输入文件名称 AndroidManifest.xml(注意大小写敏感),点击 “创建” 按钮新建文件
在这里插入图片描述
根据应用需求编辑添加需要的内容:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mob.mobpush.plugin">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
    <permission android:name="${applicationId}.push.permission.MESSAGE" />
    <permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <uses-permission android:name="${applicationId}.push.permission.MESSAGE" />
    <uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
    <uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />

    <application>
        <receiver
            android:name="com.mob.pushsdk.plugins.huawei.PushHaiWeiRevicer"
            android:exported="true">
            <intent-filter>
                <action android:name="com.huawei.android.push.intent.REGISTRATION" />
                <action android:name="com.huawei.android.push.intent.RECEIVE" />
                <action android:name="com.huawei.android.push.intent.CLICK" />
                <action android:name="com.huawei.intent.action.PUSH_STATE" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.mob.pushsdk.plugins.honor.HonorPushService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.hihonor.push.action.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service
            android:name="com.vivo.push.sdk.service.CommandClientService"
            android:exported="true" />
        <activity
            android:name="com.vivo.push.sdk.LinkProxyClientActivity"
            android:exported="false"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <receiver
            android:name="com.mob.pushsdk.plugins.vivo.PushVivoReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.vivo.pushclient.action.RECEIVE" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.mob.pushsdk.plugins.oppo.OppoService"
            android:exported="true"
            android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">
            <intent-filter>
                <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
                <action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE" />
            </intent-filter>
        </service>
        <service
            android:name="com.mob.pushsdk.plugins.oppo.CompatibleOppoService"
            android:exported="true"
            android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
            <intent-filter>
                <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
            </intent-filter>
        </service>
        <receiver
            android:name="com.mob.pushsdk.plugins.meizu.PushMeiZuRevicer"
            android:exported="true">
            <intent-filter>
                <action android:name="com.meizu.flyme.push.intent.MESSAGE" />
                <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
                <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
                <action android:name="com.meizu.c2dm.intent.REGISTRATION" />
                <action android:name="com.meizu.c2dm.intent.RECEIVE" />
                <category android:name="com.mob.mobpush.demo" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.mob.pushsdk.plugins.huawei.PushHaiWeiRevicer"
            android:exported="true">
            <intent-filter>
                <action android:name="com.huawei.android.push.intent.REGISTRATION" />
                <action android:name="com.huawei.android.push.intent.RECEIVE" />
                <action android:name="com.huawei.android.push.intent.CLICK" />
                <action android:name="com.huawei.intent.action.PUSH_STATE" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer"
            android:exported="true">
            <intent-filter>
                <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.ERROR" />
            </intent-filter>
        </receiver>
    </application>
</manifest>

接口调用

引入模块(必要)

const mobpush = uni.requireNativePlugin('mob-push')

功能接口
提交用户隐私授权结果
为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。
反之,如果用户不同意您App《隐私政策》授权,则不能调用MobSDK.submitPolicyGrantResult回传隐私协议授权结果。 请参考链接
合规指南

/**
 * 回传用户隐私授权结果
 * @param isGranted用户是否同意隐私协议
 */  
mobPushUniPlugin.submitPolicyGrantResult({"grant": true})

打开debug日志

/**
 * 设置打开debug日志
 */  
    mobPushUniPlugin.enableLog({
       "enableLog": true
    })

设置推送环境(仅iOS)

/**
 * 设置推送环境
 * @param isPro = true
 */
mobPushUniPlugin.setAPNsForProduction({'isPro': true})

配置推送配置(仅iOS)

/**
 * 设置推送配置 (必须调用)
 * @param type = 7
 * 无显示 0, 角标提醒 1, 声音提醒 2, 弹框提醒 4, 全部 7
 */
mobPushUniPlugin.setAPNsNotification({'type': 7})
/**
 * 设置应用在前台有 Badge、Sound、Alert 三种类型,默认3个选项都有,iOS 10 以后设置有效
 * @param type = 7
 * 无显示 0, 角标提醒 1, 声音提醒 2, 弹框提醒 4, 全部 7
 */
mobPushUniPlugin.setAPNsShowForegroundType({'type': 7})

获取RegistrationID

/**
     * 获取RegistrationID
     * @param {Function} callback = (result) => {"success":bool,"res":regID,"error":err}
     */
    mobPushUniPlugin.getRegistrationID((result) => {
          //todo something
    })

添加消息事件监听

/*
    * 消息事件监听
    *
    * @param {Function} callback = (result) => {"success":bool,"res":String,"error":err}
    *
    * success:结果,true为操作成功
    * 
    * res: 消息结构体 JSON字符串
    * */

    mobPushUniPlugin.addPushReceiver((result) => {})

清除事件监听(仅iOS)

/**
 * 清除事件监听
 */
mobPushUniPlugin.clearPushReceivers()

标签推送

/*
    * 新增标签,tags之间以;隔开
    * */
     mobPushUniPlugin.addTags({
        "tags": "您的标签"
     })

    /*
    * 删除所有标签
    *
    * */
    mobPushUniPlugin.cleanAllTags()

    /*
    * 清除指定标签,tags之间以;隔开
    * */
    mobPushUniPlugin.deleteTags({
      "tags": "您的标签"
    })

    /*
    * 查询所有标签
    * */
    mobPushUniPlugin.getTags()

别名推送

/*
    * 查询所有别名
    * */
    mobPushUniPlugin.getAlias()

    /*
    * 新增别名
    * @param alias = String
    * */
    mobPushUniPlugin.setAlias({
        "alias": "您的别名"
    })

    /*
    * 删除别名
    * */
    static deleteAlias() {
        MobPushModule.deleteAlias();
    }

推送状态

/**
     * 推送服务是否关闭
     * @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}
     */
    mobPushUniPlugin.isPushStopped((result) => {
       // todo something
    })

    /**
     * 关闭推送服务
     */
    mobPushUniPlugin.stopPush()

    /**
     * 开启推送服务
     */
    mobPushUniPlugin.restartPush()

角标状态
Android:

/**
     * 设置角标是否开启
     */   
    mobPushUniPlugin.setShowBadge({
        "showBadge": true
    })
    /**
     * 角标是否关闭
     * @param {Function} callback = (result) => {"success":bool,"res":isStopeed,"error":err}
     */
      mobPushUniPlugin.getShowBadge((result) => {
          //todo something
      })

iOS:

/**
 * 设置角标数量
 * @param badge = 10
 */
mobPushUniPlugin.setBadge({'badge': 10})
/**
 * 获取服务器角标数量
 */
mobPushUniPlugin.getBadge((result) => {
    //todo something
})
/**
 * 清空角标,但不清空通知栏消息
 */
mobPushUniPlugin.clearBadge()

注意事项
合规指南:https://www.mob.com/wiki/detailed?wiki=216&id=78
常见问题:https://www.mob.com/wiki/detailed?wiki=156&id=78

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/764671.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考《信息系统运行管理员》-2.2 信息系统运维的组织

2.2 信息系统运维的组织 信息系统运维的任务 数据资源管理 数据收集、数据校验、数据录入、数据处理 软件资源管理 采购、保存、相关文档保管、分发、安装、支持、评价、培训 硬件资源管理 检查、维护、故障处理、更新、修复、扩充 系统安全管理 可用性、完整性、保密性、可控…

【C语言】typedef 关键字

在C语言中&#xff0c;typedef关键字用于给现有的数据类型起一个新的名字。它在提高代码可读性、简化复杂类型声明、增强可维护性方面非常有用。typedef通常用于定义结构体、指针、函数指针以及其他复杂类型。 基本用法 typedef int MyInt; MyInt x 10;在这个例子中&#xf…

ROS2 RQT

1. RQT是什么 RQT是一个GUI框架&#xff0c;通过插件的方式实现了各种各样的界面工具。 强行解读下&#xff1a;RQT就像插座&#xff0c;任何电器只要符合插座的型号就可以插上去工作。 2.选择插件 这里我们可以选择现有的几个RQT插件来试一试&#xff0c;可以看到和话题、参…

从深度学习到音乐创作:AI如何重新定义音乐行业

&#x1f4d1;引言 近一个月来&#xff0c;随着几款音乐大模型的轮番上线&#xff0c;AI在音乐产业的角色迅速扩大。这些模型不仅将音乐创作的门槛降至前所未有的低点&#xff0c;还引发了一场关于AI是否会彻底颠覆音乐行业的激烈讨论。从初期的兴奋到现在的理性审视&#xff0…

【FPGA 学习与实践】<初阶> 项目周计划

第1-2周&#xff1a;基础项目 - 4位加法器和计数器 目标&#xff1a;掌握Verilog基本语法和模块设计。 第1周&#xff1a; 学习Verilog的基本语法和结构&#xff08;模块、端口、数据类型&#xff09;。设计并实现一个4位加法器。编写测试平台&#xff08;Testbench&#xff0…

吴晓波:企业出海的最佳时间窗口只有5-10年,中国企业如何把握出海机遇?

鼓励企业参与绿色“一带一路”建设&#xff0c;带动先进的环保技术、装备、产能走出去。 出海计划&#xff01;马来西亚水环境项目国际考察暨2024中马水务合作论坛

控制台厂商配额查询

概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制&#xff0c;当请求超过限制且已配置厂商回执时&#xff0c;MobPush会采取以下措施&#xff1a; 当开发者推送请求超过厂商配额时&#xff0c;MobPush将通过自有通道进行消息下发。当开发者推送请求超过厂商 QPS…

LLM大模型工程师面试经验宝典--进阶版2(2024.7月最新)

目录 1 大模型怎么评测&#xff1f; 2 大模型的honest原则是如何实现的&#xff1f;模型如何判断回答 的知识是训练过的已知的知识&#xff0c;怎么训练这种能力&#xff1f; 3 如何衡量大模型水平&#xff1f; 4 大模型评估方法 有哪些&#xff1f; 5 大模型评估工具 有哪…

Linux——查找文件-find(详细)

查找文件-find 作用 - 按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 格式 find 查找路径 查找条件 具体条件 操作 注意 - find命令默认的操作是print输出 - find是检索文件的&#xff0c;grep是过滤文件中字符串 参数 参数 …

S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)

S7-1500PLC通过工艺对象实现V90总线伺服定位控制,伺服驱动器工作在速度模式,S7-1500PLC工作在位置模式,具体控制原理框图,可以参考下面文章链接: 1、S7-1200PLC和V90总线伺服位置控制 S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_v90伺服 报文3 设…

Python 获取字典中的值(八种方法)

Python 字典(dictionary)是一种可变容器模型&#xff0c;可以存储任意数量的任意类型的数据。字典通常用于存储键值对&#xff0c;每个元素由一个键&#xff08;key&#xff09;和一个值(value&#xff09;组成&#xff0c;键和值之间用冒号分隔。 以下是 Python 字典取值的几…

创新校园服务模式 跑腿小程序平台源码构建与实践 前后端分离 带完整的安装代码包以及部署教程

系统概述 本项目是一个集任务发布、接单、支付、评价于一体的跑腿服务小程序平台&#xff0c;专为高校校园设计。系统采用前后端分离架构&#xff0c;前端负责用户界面展示和交互逻辑&#xff0c;后端处理业务逻辑、数据存取等&#xff0c;两者通过API接口进行通信&#xff0c…

MySQL数据核心技术:理解主键与外键的关系与作用

在进行数据库设计时&#xff0c;合理的添加主键和外键能有效保障数据的完整性和一致性&#xff0c;使得数据管理更加科学高效。本文将详细介绍MySQL中主键和外键的基本概念、它们之间的关系、作用及一些高级知识点。 一、主键&#xff08;Primary Key&#xff09;的概念 主键…

Bootstrap 缩略图

Bootstrap 缩略图 引言 Bootstrap 是一个流行的前端框架,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式和移动优先的网页。缩略图(Thumbnails)是 Bootstrap 中的一种组件,用于展示图片或其他媒体内容,通常与标题和文本描述一起使用,形成一个整洁的布局。本文…

Flink实现准确和高效流处理的关键问题

时间相关: Watermark 水位线 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据。水位线主要的内容是一个时间戳,用来表示当前事件时间的进展。水位线是基于数据的时间戳生成的。水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进,进展。水位线…

linux 离线安装docker

测试服务器&#xff1a;银河麒麟V10 x86_64 注意&#xff1a;推荐使用国内的镜像站下载&#xff0c;因为官网不挂梯子无法访问&#xff0c;我用的是清华大学开源软件镜像站 一、下载离线包&#xff1a; 官网下载docker离线包 下载地址&#xff1a;https://download.docker.c…

C# 计算椭圆上任意一点坐标

已知圆心坐标 &#xff08;x0&#xff0c;y0&#xff09;&#xff0c;横轴 A&#xff08;长半轴&#xff09;&#xff0c;竖轴 B&#xff08;短半轴&#xff09;&#xff0c;角度 a&#xff0c;则圆边上点&#xff08;x&#xff0c;y&#xff09;的坐标为&#xff1a; 方法一 …

金蝶云星空字段之间连续触发值更新

文章目录 金蝶云星空字段之间连续触发值更新场景说明具体需求&#xff1a;解决方案 金蝶云星空字段之间连续触发值更新 场景说明 字段A配置了字段B的计算公式&#xff0c;字段B配置了自动C的计算公式&#xff0c;修改A的时候&#xff0c;触发了B的重算&#xff0c;但是C触发不…

BIOS设置与系统分区

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 一BIOS 1破解密码的前提 2B…