美文网首页
远程推送

远程推送

作者: 7分醉 | 来源:发表于2016-05-25 10:54 被阅读50次

    当服务端远程向APNS推送至一台离线的设备时,苹果服务器Qos组件会自动保留一份最新的通知,等设备上线后,Qos将把推送发送到目标设备上

    远程推送的基本过程

    1、客户端的app需要将用户的UDID和app的bundleID发送给apns服务器,进行注册,apns将加密后的device Token返回给app
    2、app获得device Token后,上传到公司服务器
    3、当需要推送通知时,公司服务器会将推送内容和device Token一起发给apns服务器
    4、apns再将推送内容送到客户端上

    创建证书的流程:

    1、打开钥匙串,生成CertificateSigningRequest.certSigningRequest文件
    2、将CertificateSigningRequest.certSigningRequest上传进developer,导出.cer文件
    3、利用CSR导出P12文件
    4、需要准备下设备token值(无空格)
    5、使用OpenSSL合成服务器所使用的推送证书

    本地app代码参考

    1、注册远程通知

    • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions//中注册远程通知
      {
      [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
      }

    2、实现几个代理方法:

    zterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    {
    //获取设备的deviceToken唯一编号
    NSLog(@"deviceToken=%@",deviceToken);
    NSString *realDeviceToken=[NSString stringWithFormat:@"%@",deviceToken];
    //去除<>
    realDeviceToken = [realDeviceToken stringByReplacingOccurrencesOfString:@"<" withString:@""];
    realDeviceToken = [realDeviceToken stringByReplacingOccurrencesOfString:@">" withString:@""];
    NSLog(@"realDeviceToken=%@",realDeviceToken);
    [[NSUserDefaults standardUserDefaults] setValue:realDeviceToken forKey:@"DeviceToken"]; //要发送给服务器
    }

    //获取令牌出错
    -(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    {
    //注册远程通知设备出错
    NSLog(@"RegisterForRemoteNotification error=%@",error);
    }
    //在应用在前台时受到消息调用
    -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
    //打印推送的消息
    NSLog(@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]):
    }

    相关文章

      网友评论

          本文标题:远程推送

          本文链接:https://www.haomeiwen.com/subject/exwzrttx.html