APNs 远程推送

APNs 远程推送

生成推送证书

    1.登陆开发者中心: https://developer.apple.com

    2.点开 certificates identifiers proversionprofiles 里面

    3.创建APPID. 勾选 push notification servers服务

    4.搜索刚才创建的APPID, 点击edit, 配置证书, 下载双击

   5.证书创建完成, 钥匙链内右键导出p12

    1.App key

    2.真机测试

注: 推送消息的实现只能在真机中实现

添加框架和极光推送的APService.h及SDK(可以再极光推送中下载JPush Demo)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound|
        UIUserNotificationTypeAlert) categories:nil];
    [APService setupWithOption:launchOptions];
    return YES;
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    NSLog(@"%@", deviceToken);
    [APService registerDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    // Required
    [APService handleRemoteNotification:userInfo];
}

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void
                        (^)(UIBackgroundFetchResult))completionHandler {
    [APService handleRemoteNotification:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
    NSLog(@"收到通知:%@", userInfo);

    ViewController *VC = [[ViewController alloc] init];
        VC.string = userInfo[@"aps"][@"alert"];
    NSLog(@"S: %@", VC.string);
    [[NSNotificationCenter defaultCenter] postNotificationName:VC.string object:nil userInfo:@"str"];
}

- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}

- (NSString *)logDic:(NSDictionary *)dic {
    if (![dic count]) {
        return nil;
    }
    NSString *tempStr1 =
    [[dic description] stringByReplacingOccurrencesOfString:@"\\u"
                                                 withString:@"\\U"];
    NSString *tempStr2 =
    [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
    NSString *tempStr3 =
    [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
    NSString *str =
    [NSPropertyListSerialization propertyListFromData:tempData
                                     mutabilityOption:NSPropertyListImmutable
                                               format:NULL
                                     errorDescription:NULL];
    NSLog(@"str %@", str);

    return str;
}
时间: 2024-08-27 00:59:53

APNs 远程推送的相关文章

iOS APNS远程推送

                    真机运行远程推送dome,然后得到下面的device - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // 注册远程推送 [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIR

APNS远程推送证书的申请和制作——详细解析

发表于6个月前(2014-08-04 17:57)   阅读(1708) | 评论(7) 4人收藏此文章, 我要收藏 赞3 摘要 我们的手机每天会被很多通知轰炸,那么,这些通知是怎么弄出来的呢,下面为大家详细解析 APNS 远程推送 目录[-] 一.远程推送的原理 二.在程序上注册远程通知 三.申请推送证书 1.申请本地证书: 2.在开发者网站上申请证书 四.申请描述文件(开发和发布描述文件) 五.为服务器制作证书 1.准备p12文件 2.将下载的证书制作成.pem 文件 3.将.p12 证书制

IOS本地,APNS远程推送(具体过程)

添加本地推送 ///本地添加 -(void)addLocalPushNotification:(UIButton*)sender; { NSLog(@"%s",__FUNCTION__); UILocalNotification* localNotification=[[UILocalNotification alloc]init]; if (localNotification) { //设置时间当前加20秒 NSDate* pushDate=[NSDate dateWithTimeI

APNS远程推送(转发)

/*****************************************2************************************************/ /*****************************************3************************************************/ /*****************************************4*********************

APNS 远程推送通知 PUSH deviceToken

服务器向客户端推送消息: 当应用程序推到后台,或者根本就没有运行(我们的代码无能为力)      如果这种情况之下,应用程序想和用户交互(传统的做法 不可能) 推送 APNS:Apple Push Notification Service deviceToken:标示某一台iPhone上的某一个应用程序 1.(用户必须确认需要收到推送消息)注册远程通知中心向APNS获取64位的字符串deviceToken 注册远程通知中心 [[UIApplication sharedApplication] r

ios远程推送的各种坑,啊吼吼吼~APNs

来源链接:http://blog.csdn.net/showhilllee/article/details/8631734?reload 远程推送写的最详细的就是这位啦,鉴于我反反复复搞了四五遍,我就不连字带图的转了,再也难不倒我╭(╯^╰)╮ 主要写各种坑: 1.证书Certificates 开发或者发布ipa肯定都申请过证书,不过当时真是迷迷糊糊的,拿着公司账号各种晕,里面一堆的id,带*的不带*的,各种证书也不知道哪些能用哪些不能用.反正就是各种试,能用的赶紧用了再说. 在这里,先说一下,

iOS远程推送,从机制到实现,尽量详细

本人第一次写博客,写的不好的地方大家请见谅. 本文主要参考了http://blog.csdn.net/showhilllee/article/details/8631734,感谢showhilllee详细的讲解.因为在做的过程中有些自己的理解和变化,所以自己再写一遍关于推送的详细博客. 本文分为四部分介绍: 一.解释APNS远程推送 二.配置推送的证书 三.导出自己服务器可用的证书 四.代码实现设备注册推送.获取推送消息 好了,现在开始正式讲解推送. 一.首先上一个老图,苹果很早就给大家的,推送

iOS的推送机制APNs:本地推送&远程推送

本地推送: 本地推送主要应用在备忘录,闹钟等本地的,基于时间定时的消息提醒.本篇不做详细描述. 远程推送:APNS(苹果推送通知服务) iOS远程推送机制的原理及流程: 注册推送(橙色部分):若该App允许接收推送消息,则先要在代码中注册远程推送.注册推送后,iOS带着设备序列号去请求ANPS而获得deviceToken.然后App把deviceToken发送给我们App的服务器.因为若服务器有消息给我们推送时,它会把要发送的消息和deviceToken按照一定的格式一并打包发送给ANPS服务器

本地推送 和 远程推送

今天看了一下远程推送,之前写的软件一直没加进这个功能,下个软件貌似要求有这个,所以问了一下度娘,也是有那么一丢丢的小麻烦吧,因为他没跳推送都必须经过苹果APNS,然后再发送给每个安装了软件的用户~~~ ///本地添加 void ,__FUNCTION__); if timeZone是UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发.*/ ofType:@]; fo