美文网首页iOS Process不错的iOS-TipsiOS点点滴滴
<二>iOS 开发Push的个人见解 图文并茂 详细

<二>iOS 开发Push的个人见解 图文并茂 详细

作者: 三十一_iOS | 来源:发表于2015-03-27 18:11 被阅读935次

    上篇文章我们讲了如何生成测试push的证书<一>iOS 开发Push的个人见解图文并茂详细到我写的想吐!!!!!!!!!,这篇我们来讲讲如何进行开发测试。

    这是单行代码
    工程中我们应该怎么写呢。

    首先在AppDelegate类中的

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    方法中加入如下代码,

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

    IOS8 新系统需要使用新的代码咯 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { //这里还是原来的代码 [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; }
    感谢HTC 提醒 当时写这个的时间没有考虑到ios8 demo就不修改了 想看的自己修改下
    这是注册push的方法。

    接下来在写入3个代理方法。

    
    /*!
     *  @author Yunis_song, 15-03-27 17:03:03
     *
     *  @brief  获取tonken
     *
     */
    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
    {
        NSLog(@"My token is: %@", deviceToken);
    }
    /*!
     *  @author Yunis_song, 15-03-27 17:03:28
     *
     *  @brief  获取token失败
     *
     */
    - (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
    {
        NSLog(@"Failed to get token, error: %@", error);
    }
    /*!
     *  @author Yunis_song, 15-03-27 17:03:45
     *
     *  @brief  推送的消息
     *
     */
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
        NSLog(@"userinfor is : %@", userInfo);
    }
    

    这3个方式分别是获取token成功,获取token失败,已经push的消息是什么。

    用我们上一篇生成的证书,在设备上运行。

    如果你不知道怎么运行,那我只能说少年,去百度!!!!!!

    运行后会首先弹一个框出来,是要求你允许进行推送服务的,选择允许。

    然后在

    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

    方法里面就可以得到token。记录这个token。

    下面推送要用到。

    到这里,最简单的推送编码我们已经完成,下面要去下一个关于推送的工程,来验证这个证书的正确性。

    下载工程。PushMeBaby

    在这个工程的ApplicationDelegate中有这样的代码。

    self.deviceToken = @"0dcb0f1d 18285786 acefb3c0 5709186f d45a107f 2a2aca28 4e5084b9 18f8e42e";
            self.payload = @"{\"aps\":{\"alert\":\"This is some fancy message.\", \"sound\":\"sound.aiff\",\"badge\":1}}";
            self.certificate = [[NSBundle mainBundle] pathForResource:@"aps_development" ofType:@"cer"];
    

    其中,

    self.deviceToken填写你刚才得到的token。

    self.certificate 这里是读取推送的cer文件,上一篇<一>iOS 开发Push的个人见解图文并茂详细到我写的想吐!!!!!!!!!我们已经得到了他,把它拖入到工程中。

    然后运行,会出现一个弹框。

    选择允许,出现程序如下,点击push不出意外,你刚才运行的手机就会接受到这个push的消息。

    如下:

    IMG_1547.PNG IMG_1548.PNG

    至此,简单的push大功告成。!

    Demo下载地址。测试工程
    推送工程

    欢迎转载,转载请注明出处。http://www.cnblogs.com/yunis/p/4372453.html
    http://www.jianshu.com/p/ad743caed9a7

    相关文章

      网友评论

      • 风往北吹_:学习了,求交流 : :no_mouth:
      • 杏仁丶:不管怎样,感觉看了您的文章使我对推送的认识更清楚了;现在的话大部分也都是用的极光推送,信鸽之类的吧,自己需要做的不用这么多了
        三十一_iOS:@杏仁丶 恩 现在小公司一般都不自己写推送了,第3方的推送做的还可以,就是不知道业务量上去后表现怎么样,不过那也是后台关心的事情了,客户端其实就这点东西。
      • 三十一_iOS:@HTC 饿。。。我修改下。。。
      • iHTCboy:你的文章还是有坑,ios8的推送不一样了→_→

      本文标题:<二>iOS 开发Push的个人见解 图文并茂 详细

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