iOS-友盟消息推送
博主也是第一次使用友盟消息推送,其中的配置我也不需要多讲,在这里附上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-友盟消息推送相关推荐
- 友盟推送 php,PHP 友盟消息推送类
这篇文章主要介绍了关于PHP 友盟消息推送类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下<?php /** * 友盟消息 安卓 IOS 推送类 * */ class Allie ...
- 友盟 集成到 java web_友盟消息推送SDK集成
1.创建应用 在友盟有账号的情况下(没有的请自行创建),创建应用之前需要去苹果开发者网站申请一个App ID和配置一个用于推送的APNs证书,下载并安装APNs推送证书后,打开钥匙串从这个证书导出一个 ...
- 友盟消息推送SDK集成
1.创建应用 在友盟有账号的情况下(没有的请自行创建),创建应用之前需要去苹果开发者网站申请一个App ID和配置一个用于推送的APNs证书,下载并安装APNs推送证书后,打开钥匙串从这个证书导出一个 ...
- 友盟消息推送服务器demo,umeng友盟消息推送功能集成
umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...
- 友盟+消息推送U-Push为无他相机 提供快速、高并发的推送服务
在"颜值即正义"的今天,相机类App已经成为让人变美的刚需类应用工具.自拍分享.假日游玩.美食推荐......相机类App已经深入到用户的生活点滴.瘦脸,拉腿,换滤镜,加贴纸,一张 ...
- Android:Umeng(友盟)消息推送(二)
在已集成友盟统计的情况下:Android:Umeng(友盟)数据统计(一) 第一步: 个人中心---U-Push(消息推送)---添加新应用---从已有应用中添加 如图: 获得Appkey和secr ...
- 友盟消息推送服务器demo,友盟消息推送总结
分享的文章连接 1 http://blog.csdn.net/shenjie12345678/article/details/41120637 2:http://dev.umeng.com/push ...
- 友盟消息推送java服务端
基本概念 appkey:应用唯一标识 app_master_secret:服务器Key. device_token: 友盟后台对设备的唯一标识.注意, Android的device_token是44位 ...
- Android友盟消息推送
1. 申请应用消息推送账号 集成SDK之前, 请在 http://message.umeng.com 创建应用,获取应用对应的AppKey和Umeng Message Secret.并将自己服务器ip ...
- 玩转ios友盟远程推送,16年5月图文防坑版
最近有个程序员妹子在做远程推送的时候遇到了困难,求助本帅.尽管本帅也是多彩的绘图工具,从没做过远程推送,但是本着互相帮助,共同进步的原则,本帅还是掩饰了自己的彩笔身份,耗时三天(休息时间)帮她完成了推 ...
最新文章
- CodeForces 901C Bipartite Segments
- 形态学图像处理学习笔记
- ELK学习9_ELK数据流传输过程_问题总结2
- yum安装apache及问题解决
- 计算机的微程序存放在dram,计算机组成与结构
- 【代码实现和训练】OCR技术——引入了Attention机制的crnn的印刷体汉字识别
- 5个免费的PPT模板下载网站
- 你知道怎么用STM32控制舵机吗?
- OSGB数据的纹理压缩
- Openg图像缓存及显存布局
- 影像信息提取之——DEM提取
- P1500 丘比特的烦恼
- 【练习八 结构体(强化)编程题4. 看电影】
- 农业农村部回应长江刀鱼将正式禁捕:已严重过度捕捞
- “Terra事件”再迎新进展 加密逃犯否认躲避当局,却下落不明?
- 查找2-n之间素数的个数
- 谷粒商城项目环境搭建
- JAVA 设计模式 备忘录模式
- xp安装java_在WindowsXP中,如何安装JAVA软件?
- EasyUI/TopJUI可编辑表格的列根据返回数据判断是使用 combobox 还是 numberbox