手机推送消息已经成为app必备的一项功能,通过app自带的手机推送消息可以轻松完成用户订单信息、app推广信息等消息的推送,是app运营必备的一项工具,也是增强用户黏性,提升app用户忠诚度的重要手段。如果app还没有接入消息推送功能,在此推荐一款免费的SDK产品——MobPush SDK,只需要将SDK植入app就能迅速集成消息推送功能,具体的接入流程如下:
一、获取AppKey
二、下载SDK
下载解压后,如下图:
目录结构
(1)Sample:演示Demo。
(2)SDK:集成项目时,只需导入此文件夹即可。具体说明在里面的2个文件夹:
Required:必要的依赖库(必要)。
MobPush:MobPush 和 MobPushServiceExtension的静态库。
三、导入SDK
(1)手动下载SDK导入
解压下载的ZIP包,将解压后的SDK添加到项目中。
注意:该步骤中添加时,请选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。
(2)pod导入
1、首先 cd 至项目的根目录,执行 pod setup;
2、按需在 Podfile 文件中添加命令:
pod 'mob_pushsdk'
3、如果之前没有安装过,第一次使用请先执行
安装库:pod install
如果之前已经安装过,那只需要再执行
更新库:pod update
四、添加项目依赖库
必须添加的依赖库如下:
libc++.tbd
CoreLocation.framework
五、MobPush的初始化配置和功能接口。
5.1 配置AppKey和AppSecret
在项目的Info.plist中添加2个字段:MOBAppKey和MOBAppSecret,对应的值是在mob.com官方申请的应用的AppKey和AppSecret。
在Info.plist配置 Privacy – Location When In Use Usage Description 权限以及App Transport Security Settings。
证书里需要开通apns功能,然后在项目里设置,如下:
5.2 推送配置(以下代码具有通用性,可直接粘贴使用)
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中进行推送配置即可。
引入头文件:
#import <MobPush/MobPush.h>
调用方法:
// 设置推送环境
#ifdef DEBUG
[MobPush setAPNsForProduction:NO];
#else
[MobPush setAPNsForProduction:YES];
#endif
//MobPush推送设置(获得角标、声音、弹框提醒权限)
MPushNotificationConfiguration *configuration = [[MPushNotificationConfiguration alloc] init];
configuration.types = MPushAuthorizationOptionsBadge | MPushAuthorizationOptionsSound | MPushAuthorizationOptionsAlert;
[MobPush setupNotification:configuration];
5.3 功能接口调用
所有的功能接口都在MobPush.h中。
目前的MobPush的推送机制是:当应用在前台时,维持与推送服务器的长连接,实时接收推送消息;当应用在后台时,通过苹果APNs推送通知。
当应用处于前台,通过监听@“MobPushDidReceiveMessageNotification”服务,即可收到所有通知或者自定义消息的回调(应用处于后台不可接收该回调)。另外:点击通知栏消息也可以收到该回调。
先引入头文件:
#import <MobPush/MobPush.h>
再调用方法:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessage:) name:MobPushDidReceiveMessageNotification object:nil];
收到的消息数据可能是:1、UDP自定义消息,2、APNs,3、本地通知,4、点击推送消息。根据不同的类型做相应显示即可,具体例子如下:
// 收到通知回调
- (void)didReceiveMessage:(NSNotification *)notification
{
MPushMessage *message = notification.object;
switch (message.messageType)
{
case MPushMessageTypeCustom:
{// 自定义消息
}
break;
case MPushMessageTypeAPNs:
{// APNs 回调
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive)
{ // 前台
}
else
{ // 后台
}
}
break;
case MPushMessageTypeLocal:
{ // 本地通知回调
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, badge, sound);
}
break;
case MPushMessageTypeClicked:
{
NSLog(@"click the message!!!!!!!!!!!!");
}
break;
default:
break;
}
}
推送打开指定链接页面
如果开发者想要对通知消息进行点击跳转到H5页面的操作,可以在开发者管理后台配置url额外字段。
当用户点击带有url链接的通知时,需要在回调中获取message.msgInfo[@“url”],进行业务相关的跳转,可参考demo。
推送打开指定应用内指定页面
1. 如果开发者想要对通知消息进行点击跳转到app内指定页面的操作,可以在开发者管理后台打开配置开关和参数设置。
Scheme地址:为开发者自定义的控制器路径。
传递参数:为跳转控制器的初始化参数。
2.开发者需要在自己的应用内对所跳转的控制器进行相关代码设置。如下:(可参照demo中PushViewController.m)
引入头文件
#import <MobPush/UIViewController+MobPush.h>
#pragma mark ---实现分类的2个方法---
点击推送-场景还原路径,必须跟上面的Scheme地址保持一致
+(NSString *)MobPushPath
{
return @"path/xxxViewController";
}
点击推送-场景还原页面参数,params为开发者上面配置的参数
-(instancetype)initWithMobPushScene:(NSDictionary *)params
{
if (self == [super init]) {
self.params = params;
self.value1 = self.params[@"key1"];
self.value2 = self.params[@"key2"];
return self;
}
以上为iOS系统的接入介绍,Android系统及更多相关业务服务欢迎前往Mob官网(http://www.mob.com/product/mobpush)查看。