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方法中初始化并注册友盟推送
  1. //初始化友盟推送
  2. [UMessage startWithAppkey:@"568cd65be0f55ac5610017ea" launchOptions:launchOptions];
  3. #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0
  4. //iOS 8之后使用此种方法注册
  5. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
  6. //远程消息注册类型
  7. UIMutableUserNotificationAction *action1 = [[UIMutableUserNotificationAction alloc] init];
  8. action1.identifier = @"action1_identifier";
  9. action1.title=@"Accept";
  10. action1.activationMode = UIUserNotificationActivationModeForeground;// 当点击的时候启动程序
  11. // 第二按钮
  12. UIMutableUserNotificationAction *action2 = [[UIMutableUserNotificationAction alloc] init];
  13. action2.identifier = @"action2_identifier";
  14. action2.title = @"Reject";
  15. // 当点击的时候不启动程序,在后台处理
  16. action2.activationMode = UIUserNotificationActivationModeBackground;
  17. // 需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeForeground;则下面这个属性被忽略
  18. action2.authenticationRequired = YES;
  19. action2.destructive = YES;
  20. UIMutableUserNotificationCategory *categorys = [[UIMutableUserNotificationCategory alloc] init];
  21. // 这组动作的唯一标示
  22. categorys.identifier = @"category1";
  23. [categorys setActions:@[action1,action2] forContext:(UIUserNotificationActionContextDefault)];
  24. UIUserNotificationType types = UIUserNotificationTypeBadge
  25. | UIUserNotificationTypeSound
  26. | UIUserNotificationTypeAlert;
  27. UIUserNotificationSettings *userSettings = [UIUserNotificationSettings settingsForTypes:types
  28. categories:[NSSet setWithObject:categorys]];
  29. [UMessage registerRemoteNotificationAndUserNotificationSettings:userSettings];
  30. } else {
  31. // 远程消息注册类型
  32. UIRemoteNotificationType types = UIRemoteNotificationTypeBadge
  33. | UIRemoteNotificationTypeSound
  34. | UIRemoteNotificationTypeAlert;
  35. [UMessage registerForRemoteNotificationTypes:types];
  36. }
  37. #else
  38. // iOS8.0之前使用此注册
  39. // 远程消息注册类型
  40. UIRemoteNotificationType types = UIRemoteNotificationTypeBadge
  41. | UIRemoteNotificationTypeSound
  42. | UIRemoteNotificationTypeAlert;
  43. [UMessage registerForRemoteNotificationTypes:types];
  44. #endif
  45. //打开调试日志
  46. [UMessage setLogEnabled:YES];
  47. //不自动清空角标
  48. [UMessage setBadgeClear:NO];
  49. //app发送渠道,默认为APP Store
  50. [UMessage setChannel:nil];
  • 消息处理方法
  1. //向友盟注册deviceToken
  2. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  3. //打印deviceToken
  4. NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""]
  5. stringByReplacingOccurrencesOfString: @" " withString: @""]);
  6. //注册deviceToken
  7. [UMessage registerDeviceToken:deviceToken];
  8. }
  9. //注册远程通知失败
  10. - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  11. NSLog(@"注册推送失败,具体错误:%@", error);
  12. }
  13. //收到推送消息时调用
  14. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
  15. [UMessage didReceiveRemoteNotification:userInfo];
  16. }
  • 如果需要关闭推送,使用[UMessage unregisterForRemoteNotifications]

4.测试与调试

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

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

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

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

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

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

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

友盟消息推送SDK集成相关推荐

  1. 友盟 集成到 java web_友盟消息推送SDK集成

    1.创建应用 在友盟有账号的情况下(没有的请自行创建),创建应用之前需要去苹果开发者网站申请一个App ID和配置一个用于推送的APNs证书,下载并安装APNs推送证书后,打开钥匙串从这个证书导出一个 ...

  2. 友盟消息推送服务器demo,umeng友盟消息推送功能集成

    umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...

  3. Android:Umeng(友盟)消息推送(二)

    在已集成友盟统计的情况下:Android:Umeng(友盟)数据统计(一) 第一步: 个人中心---U-Push(消息推送)---添加新应用---从已有应用中添加  如图: 获得Appkey和secr ...

  4. 友盟+消息推送U-Push为无他相机 提供快速、高并发的推送服务

    在"颜值即正义"的今天,相机类App已经成为让人变美的刚需类应用工具.自拍分享.假日游玩.美食推荐......相机类App已经深入到用户的生活点滴.瘦脸,拉腿,换滤镜,加贴纸,一张 ...

  5. 友盟推送 php,PHP 友盟消息推送类

    这篇文章主要介绍了关于PHP 友盟消息推送类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下<?php /** * 友盟消息 安卓 IOS 推送类 * */ class Allie ...

  6. Android友盟消息推送

    1. 申请应用消息推送账号 集成SDK之前, 请在 http://message.umeng.com 创建应用,获取应用对应的AppKey和Umeng Message Secret.并将自己服务器ip ...

  7. 友盟消息推送服务器demo,友盟消息推送总结

    分享的文章连接 1  http://blog.csdn.net/shenjie12345678/article/details/41120637 2:http://dev.umeng.com/push ...

  8. 友盟消息推送java服务端

    基本概念 appkey:应用唯一标识 app_master_secret:服务器Key. device_token: 友盟后台对设备的唯一标识.注意, Android的device_token是44位 ...

  9. android 友盟推送获取不到devicetoken,使用友盟消息推送中遇到的哪些问题--索引(开发者必读)...

    友盟推送服务器容量如何?每天耗电.耗流量多少?开发者自己的推送如何与友盟推送系统进行通讯?用户如何关闭推送服务?集成中有哪些坑?等等等等,汇总贴,供参考. 先来介绍下友盟推送有啥功能吧. 第一,支持多 ...

最新文章

  1. 云ERP真的靠谱吗?
  2. 移动端自适应布局之-----rem单位的使用
  3. css样式继承规则详解
  4. 防止MDI子窗体多次实例化的代码
  5. BootStrap学习(6)_模态框
  6. 使用 user agent 判断微信内置浏览器版本信息
  7. 线性代数相关知识点回顾
  8. 把握linux内核设计思想(十二):内存管理之slab分配器
  9. npm publish 发布一个 Angular 库的时候报错
  10. SAP Fiori Elements save按钮的实现细节
  11. 西北冬日的校园很静谧,却不失韵味,因为有我们美好的青春!
  12. [VTK]VTK的三维模型保存、读取之保存为vtk格式
  13. Git中的“起源”是什么?
  14. 最大子数组问题,分治策略基础,百度面试题
  15. 【DBN】Deep Belief Network简介
  16. linux多CPU进程负载均衡解析
  17. 【2021-12-17】css反爬+pytesseract文字识别
  18. 【线性代数】矩阵分解(Matrix Factorization)笔记:非负矩阵分解
  19. python不是5的倍数_查找所有低于1000的数字之和,这是Python中3或5的倍数
  20. 稻盛和夫《调动员工积极性的七个关键》读书笔记

热门文章

  1. 深度系统linux15.3 32位下载,Deepin 15.3 i386官方正式版(32位)
  2. Race Conditions/条件竞争
  3. NOIP2011普及组复赛 解题分析
  4. 关于亚信安全防毒墙网络版客户端的退出与卸载(2020年亲测有效,经验分享)
  5. 游戏手柄HID描述符
  6. php闪字生成,在线闪字
  7. go语言基础精修(尚硅谷笔记)
  8. W5500寄存器描述
  9. office2019卸载组件_Office2019 软件安装教程 = 安卓 + Windows
  10. 鲁迅关于改变的名人名言