使用友盟消息推送 php中遇到的哪些问题

友盟消息推送
时间: 20:31:37
&&&& 阅读:2427
&&&& 评论:
&&&& 收藏:0
标签:博主也是第一次使用友盟消息推送,其中的配置我也不需要多讲,在这里附上iOS客户端友盟消息推送的集成文档,并讲讲个人使用心得
这里既有集成文档的讲解步骤,还有证书配置的指南,只需要按照步骤集成即可。
1、配置服务器地址
友盟消息推送后台:适配iOS9,在info.plist文件中按截图配置
以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:
A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)
NSAppTransportSecurity
NSExceptionDomains
msg.umengcloud.com
NSIncludesSubdomains
NSTemporaryExceptionAllowsInsecureHTTPLoads
NSTemporaryExceptionMinimumTLSVersion
注:msg.umengcloud.com是友盟服务器的地址。
B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求
NSAppTransportSecurity
NSAllowsArbitraryLoads
公司API接口后台消息推送:
在博主标记之处天上请求后台的URL地址即可
2、创建应用,在这里,上传证书时一定要按照文档上的步骤来执行,一般在iOS客户端的开发环境下进行消息推送测试,如果能够获取 Device Token 了,而是用友盟消息后台发送消息失败那就只有证书原因了。
3、推送使用(具体参考友盟官方文档)
请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret
&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
[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.activationMode = UIUserNotificationActivationModeF//当点击的时候启动程序
UIMutableUserNotificationAction *action2 = [[UIMutableUserNotificationAction alloc] init];
//第二按钮
action2.identifier = @&action2_identifier&;
action2.activationMode = UIUserNotificationActivationModeB//当点击的时候不启动程序,在后台处理
action2.authenticationRequired = YES;//需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeF则这个属性被忽略;
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];
//register remoteNotification types (iOS 8.0以下)
[UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert];
//register remoteNotification types (iOS 8.0以下)
[UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert];
[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
& & NSLog(@&DeviceToken获取失败,原因:%@&,error);
4、添加测试设备,进入友盟消息后台,
通过获取deviceToken
- (void)application:(UIApplication&*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData&*)deviceToken
& & [UMessage&registerDeviceToken:deviceToken];
5、发送测试消息
在开发环境之下,发送给所有人就是给添加过Device Token的测试设备进行发送消息;单播就是给特定的Device Token 发送消息
6、手机配置设置
通知—需要推送的APP— (按照自己的喜好设置,之前博主是因为开启了 &“在锁定屏幕上显示“ ,所以发送消息之后一直接收不到,在锁屏上才能看到,去设置关闭之后,就能收到,要特别注意啊!)
在手机上查看,还可设置角标,点击通知就可进入发送通知消息的APP中
博主在这里附上两篇文章参考
标签:原文地址:http://blog.csdn.net/minggeqingchun/article/details/
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!友盟消息推送SDK集成 - 简书
友盟消息推送SDK集成
1.创建应用在友盟有账号的情况下(没有的请自行创建),创建应用之前需要去苹果开发者网站申请一个App ID和配置一个用于推送的APNs证书,下载并安装APNs推送证书后,打开钥匙串从这个证书导出一个.P12的证书文件并保存下来用于创建应用。对APNs证书不了解的可以参考宏创学院提供的证书设置指南:首先在友盟消息推送功能中创建一个应用,上传我们的证书:
创建好应用后进入应用详情页面,点击应用信息,可以看到我们的AppKey和App Master Secret,证书也可以在这里进行修改。
选择合适版本的SDK,下载下来之后解压压缩包,找到UMessage_Sdk_1.2.3(1.2.3为版本号,本文以1.2.3示例) 文件夹,里面就是我们需要的文件了(一个.a的库文件,一个.h头文件)。
将上述的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=UIUserNotificationActivationModeF// 当点击的时候启动程序// 第二按钮UIMutableUserNotificationAction*action2=[[UIMutableUserNotificationActionalloc]init];action2.identifier=@"action2_identifier";action2.title=@"Reject";// 当点击的时候不启动程序,在后台处理action2.activationMode=UIUserNotificationActivationModeB// 需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeF则下面这个属性被忽略action2.authenticationRequired=YES;action2.destructive=YES;UIMutableUserNotificationCategory*categorys=[[UIMutableUserNotificationCategoryalloc]init];// 这组动作的唯一标示categorys.identifier=@"category1";[categorys setActions:@[action1,action2]forContext:(UIUserNotificationActionContextDefault)];UIUserNotificationTypetypes=UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAUIUserNotificationSettings*userSettings=[UIUserNotificationSettingssettingsForTypes:typescategories:[NSSetsetWithObject:categorys]];[UMessageregisterRemoteNotificationAndUserNotificationSettings:userSettings];}else{// 远程消息注册类型UIRemoteNotificationTypetypes=UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeA[UMessageregisterForRemoteNotificationTypes:types];}#else// iOS8.0之前使用此注册// 远程消息注册类型UIRemoteNotificationTypetypes=UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeA[UMessageregisterForRemoteNotificationTypes:types];#endif//打开调试日志[UMessagesetLogEnabled:YES];//不自动清空角标[UMessagesetBadgeClear:NO];//app发送渠道,默认为APP Store[UMessagesetChannel:nil];消息处理方法//向友盟注册deviceToken-(void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{//打印deviceTokenNSLog(@"%@",[[[[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]由于使用的是开发环境,所以推送的时候,需要在友盟注册的应用中添加一个测试设备用来测试。将前面的代码集成到项目里以后,使用真机运行项目,提示注册成功后可以在debug信息中看到获取的DeviceToken,将DeviceToken拷贝下来备用。
得到DeviceToken后进入友盟网站,依次执行下面的操作:消息推送-&立即使用-&(你的应用)-&开发环境-&测试设备-&添加测试设备
设备添加完成后就可以进行推送调试了,在测试消息中点击新建测试消息:
参数和提醒方式自行设置,发送方式选择单播,输入设备的DeviceToken,完成后提交即可:
确认后等待推送消息发送即可
至此,消息推送功能基本完成,更多功能请移步友盟iOS SDK集成指南。
极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SDK在iOS8刚推出的时候跟进更新。在一定程度上来讲,能够体现极光推送的技术力量是比较强大的; 2.应用内消息提高了推送服务的及时性和可靠性,在、紧随当下追求应用...
分享的文章连接 1 http://blog.csdn.net/shenjie/article/details/;http://dev.umeng.com/push/ios/integration 重点解析: 1:如何获得友盟推送的AppK...
注:此文只现在已经不能适配iOS10了,iOS10推送采用了新的方法,做iOS9及以下的系统可读此篇文章。 最近公司项目升级重构(重写),除了本来我所负责的模块,最后临危受命接了推送(远程和本地)相关的模块,顺便把推送的相关知识复习了一遍。后期连续工作十几天加上最后一天的通...
友盟IOS版本的推送之前是基于OBJC写的,友盟官方提供的API也是基于OBJC。而swift2.0下集成友盟推送功能并没有相关API。
网上的资料零零散散有一些。 下面是我实现的swift2.0下集成友盟推送功能: 1:首先要在swift下实现。需要swift和OBJ...
这是一篇关于友盟推送的集成 1.首先,需要创建appid,创建的时候需要勾选push Notifications , bundeID要和工程名字保持一致,然后点击continue,之后继续创建,首先是开发证书,选中在电脑中自己导出的cer文件,cer文件的创建从钥匙串中导出...
《0-6岁从婴语到英语》(笔记一) 非英语专业的职场妈妈,在家陪伴孩子做英语启蒙是什么样的体验?一言以蔽之,难烦累。 本书作者恰好也是这样的身份,她碰到的现实问题是很多中国家庭的普遍问题,从某种意义上说,她的方法路径很具体参考意义。 作者实践的干货看这里: 以原版绘本、趣味...
今天,应好朋友之邀,给三个小学二年级学生的家庭上了一堂亲子绘本导读课。
这一堂课,让我看出了我们的小学低年级孩子的教育,尤其是家庭教育存在的问题。
我一直认为,对于小学低年级的孩子,给他多少知识不是最重要的,最重要的是让孩子的生命有一个&打开&的状态...
民国风热了好多年,林徽因啊徐志摩啊陆小曼啊,光是这几个人在朋友圈里粉与黑的风向转变就是几场大戏。 只是我不好这口。管他是才子佳人又或者绿茶、白莲,还不如就看看蒋晓云所谓的民国素人志,虽然小说均是杜撰却也能借此一窥现实,况且人物好歹都由她一个人做主,不会隔几天就有人来翻案,向...
最近两周一直很忙,各种工作,各种忙碌。我甚至都没有时间,没有心情好好坐下来喝杯茶,放空一会儿。 今天周五。下午过半,人声渐次稀落,心头徒生欢喜。 也许是习惯了一个人工作,一个人生活,我非常享受安静不被打扰的节奏。喜欢一切都在自己的计划和掌控里。年过四十,我已经不再渴望工作生...
今天尝试练习画不同角度的人体头像,画的好丑啊。。。不过好在确实能看出不同的角度,也算收获,那个人的画不是由丑到美的呀,(*∩_∩*) 今天用时1小时,距离1000小时还差959小时,加油!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!鐢垫?鐩磋揪
涓洪伩鍏嶉噸澶嶅洖绛旓紝璇峰ぇ瀹跺厛鏌ョ湅杩欑瘒鏁寸悊鐨勯棶棰橈紝鎴戜滑浼氬畾鏈熺淮鎶よ繖涓?笘瀛愶紒
鎵句笉鍒扮殑闂??璇峰彂璐达紝涓轰簡鏂逛究鏌ユ壘锛屼竴涓?笘瀛愬彧瑙e喅涓

我要回帖

更多关于 友盟消息推送 的文章

 

随机推荐