博主也是第一次使用友盟消息推送,其中的配置我也不需要多讲,在这里附上iOS客户端友盟消息推送的集成文档,并讲讲个人使用心得

iOS友盟消息推送集成文档

这里既有集成文档的讲解步骤,还有证书配置的指南,只需要按照步骤集成即可。

1、配置服务器地址

友盟消息推送后台:适配iOS9,在info.plist文件中按截图配置

以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:

A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)

<key>NSAppTransportSecurity</key>
<dict><key>NSExceptionDomains</key><dict><key>msg.umengcloud.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key><true/><key>NSTemporaryExceptionMinimumTLSVersion</key><string>TLSv1.1</string></dict></dict>
</dict>

注:msg.umengcloud.com是友盟服务器的地址。

B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求

<key>NSAppTransportSecurity</key>
<dict><key>NSAllowsArbitraryLoads</key><true/>
</dict>

公司API接口后台消息推送:

在博主标记之处天上请求后台的URL地址即可

2、创建应用,在这里,上传证书时一定要按照文档上的步骤来执行,一般在iOS客户端的开发环境下进行消息推送测试,如果能够获取 Device Token 了,而是用友盟消息后台发送消息失败那就只有证书原因了。

3、推送使用(具体参考友盟官方文档)

请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret

  • 导入SDK

    • 下载 UMessage_Sdk_All_x.x.x.zip并解压缩
    • 导入插件

    所需SDK文件夹:UMessage_Sdk_x.x.x 
    请在你的工程目录结构中,右键选择Add->Existing Files…,选择这个文件夹。或者将这个文件夹拖入XCode工程目录结构中,在弹出的界面中勾选Copy items into destination group's folder(if needed), 并确保Add To Targets勾选相应的target。

  • 配置(可选)

    • SDK采用ARC管理内存,非ARC项目也是默认支持,如遇问题,请联系我们
    • 如果您使用了-all_load,可能需要添加libz的库:
      TARGETS-->Build Phases-->Link Binary With Libraries--> + -->libz.dylib

    说明 
    SDK支持iOS 4.3+

  • 添加代码
    打开*AppDelegate.m,依次按照以下步骤集成:

    • didFinishLaunchingWithOptions中的设置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{//set AppKey and AppSecret[UMessage startWithAppkey:@"your appkey" launchOptions:launchOptions];#if __IPHONE_OS_VERSION_MAX_ALLOWED >= _IPHONE80_
    if(UMSYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0"))
    {
        //register remoteNotification types (iOS 8.0及其以上版本)
        UIMutableUserNotificationAction *action1 = [[UIMutableUserNotificationAction alloc] init];
        action1.identifier = @"action1_identifier";
        action1.title=@"Accept";
        action1.activationMode = UIUserNotificationActivationModeForeground;//当点击的时候启动程序
        
        UIMutableUserNotificationAction *action2 = [[UIMutableUserNotificationAction alloc] init];  //第二按钮
        action2.identifier = @"action2_identifier";
        action2.title=@"Reject";
        action2.activationMode = UIUserNotificationActivationModeBackground;//当点击的时候不启动程序,在后台处理
        action2.authenticationRequired = YES;//需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeForeground;则这个属性被忽略;
        action2.destructive = YES;
        
        UIMutableUserNotificationCategory *categorys = [[UIMutableUserNotificationCategory alloc] init];
        categorys.identifier = @"category1";//这组动作的唯一标示
        [categorys setActions:@[action1,action2] forContext:(UIUserNotificationActionContextDefault)];
        
        UIUserNotificationSettings *userSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert
                                                                                     categories:[NSSet setWithObject:categorys]];
        [UMessage registerRemoteNotificationAndUserNotificationSettings:userSettings];
        
    } else{
        //register remoteNotification types (iOS 8.0以下)
        [UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
         |UIRemoteNotificationTypeSound
         |UIRemoteNotificationTypeAlert];
    }
#else
    
    //register remoteNotification types (iOS 8.0以下)
    [UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
     |UIRemoteNotificationTypeSound
     |UIRemoteNotificationTypeAlert];
    
#endif
    //for log
    [UMessage setLogEnabled:YES];
    
    return YES;
}

  • didRegisterForRemoteNotificationsWithDeviceToken中设置
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{[UMessage registerDeviceToken:deviceToken];
}

  • didReceiveRemoteNotification中设置
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{[UMessage didReceiveRemoteNotification:userInfo];
}

说明 
如需关闭推送,请使用[UMessage unregisterForRemoteNotifications]

#pragma mark - APP接收到远程推送- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{XNLog(@"收到新消息");//[UMessage didReceiveRemoteNotification:userInfo];//发送推送[[NSNotificationCenterdefaultCenter]postNotificationName:noti_refreshMsgByDidReceiveRemoteNotiobject:niluserInfo:nil];
}// 在 iOS8系统中,还需要添加这个方法。通过新的 API注册推送服务
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{[application registerForRemoteNotifications];
}//获取deviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{[UMessageregisterDeviceToken:deviceToken];
}// 当 DeviceToken获取失败时,系统会回调此方法
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{NSLog(@"DeviceToken获取失败,原因:%@",error);
}

4、添加测试设备,进入友盟消息后台,友盟消息后台

通过获取deviceToken

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{[UMessage registerDeviceToken:deviceToken];
}

5、发送测试消息

在开发环境之下,发送给所有人就是给添加过Device Token的测试设备进行发送消息;单播就是给特定的Device Token 发送消息

6、手机配置设置

通知—需要推送的APP— (按照自己的喜好设置,之前博主是因为开启了  “在锁定屏幕上显示“ ,所以发送消息之后一直接收不到,在锁屏上才能看到,去设置关闭之后,就能收到,要特别注意啊!)

在手机上查看,还可设置角标,点击通知就可进入发送通知消息的APP中

博主在这里附上两篇文章参考

http://bbs.umeng.com/thread-6191-1-1.html

http://bbs.umeng.com/thread-9355-1-1.html

iOS-友盟消息推送相关推荐

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

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

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

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

  3. 友盟消息推送SDK集成

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

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

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

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

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

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

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

  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友盟消息推送

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

  10. 玩转ios友盟远程推送,16年5月图文防坑版

    最近有个程序员妹子在做远程推送的时候遇到了困难,求助本帅.尽管本帅也是多彩的绘图工具,从没做过远程推送,但是本着互相帮助,共同进步的原则,本帅还是掩饰了自己的彩笔身份,耗时三天(休息时间)帮她完成了推 ...

最新文章

  1. CodeForces 901C Bipartite Segments
  2. 形态学图像处理学习笔记
  3. ELK学习9_ELK数据流传输过程_问题总结2
  4. yum安装apache及问题解决
  5. 计算机的微程序存放在dram,计算机组成与结构
  6. 【代码实现和训练】OCR技术——引入了Attention机制的crnn的印刷体汉字识别
  7. 5个免费的PPT模板下载网站
  8. 你知道怎么用STM32控制舵机吗?
  9. OSGB数据的纹理压缩
  10. Openg图像缓存及显存布局
  11. 影像信息提取之——DEM提取
  12. P1500 丘比特的烦恼
  13. 【练习八 结构体(强化)编程题4. 看电影】
  14. 农业农村部回应长江刀鱼将正式禁捕:已严重过度捕捞
  15. “Terra事件”再迎新进展 加密逃犯否认躲避当局,却下落不明?
  16. 查找2-n之间素数的个数
  17. 谷粒商城项目环境搭建
  18. JAVA 设计模式 备忘录模式
  19. xp安装java_在WindowsXP中,如何安装JAVA软件?
  20. EasyUI/TopJUI可编辑表格的列根据返回数据判断是使用 combobox 还是 numberbox

热门文章

  1. Android使用DX工具
  2. 佳能服务器维护,佳能产品维护工具(IJ Printer Assistant tool)
  3. Spring基础(持续更新)
  4. 如何用python实现地图数据可视化
  5. 用C语言对单词首字母进行排序,c语言单词排序
  6. 对于M1卡密钥控制字设置的总结
  7. 为什么企业需要两化融合管理体系?
  8. 食品如何寄国际快递到美国
  9. splitstring函数在C语言中的,C语言 字符串Split功能实现
  10. Arangodb——操作案例一