美文网首页
友盟消息推送SDK集成

友盟消息推送SDK集成

作者: 赵亦晨 | 来源:发表于2016-09-28 10:13 被阅读0次

    1.创建应用

    在友盟有账号的情况下(没有的请自行创建),创建应用之前需要去苹果开发者网站申请一个App ID和配置一个用于推送的APNs证书,下载并安装APNs推送证书后,打开钥匙串从这个证书导出一个.P12的证书文件并保存下来用于创建应用。对APNs证书不了解的可以参考宏创学院提供的证书设置指南:

    证书配置友盟官网

    首先在友盟消息推送功能中创建一个应用,上传我们的证书:

    创建好应用后进入应用详情页面,点击应用信息,可以看到我们的AppKey和App Master Secret,证书也可以在这里进行修改。

    2.下载iOS SDK

    友盟iOS SDK文档

    选择合适版本的SDK,下载下来之后解压压缩包,找到UMessage_Sdk_1.2.3(1.2.3为版本号,本文以1.2.3示例) 文件夹,里面就是我们需要的文件了(一个.a的库文件,一个.h头文件)。

    3.SDK基本功能集成

    将上述的UMessage_Sdk_1.2.3文件夹拖入工程,若工程的Other Linker Flag中设置了-all_load,则需要添加libz.dylib(iOS 9为lib.tbd)库

    在AppDelegate类中引入头文件Message.h,在AppDelegate.m的application:didFinishLaunchingWithOptions方法中初始化并注册友盟推送

    //初始化友盟推送

    [UMessagestartWithAppkey:@"568cd65be0f55ac5610017ea"launchOptions:launchOptions];

    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0

    //iOS 8之后使用此种方法注册

    if([[[UIDevicecurrentDevice]systemVersion]floatValue]>=8.0){

    //远程消息注册类型

    UIMutableUserNotificationAction*action1=[[UIMutableUserNotificationActionalloc]init];

    action1.identifier=@"action1_identifier";

    action1.title=@"Accept";

    action1.activationMode=UIUserNotificationActivationModeForeground;// 当点击的时候启动程序

    // 第二按钮

    UIMutableUserNotificationAction*action2=[[UIMutableUserNotificationActionalloc]init];

    action2.identifier=@"action2_identifier";

    action2.title=@"Reject";

    // 当点击的时候不启动程序,在后台处理

    action2.activationMode=UIUserNotificationActivationModeBackground;

    // 需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeForeground;则下面这个属性被忽略

    action2.authenticationRequired=YES;

    action2.destructive=YES;

    UIMutableUserNotificationCategory*categorys=[[UIMutableUserNotificationCategoryalloc]init];

    // 这组动作的唯一标示

    categorys.identifier=@"category1";

    [categorys setActions:@[action1,action2]forContext:(UIUserNotificationActionContextDefault)];

    UIUserNotificationTypetypes=UIUserNotificationTypeBadge

    |UIUserNotificationTypeSound

    |UIUserNotificationTypeAlert;

    UIUserNotificationSettings*userSettings=[UIUserNotificationSettingssettingsForTypes:types

    categories:[NSSetsetWithObject:categorys]];

    [UMessageregisterRemoteNotificationAndUserNotificationSettings:userSettings];

    }else{

    // 远程消息注册类型

    UIRemoteNotificationTypetypes=UIRemoteNotificationTypeBadge

    |UIRemoteNotificationTypeSound

    |UIRemoteNotificationTypeAlert;

    [UMessageregisterForRemoteNotificationTypes:types];

    }

    #else

    // iOS8.0之前使用此注册

    // 远程消息注册类型

    UIRemoteNotificationTypetypes=UIRemoteNotificationTypeBadge

    |UIRemoteNotificationTypeSound

    |UIRemoteNotificationTypeAlert;

    [UMessageregisterForRemoteNotificationTypes:types];

    #endif

    //打开调试日志

    [UMessagesetLogEnabled:YES];

    //不自动清空角标

    [UMessagesetBadgeClear:NO];

    //app发送渠道,默认为APP Store

    [UMessagesetChannel:nil];

    消息处理方法

    //向友盟注册deviceToken

    -(void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{

    //打印deviceToken

    NSLog(@"%@",[[[[deviceToken description]stringByReplacingOccurrencesOfString:@"<"withString:@""]stringByReplacingOccurrencesOfString:@">"withString:@""]

    stringByReplacingOccurrencesOfString:@" "withString:@""]);

    //注册deviceToken

    [UMessageregisterDeviceToken:deviceToken];

    }

    //注册远程通知失败

    -(void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error{

    NSLog(@"注册推送失败,具体错误:%@",error);

    }

    //收到推送消息时调用

    -(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo{

    [UMessagedidReceiveRemoteNotification:userInfo];

    }

    如果需要关闭推送,使用[UMessage unregisterForRemoteNotifications]

    4.测试与调试

    由于使用的是开发环境,所以推送的时候,需要在友盟注册的应用中添加一个测试设备用来测试。将前面的代码集成到项目里以后,使用真机运行项目,提示注册成功后可以在debug信息中看到获取的DeviceToken,将DeviceToken拷贝下来备用。

    得到DeviceToken后进入友盟网站,依次执行下面的操作:

    消息推送->立即使用->(你的应用)->开发环境->测试设备->添加测试设备

    设备添加完成后就可以进行推送调试了,在测试消息中点击新建测试消息:

    参数和提醒方式自行设置,发送方式选择单播,输入设备的DeviceToken,完成后提交即可:

    确认后等待推送消息发送即可




    至此,消息推送功能基本完成,更多功能请移步友盟iOS SDK集成指南。

    相关文章

      网友评论

          本文标题: 友盟消息推送SDK集成

          本文链接:https://www.haomeiwen.com/subject/lqphyttx.html