概述
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
+關注
關注
2文章
1501瀏覽量
62017 -
iOS
+關注
關注
8文章
3395瀏覽量
150607 -
SDK
+關注
關注
3文章
1036瀏覽量
45941
發布評論請先 登錄
相關推薦
評論