写点什么

iOS 端海外推送最佳实现

  • 2024-07-03
    上海
  • 本文字数:1635 字

    阅读完需:约 5 分钟

iOS端海外推送最佳实现

推送注册

在 AppDelegate 里进行 SDK 初始化(也可以在 Info.plist 文件中进行 AppKey,AppSecret 的配置)并对通知功能进行注册以及设置推送的环境和切换海外服务器等,参考如下步骤代码:

#import <MobPush/MobPush.h>#import <MOBFoundation/MOBFoundation.h>- (BOOL)application:(UIApplication \*)application didFinishLaunchingWithOptions:(NSDictionary \*)launchOptions{
//1.初始化SDK [MobSDK registerAppKey:@"2e76e2e95a7ad" appSecret:@"e83de04bc9d850784ca01b5fcfbc886e"]; //2.上传隐私状态 [MobSDK uploadPrivacyPermissionStatus:YES onResult:^(**BOOL** success) {}];
//3.设置推送环境 如果为开发状态设置为 NO; 如果为生产状态,应改为 YES [MobPush setAPNsForProduction:NO];
//4.设置地区:regionId 默认0(国内),1:海外 [MobPush setRegionID:1];
//5.MobPush推送设置(获得角标、声音、弹框提醒权限) MPushNotificationConfiguration *configuration = [[MPushNotificationConfiguration alloc] init]; configuration.types = MPushAuthorizationOptionsBadge | MPushAuthorizationOptionsSound | MPushAuthorizationOptionsAlert; [MobPushsetupNotification:configuration];
}
复制代码

添加推送监听

同时可以在 AppDelegate 里注册监听,可以监听到推送消息的到达和点击,参考代码如下:

- (BOOL)application:(UIApplication \*)application didFinishLaunchingWithOptions:(NSDictionary \*)launchOptions{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessage:) name:MobPushDidReceiveMessageNotification object:nil];

}
复制代码

接收回调处理

在回调中处理接收到的 MobPush 的通知监听,需要注意如果应用处于后台或者杀死,是不会走 APNS 回调的,需要点击通知消息才能触发被点击的回调,参考代码如下:

// 收到通知回调

- (void)didReceiveMessage:(NSNotification *)notification  {  MPushMessage *message = notification.object;
// 推送相关参数获取示例请在各场景回调中对参数进行处理// NSString *body = message.notification.body;
// NSString *title = message.notification.title;// NSString *subtitle = message.notification.subTitle;// NSInteger badge = message.notification.badge;// NSString *sound = message.notification.sound;// NSLog(@"收到通知:{\nbody:%@,\ntitle:%@,\nsubtitle:%@,\nbadge:%ld,\nsound:%@,\n}",body, title, subtitle, (long)badge, sound);switch (message.messageType){case MPushMessageTypeCustom:{// 自定义消息回调}break;case MPushMessageTypeAPNs:{// APNs回调}break;case MPushMessageTypeLocal:{// 本地通知回调
}break;case MPushMessageTypeClicked:{// 点击通知回调
}default:break;}
复制代码

注意海外推送与国内推送 SDK 是一样的,不区分 SDK 版本,需要注意的是海外需要增加以下接口切换到海外服务器,另外目前 4.x 版本只支持 APNS 厂商通道推海外,TCP 通道不支持。

[MobPush setRegionID:1];
复制代码

使用开发者后台进行推送

登陆我们的后台,然后打开已注册的应用,添加 MobPush 产品之后,进行 iOS 设置,上传证书,Bundle id 等信息,如下图:



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



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



注意:选择的推送环境需要和代码里设置的推送环境,安装的包的环境,这 3 处的环境必须要一致。

使用 API 接口进行推送

接口:http://abroad.api.push.mob.com/v3/push/createPush

具体的传参可以参考国内接口传参:参考这里

可以使用 Postman 测试,例如:




注: API 接口里的 iosProduction 参数是设置推送环境参数,与客户端代码设置的推送环境以及安装的包的环境一致。另推送可以选择在开发者后台进行推送或者是调用 API 接口进行推送,任选其一即可。

发布于: 1 小时前阅读数: 6
用户头像

还未添加个人签名 2019-05-08 加入

还未添加个人简介

评论

发布
暂无评论
iOS端海外推送最佳实现_MobTech袤博科技_InfoQ写作社区