关于ios:MobPush-iOS-SDK-API

75次阅读

共计 6790 个字符,预计需要花费 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<NSString *> *)tags result:(void (^) (NSError *error))handler;

/**
 删除标签
 @param tags 须要删除的标签
 @param handler 后果
 */
+ (void)deleteTags:(NSArray<NSString *> *)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/MobPush.h>
[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 <NSString *> *)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 <MobPush/UIViewController+MobPush.h>

// 还原标识 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 <MobPushServiceExtension/MobPushServiceExtension.h>

进入 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 后盾或者接口传入对应声音文件名称即可

iOS 送达统计

开发者可应用MobPushServiceExtension SDK 上报 APNs 信息的达到状态。

集成办法:

  1. 1. 将 *_MobPushServiceExtension *_SDK 引入到您创立好的 Service Extension 工程中
  2. 2. 在办法 didReceiveNotificationRequest:withContentHandler:办法中调用 deliverNotificationRequest:MobAppSecret:with: 办法,以上报接管到的 APNs 音讯,在该办法的 block 回调中进行 APNs 音讯的显示
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler
{
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    __weak typeof(self) weakSelf = self;
    [MobPushServiceExtension deliverNotificationRequest:request MobAppSecret:@"appSecret" with:^{weakSelf.contentHandler(weakSelf.bestAttemptContent);
    }];
}

正文完
 0