iOS 消息推送 (待续)

来源:互联网 发布:游戏优化器 编辑:程序博客网 时间:2024/04/30 19:00

过程略,自己网上找,申请什么证书的基本上跟发布app差不多。


直接说代码:

一、你的App:


1. 你的App在初始化时,要注册:

//让设备知道我们想要收到推送通知
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];


2.实现以下函数,用于获取Device Token 和注册结果、以及处理消息

//Howard 2013-05-25
#pragma mark APS_BEGIN

//获取令牌
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
    NSLog( @"My token is %@", deviceToken );
}

//处理注册结果
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
    if( error )
    {
        NSLog(@"Failed to get token, error: %@ description:%@", error, [error localizedDescription]);
    }
}

//处理接收到的消息
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    
    NSLog( @"receive remote notification");
    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }
}
#pragma mark APS_END


3. 如果服务端推送过来的消息带有badge数字,app没运行时,图标上会显示这个数字(0除外),如果要让app运行后直接取消这个badge,

用这句:

//这一句是用来取消badge的
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];


4. 目前测试出,同一台设备,同一个app申请到的令牌(token)是一样的,(据说有效期是48小时,有待测试确认)。

  不同设备,一样的App,申请到的token是不一样的。


二、你的Provider(消息发送端)

啥也不说了,你就直接在网上下载PushMeBaby的源码吧,把device token改成你的就OK了。

或者看看这里:http://blog.csdn.net/h_o_w_e/article/details/8820461


5. iOS4 和 iOS6 在App未运行时,消息提示差别:

iOS4,直接消息弹框提示;iOS6,则是通过屏幕顶部下拉通知栏来提示




原创粉丝点击