0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MobPush iOS端SDK API推送配置方法

MobTech科技派 来源:MobTech科技派 作者:MobTech科技派 2022-08-16 12:17 次阅读

概述

MobPush 注册推送,获取推送id等方法均可在SDK的"MobPush.h"中进行查看,也可以下载MobPush的Demo进行参考。

推送环境设置(setAPNsForProduction)

/**
 @param isProduction 是否生产环境。 如果为开发状态,设置为 NO; 如果为生产状态,应改为 YES。 Default 为 YES 生产状态
 */
+ (void)setAPNsForProduction:(BOOL)isProduction;

示例代码

// 设置推送环境
#ifdef DEBUG

    [MobPush setAPNsForProduction:NO];

#else

    [MobPush setAPNsForProduction:YES];

#endif

注册推送配置(setupNotification)

/**
@param configuration 配置信息
 */
+ (void)setupNotification:(MPushNotificationConfiguration *)configuration;

示例代码

//MobPush推送设置(获得角标、声音、弹框提醒权限),应用要收到推送(角标、声音、弹框提醒)需要先申请权限,这个方法就是设置推送配置、申请权限的方法。用法可参考以下的例子。

MPushNotificationConfiguration *configuration = [[MPushNotificationConfiguration alloc] init];

configuration.types = MPushAuthorizationOptionsBadge | MPushAuthorizationOptionsSound | MPushAuthorizationOptionsAlert;

[MobPush setupNotification:configuration];

通知回调接口(MobPushDidReceiveMessageNotification)

/**
 收到消息通知(数据是MPushMessage对象,可能是推送数据、自定义消息数据,APNs、本地通知等的回调)
 */
extern NSString *const MobPushDidReceiveMessageNotification;   

说明:应用收到消息事,MobPush会发起一个通知,开发者只需要建立一个通知收听 MobPushDidReceiveMessageNotification 并作相应处理即可。收到的数据是一个MPushMessage对象,可能是推送数据,也可能是自定义消息数据。如果是推送数据,开发者可以通过MobPush.h中的addLocalNotification:方法,让消息以本地通知形式显示(iOS 10之前的系统应用内是不会显示通知的)。

示例代码

// 注册通知回调
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessage:) name:MobPushDidReceiveMessageNotification object:nil];

//查看通知参数可以打印notification
- (void)didReceiveMessage:(NSNotification *)notification{}

获取推送RegistrationID (getRegistrationID)

获取推送RegistrationID接口,RegistrationID可与用户id绑定,实现向指定用户推送消息,此接口必须在推送设置接口之后调用。

/**
 获取注册id(可与用户id绑定,实现向指定用户推送消息)

 @param handler 结果
 */
+ (void)getRegistrationID:(void(^)(NSString *registrationID, NSError *error))handler;

示例代码

[MobPush getRegistrationID:^(NSString *registrationID, NSError *error) {

 NSLog(@"registrationID = %@--error = %@", registrationID, error);

}];

推送标签API(addTags)

MobPush支持根据标签进行推送,所以也提供了对标签的相应操作。

/**
 获取所有标签
 @param handler 结果
 */
+ (void)getTagsWithResult:(void (^) (NSArray *tags, NSError *error))handler;/**

/**
 添加标签
 @param tags 标签组
 @param handler 结果
 */
+ (void)addTags:(NSArray *)tags result:(void (^) (NSError *error))handler;

/**
 删除标签
 @param tags 需要删除的标签
 @param handler 结果
 */
+ (void)deleteTags:(NSArray *)tags result:(void (^) (NSError *error))handler;

/**
 清空所有标签
 @param handler 结果
 */
+ (void)cleanAllTags:(void (^) (NSError *error))handler;

示例代码

[MobPush getTagsWithResult:^(NSArray *tags, NSError *error) {};

[MobPush addTags:[self tags] result:^(NSError *error) {};

[MobPush deleteTags:[self tags] result:^(NSError *error) {};

[MobPush cleanAllTags:^(NSError *error) {};

推送别名API(setAlias)

MobPush同样支持根据别名推送,所以也提供了对别名的相应操作。

/**
 获取别名
 @param handler 结果
 */
+ (void)getAliasWithResult:(void (^) (NSString *alias, NSError *error))handler;

/**
 设置别名
 @param alias 别名
 @param handler 结果
 */
+ (void)setAlias:(NSString *)alias result:(void (^) (NSError *error))handler;

/**
 删除别名
 @param handler 结果
 */
+ (void)deleteAlias:(void (^) (NSError *error))handler;

示例代码

[MobPush getAliasWithResult:^(NSString *alias, NSError *error) {

};

[MobPush deleteAlias:^(NSError *error) {

};

[MobPush setAlias:@"alias" result:^(NSError *error) {
  }];

添加本地推送接口(addLocalNotification)

/**
 添加本地推送通知
 @param request 消息请求(消息标识、消息具体信息、触发方式)
 @param handler 结果,iOS10以上成功result为UNNotificationRequest对象、iOS10以下成功result为UILocalNotification对象,失败result为nil
*/
+ (void)addLocalNotification:(MPushNotificationRequest *)request result:(void (^) (id result, NSError *error))handler;

示例代码

#import 
[MobPush addLocalNotification:request result:^(id result, NSError *error) {};

设置角标(setBadge)

/**
 设置角标值到Mob服务器
 本地先调用setApplicationIconBadgeNumber函数来显示角标,再将该角标值同步到Mob服务器,
 @param badge 新的角标值(会覆盖服务器上保存的值)
 */
+ (void)setBadge:(NSInteger)badge;

/**
 清除角标,但不清空通知栏消息
 */
+ (void)clearBadge;

示例代码

[MobPush setBadge:8];

[MobPush clearBadge];

打开和关闭远程推送(stopPush)

/**
 关闭远程推送(应用内推送和本地通知不受影响,只关闭远程推送)
 */
+ (void)stopPush;

/**
 打开远程推送
 */
+ (void)restartPush;

示例代码

[MobPush stopPush];

[MobPush restartPush];

应用处于前台时设置推送消息的提示类型(setAPNsShowForegroundType)

/**
 设置应用在前台有 Badge、Sound、Alert 三种类型,默认3个选项都有,iOS 10 以后设置有效。
 如果不想前台有 Badge、Sound、Alert,设置 MPushAuthorizationOptionsNone
 @param type 类型
 */
+ (void)setAPNsShowForegroundType:(MPushAuthorizationOptions)type;

示例代码

//设置后,应用在前台时不展示通知横幅、角标、声音。(iOS 10 以后有效,iOS 10 以前本来就不展示)
[MobPush setAPNsShowForegroundType:MPushAuthorizationOptionsNone];

指定删除收到的本地推送(removeNotificationWithIdentifiers

/**
 删除指定的推送通知(可以删除未发送或者已经发送的本地通知)
 @param identifiers 推送请求标识数组,为nil,删除所有通知
 */
+ (void)removeNotificationWithIdentifiers:(NSArray  *)identifiers;

示例代码

[MobPush removeNotificationWithIdentifiers:nil];

推送打开指定应用内指定页面(initWithMobPushScene)

后台配置

如果开发者想要对通知消息进行点击跳转到app内指定页面的操作,可以在开发者管理后台打开配置开关和参数设置。

Scheme地址:为开发者自定义的控制器路径。

传递参数:为跳转控制器的初始化参数。

代码配置

开发者需要在自己的应用内对所跳转的控制器进行相关代码设置。如下:(可参照demo中PushViewController.m) 参考链接(可参考示例代码也可以参考链接去设置): https://www.jianshu.com/p/9abb125b5456

/**
 设置控制器路径
 @return 控制器路径
 */
+ (NSString *)MobPushPath;

/**
 初始化场景参数

 @param params 场景参数
 @return 控制器对象
 */
- (instancetype)initWithMobPushScene:(NSDictionary*)params;

示例代码

#import 

// 还原标识ios可以自定义在对应vc中实现如下还原代码
+ (NSString *)MobPushPath
{
    return @"mlink://com.mob.mobpush.link";
}

//点击推送场景还原页面参数
- (instancetype)initWithMobPushScene:(NSDictionary *)params
{
    if (self = [super init])
    {

    }
    return self;
}

富媒体推送使用(MobPushServiceExtension)

添加 MobPushServiceExtension 依赖库

设置 Notification Service 最低运行版本为 10.0:

开启富媒体地址Http访问支持

使用 MobPushServiceExtension 进行富媒体推送

在 NotificationService.m 文件中,导入 MobPushServiceExtension 的头文件:

#import 

进入MobPush开发者后台通过url(带有后缀格式的文件地址)或者文件的方式发送富媒体通知。(必须勾选mutable-content选项)

调用handelNotificationServiceRequestUrl方法。接收到 APNs 通知后,SDK 判断是否有富媒体资源request.content.userInfo[@“attachment”],如果富媒体资源存在则SDK下载资源,下载完成后以 Block 方式回调返回 attachments 资源数组对象和error错误信息。

示例代码

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {

self.contentHandler = contentHandler;

self.bestAttemptContent = [request.content mutableCopy];

#pragma mark ----将APNs信息交由MobPush处理----

NSString * attachUrl = request.content.userInfo[@“attachment”];

[MobPushServiceExtension handelNotificationServiceRequestUrl:attachUrl withAttachmentsComplete:^(NSArray *attachments, NSError *error) {

if (attachments.count > 0) {

self.bestAttemptContent.attachments = attachments; self.contentHandler(self.bestAttemptContent);

        }else
       {
 self.contentHandler(self.bestAttemptContent);

        }

    }];
}

多媒体大小限制

自定义推送声音

将声音文件拖入到项目中,在MobPush后台或者接口传入对应声音文件名称即可

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1382

    浏览量

    60990
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3321

    浏览量

    149166
  • SDK
    SDK
    +关注

    关注

    3

    文章

    966

    浏览量

    44696
收藏 人收藏

    评论

    相关推荐

    Android端自定义铃声 MobPush对安卓端自定义铃声的教程

    如何为APP推送设置独特的通知铃声呢?本次带来的是MobPush对安卓端自定义铃声的教程,快来看看吧~
    的头像 发表于 10-21 15:34 812次阅读
    Android端自定义铃声 <b class='flag-5'>MobPush</b>对安卓端自定义铃声的教程

    iEST527车联网OBD智能终端 SDK for iOS 说明

    iEST527车联网OBD智能终端SDK for iOS 说明iEST527 车联网OBD 智能终端支持iPhone4S、iPhone5、iPhone5S、iPad 等带有BT4.0 蓝牙功能
    发表于 01-11 17:31

    基于阿里云移动推送的移动应用推送模式最佳实践

    分配的唯一ID,可以通过阿里云移动推送SDK提供的接口获取 点此阅读原文:http://click.aliyun.com/m/43047/一、概念以下概念对应系统设计时的语义,对于如何合理使用移动
    发表于 03-02 11:48

    移动车牌识别SDK算法

    安卓车牌识别 ios车牌识别 移动车牌识别 手机车牌识别 车牌识别sdk 前端车牌识别SDK算法同行业中,别人标配有的产品我有,别人没有
    发表于 05-17 22:55

    SDKAPI、Open API有什么区别(iot开发平台)

    ,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。API是接口的一种,在程序交互中具有重要的作用,而SDKAPI有着密不可分的关系。[ SDK的概念]
    发表于 07-09 15:32

    SDKAPI、Open API有什么区别(iot开发平台)

    ,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。API是接口的一种,在程序交互中具有重要的作用,而SDKAPI有着密不可分的关系。[ SDK的概念]
    发表于 07-09 19:17

    OpenHarmony SDK只支持API8和API9吗?

    1、OpenHarmony SDK api版本只支持8和9么,真机是6种情况是不是不能使用openharmony调试了呢?2、HarmonyOS Legacy SDK 与OPenharmony
    发表于 04-26 10:57

    MobPush丨Android端SDK API

    描述:添加推送监听,可监听接收到的自定义消息(透传消息)、通知消息、通知栏点击事件、别名和标签变更操作。
    的头像 发表于 08-11 16:10 539次阅读
    <b class='flag-5'>MobPush</b>丨Android端<b class='flag-5'>SDK</b> <b class='flag-5'>API</b>

    SDKAPI 在视频环境中的区别

    现在,视频API 或视频SDK 不一定是每个工具本身的一个类别。相反,它们是创建的APISDK,旨在帮助您与并非从头开始构建的视频平台进行交互和扩展。
    发表于 11-25 09:34 483次阅读

    MobPush Android SDK 厂商推送限制

    概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制,当请求超过限制且已配置厂商回执时,MobPush会采取以下措施: 当开发者推送请求超过厂商配额时,
    的头像 发表于 08-02 12:24 497次阅读
    <b class='flag-5'>MobPush</b> Android <b class='flag-5'>SDK</b> 厂商<b class='flag-5'>推送</b>限制

    MobPush iOS SDK iOS实时活动

    各种事情的进展, MobPushSDK iOS 4.0.3版本已完成适配,可根据文档对应使用。 集成步骤 添加依赖库 ActivityKit.fareworkSwiftUI.farework 配置
    的头像 发表于 08-04 11:33 362次阅读
    <b class='flag-5'>MobPush</b> <b class='flag-5'>iOS</b> <b class='flag-5'>SDK</b> <b class='flag-5'>iOS</b>实时活动

    Mobpush与A/B测试:覆盖多应用场景下的精细化运营神器

    APP推送具有”直达用户,实时互动“的特性,但如何选择合适的推送页面、推送文案、推送时间仍然困扰着一些APP运营者。Mobpush自带的A/
    的头像 发表于 09-14 10:46 176次阅读
    <b class='flag-5'>Mobpush</b>与A/B测试:覆盖多应用场景下的精细化运营神器

    Mobpush上线跨时区推送功能,助力中国开发者应用出海

    当前“不出海,就会出局”成为越来越多企业的共识,但出海应用如何实现跨时区推送长期以来困扰着应用开发者。因此MobPush智能推送服务于近期上线了全球多时区推送解决方案,支持多时区定时、
    的头像 发表于 09-21 10:48 211次阅读
    <b class='flag-5'>Mobpush</b>上线跨时区<b class='flag-5'>推送</b>功能,助力中国开发者应用出海

    Android推送问题排查技巧 针对MobPush安卓端推送问题的解决办法

    针对MobPush智能推送服务在使用过程中可能出现的问题,本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送
    的头像 发表于 10-21 15:41 400次阅读
    Android<b class='flag-5'>推送</b>问题排查技巧  针对<b class='flag-5'>MobPush</b>安卓端<b class='flag-5'>推送</b>问题的解决办法

    MobPush:Android SDK 集成指南

    MobPush是一款旨在提供一站式解决方案的智能推送开发者工具,可以有效提高用户参与度和粘性,从而带来更多的业务效益,以下是最新版MobPush: Android SDK集成指南。
    的头像 发表于 02-02 15:51 282次阅读
    <b class='flag-5'>MobPush</b>:Android <b class='flag-5'>SDK</b> 集成指南