MobPush iOS端海外推送最佳实现
推送注册
在AppDelegate里进行SDK初始化(也可以在Info.plist文件中进行AppKey,AppSecret的配置)并对通知功能进行注册以及设置推送的环境和切换海外服务器等,参考如下步骤代码:
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#bbb529">#import <MobPush/MobPush.h></span>
<span style="color:#bbb529">#import <MOBFoundation/MOBFoundation.h></span>
- (BOOL)application:(UIApplication \*)application didFinishLaunchingWithOptions:(NSDictionary \*)launchOptions{<span style="color:grey">//1.初始化SDK</span>[MobSDK registerAppKey:<span style="color:#6a8759">@"2e76e2e95a7ad"</span> appSecret:<span style="color:#6a8759">@"e83de04bc9d850784ca01b5fcfbc886e"</span>];<span style="color:grey">//2.上传隐私状态</span>[MobSDK uploadPrivacyPermissionStatus:<span style="color:#6897bb">YES</span> onResult:^(**BOOL** success) {}];<span style="color:grey">//3.设置推送环境 如果为开发状态设置为 NO; 如果为生产状态,应改为 YES</span>[MobPush setAPNsForProduction:<span style="color:#6897bb">NO</span>];<span style="color:grey">//4.设置地区:regionId 默认0(国内),1:海外</span>[MobPush setRegionID:<span style="color:#6897bb">1</span>];<span style="color:grey">//5.MobPush推送设置(获得角标、声音、弹框提醒权限)</span>MPushNotificationConfiguration *configuration = [[MPushNotificationConfiguration alloc] init];configuration.types = MPushAuthorizationOptionsBadge | MPushAuthorizationOptionsSound | MPushAuthorizationOptionsAlert;[MobPushsetupNotification:configuration];}
</code></span></span>
添加推送监听
同时可以在AppDelegate里注册监听,可以监听到推送消息的到达和点击,参考代码如下:
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#cc7832">-</span> (BOOL)<span style="color:#cc7832">application</span>:(UIApplication \*)<span style="color:#cc7832">application</span> <span style="color:#cc7832">didFinishLaunchingWithOptions</span>:(NSDictionary \*)<span style="color:#cc7832">launchOptions</span>{[[NSNotificationCenter defaultCenter] <span style="color:#cc7832">addObserver</span>:self <span style="color:#cc7832">selector</span>:@<span style="color:#cc7832">selector</span>(<span style="color:#6a8759">didReceiveMessage</span>:) <span style="color:#cc7832">name</span>:MobPushDidReceiveMessageNotification <span style="color:#cc7832">object</span>:nil];}
</code></span></span>
接收回调处理
在回调中处理接收到的MobPush的通知监听,需要注意如果应用处于后台或者杀死,是不会走APNS回调的,需要点击通知消息才能触发被点击的回调,参考代码如下:
// 收到通知回调
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code>- (<span style="color:#cc7832">void</span>)didReceiveMessage:(NSNotification *)notification{MPushMessage *message = notification.object;<span style="color:grey">// 推送相关参数获取示例请在各场景回调中对参数进行处理</span>
<span style="color:grey">// NSString *body = message.notification.body;</span><span style="color:grey">// NSString *title = message.notification.title;</span>
<span style="color:grey">// NSString *subtitle = message.notification.subTitle;</span>
<span style="color:grey">// NSInteger badge = message.notification.badge;</span>
<span style="color:grey">// NSString *sound = message.notification.sound;</span>
<span style="color:grey">// NSLog(@"收到通知:{\nbody:%@,\ntitle:%@,\nsubtitle:%@,\nbadge:%ld,\nsound:%@,\n}",body, title, subtitle, (long)badge, sound);</span>
<span style="color:#cc7832">switch</span> (message.messageType)
{
<span style="color:#cc7832">case</span> MPushMessageTypeCustom:
{<span style="color:grey">// 自定义消息回调</span>
}
<span style="color:#cc7832">break</span>;
<span style="color:#cc7832">case</span> MPushMessageTypeAPNs:
{<span style="color:grey">// APNs回调</span>
}
<span style="color:#cc7832">break</span>;
<span style="color:#cc7832">case</span> MPushMessageTypeLocal:
{<span style="color:grey">// 本地通知回调</span>}
<span style="color:#cc7832">break</span>;
<span style="color:#cc7832">case</span> MPushMessageTypeClicked:
{<span style="color:grey">// 点击通知回调</span>}
<span style="color:#cc7832">default</span>:
<span style="color:#cc7832">break</span>;
}
</code></span></span>
注意:海外推送与国内推送SDK是一样的,不区分SDK版本,需要注意的是海外需要增加以下接口切换到海外服务器,另外目前4.x版本只支持APNS厂商通道推海外,TCP通道不支持。
<span style="background-color:#42475a"><span style="color:#a9b7c6"><code><span style="color:#ffc66d">[MobPush setRegionID:1]</span><span style="color:grey">;</span>
</code></span></span>
使用开发者后台进行推送
登陆我们的后台,然后打开已注册的应用,添加 MobPush 产品之后,进行iOS设置,上传证书,Bundle id等信息,如下图:

然后 切换海外版 在 点击同步国内配置到海外版 ,将信息同步到海外,如下

最后点击 创建推送 进行推送

注意:选择的推送环境需要和代码里设置的推送环境,安装的包的环境,这3处的环境必须要一致。
使用API接口进行推送
接口:http://abroad.api.push.mob.com/v3/push/createPush
具体的传参可以参考国内接口传参:参考这里
可以使用Postman测试,例如:


注: API接口里的 iosProduction 参数是设置推送环境参数,与客户端代码设置的推送环境以及安装的包的环境一致。另推送可以选择在开发者后台进行推送或者是调用API接口进行推送,任选其一即可。
相关文章:
MobPush iOS端海外推送最佳实现
推送注册 在AppDelegate里进行SDK初始化(也可以在Info.plist文件中进行AppKey,AppSecret的配置)并对通知功能进行注册以及设置推送的环境和切换海外服务器等,参考如下步骤代码: <span style"background-colo…...
商家团购app微信小程序模板
手机微信商家团购小程序页面,商家订餐外卖小程序前端模板下载。包含:团购主页、购物车订餐页面、我的订单、个人主页等。 商家团购app微信小程序模板...
探索AudioLM:音频生成技术的未来
目录 2. AudioLM的基础理论 2.1. 音频生成的基本概念 2.2. 语言模型在音频生成中的应用 2.3. 深度学习在音频生成中的作用 3. AudioLM的架构与实现 3.1. AudioLM的基本架构 3.1.1 编码器 3.1.2 解码器 3.1.3 生成模块 3.2. 训练过程 3.2.1 数据预处理 3.2.2 损失函…...
计算机视觉:深入了解图像分类、目标检测和图像分割的核心技术
计算机视觉是什么? 计算机视觉是一门致力于让计算机“看懂”图像和视频的技术,它旨在通过模拟人类视觉系统来理解和解释数字化视觉信息。这一领域涉及图像的获取、处理、分析和理解,最终用于从视觉数据中提取有用信息并做出决策。计算机视觉的…...
Django 安装 Zinnia 后出现故障
在Django中安装和配置Zinnia时遇到故障可能有多种原因,通常包括版本兼容性、依赖关系或配置问题。这里提供一些常见的解决方法和调试步骤,帮助大家解决问题。 首先,确保您安装的Zinnia版本与Django版本兼容。查看Zinnia的官方文档或GitHub页…...
.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作
一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 (1)判断bucket是否存在 (2)新建bucket (…...
Three.js机器人与星系动态场景:实现3D渲染与交互式控制
内容摘要:使用Three.js库构建了一个交互式的3D场景。组件中创建了一个机器人模型,包括头部、眼睛、触角、身体和四肢,以及两个相同的机器人实例以实现动态效果。场景中还加入了粒子效果,模拟星系环境,增强了视觉效果。…...
Android系统集成和使用FFmpeg
文章目录 前言FFmpeg源码下载交叉编译NDK下载x264编译源码下载编译 FFmpeg编译脚本 AOSP继承FFmpeg 前言 原生AOSP中并未继承FFmpeg,所以要想在android上使用,需要自己编译集成。 FFmpeg源码下载 git clone https://git.ffmpeg.org/ffmpeg.git目前最新…...
水果商城外卖微信小程序模板
手机微信水果外卖,水果电商,水果商城网页小程序模板。包含:主页、列表页、详情页、购物车、个人中心。 水果商城外卖小程序模板...
【前端】面试八股文——输入URL到页面展示的过程
【前端】面试八股文——输入URL到页面展示的过程 1. DNS解析 当用户在浏览器中输入URL并按下回车时,首先需要将域名转换为IP地址,这个过程称为DNS(域名系统)解析。具体步骤如下: 浏览器缓存:浏览器首先检…...
什么是应用安全态势管理 (ASPM):综合指南
软件开发在不断发展,应用程序安全也必须随之发展。 传统的应用程序安全解决方案无法跟上当今开发人员的工作方式或攻击者的工作方式。 我们需要一种新的应用程序安全方法,而ASPM在该方法中发挥着关键作用。 什么是 ASPM? 应用程序安全…...
认识100种电路之耦合电路
在电子电路的世界中,耦合电路宛如一座精巧的桥梁,连接着各个功能模块,发挥着至关重要的作用。 【为什么电路需要耦合】 在复杂的电子系统中,不同的电路模块往往需要协同工作,以实现特定的功能。然而,这些模…...
c++【入门】三数的乘积
限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 你已经学了一些程序的输入,这次,你需要在没有老师的任何帮助下完成这次的任务啦。这次任务,我们要读入三个整数,并且计算它们的乘积。 这是一个非常简单的题目,意在…...
C++实现简化版Qt的QObject(4):增加简单实用的事件机制
前面的文章已经实现了许多QObject的功能了: C实现一个简单的Qt信号槽机制 C实现简化版Qt信号槽机制(2):增加内存安全保障 C实现简化版Qt的QObject(3):增加父子关系、属性系统 但是,…...
JTracker IDEA 中最好的 MyBatis 日志格式化插件
前言 如果你使用 MyBatis ORM 框架,那么你应该用过 MyBatis Log 格式化插件,它可以让我们的程序输出的日志更人性化。 但是有一个问题,通常我们只能看到格式化后的效果,没办法知道这个 SQL 是谁执行的以及调用的链路。 如下图所…...
物联网工业级网关解决方案 工业4G路由器助力智慧生活
随着科技的飞速发展,无线通信技术正逐步改变我们的工作与生活。在这个智能互联的时代,一款高性能、稳定可靠的工业4G路由器成为了众多行业不可或缺的装备。工业4G路由器以其卓越的性能和多样化的功能,助力我们步入智慧新纪元。 一、快速转化&…...
IoTDB Committer+Ratis PMC Member:“两全其美”的秘诀是?
IoTDB & Ratis 双向深耕! 还记得一年前我们采访过拥有 IoTDB 核心研发 Ratis Committer “双重身份”的社区成员宋子阳吗?(点此阅读) 我们高兴地发现,一年后,他在两个项目都更进一步,已成为…...
【链表】- 移除链表元素
1. 对应力扣题目连接 移除链表元素 2. 实现案例代码 public class RemoveLinkedListElements {public static void main(String[] args) {// 示例 1ListNode head1 new ListNode(1, new ListNode(2, new ListNode(6, new ListNode(3, new ListNode(4, new ListNode(5, new …...
云原生之使用Docker部署RabbitMQ消息中间件
云原生之使用Docker部署RabbitMQ消息中间件 一、RabbitMQ介绍1.1 RabbitMQ简介1.2 RabbitMQ特点1.3 RabbitMQ使用场景 二、检查Docker环境2.1 检查Docker版本2.2 检查操作系统版本2.3 检查Docker状态 三、下载RabbitMQ镜像四、部署RabbitMQ服务4.1创建挂载目录4.2 运行RabbitMQ…...
opengl箱子的显示
VS环境配置: /JMC /ifcOutput "Debug\" /GS /analyze- /W3 /Zc:wchar_t /I"D:\Template\glfwtemplate\glfwtemplate\assimp" /I"D:\Template\glfwtemplate\glfwtemplate\glm" /I"D:\Template\glfwtemplate\glfwtemplate\LearnOp…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
