关于App远程推送和启动

来源:互联网 发布:中日合邦 知乎 编辑:程序博客网 时间:2024/06/05 08:42

iOS App启动时候   

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

//对应的对象为启动URL(NSURL)

NSURL *url = [launchOptionsobjectForKey:UIApplicationLaunchOptionsURLKey];

//对应启动的源应用程序的bundle ID (NSString)

 NSString *bundleId = [launchOptionsobjectForKey:UIApplicationLaunchOptionsSourceApplicationKey];

//由本地通知启动

UILocalNotification * localNotify = [launchOptionsobjectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

//由远程通知启动

 NSDictionary * userInfo = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];



App远程推送


扩展UIApplication+Addition.h

//是否注册

+ (BOOL)isPushRegistered

{

    UIApplication *application = [UIApplicationsharedApplication];

    if ([applicationrespondsToSelector:@selector(isRegisteredForRemoteNotifications)])

    {

        return [applicationisRegisteredForRemoteNotifications];

    }

    else

    {

        return application.enabledRemoteNotificationTypes !=UIRemoteNotificationTypeNone;

    }

}


//注册push

+ (void)registerPush

{

    UIApplication *application = [UIApplicationsharedApplication];

    

    //-- Set Notification

    if ([applicationrespondsToSelector:@selector(isRegisteredForRemoteNotifications)])

    {

        // iOS 8 Notifications

        [application registerUserNotificationSettings:[UIUserNotificationSettingssettingsForTypes:(UIUserNotificationTypeSound |UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

        

        [application registerForRemoteNotifications];

    }

    else

    {

        // iOS < 8 Notifications

        [application registerForRemoteNotificationTypes:

         (UIRemoteNotificationTypeAlert |UIRemoteNotificationTypeBadge |

          UIRemoteNotificationTypeSound)];

    }

}


-> 苹果远程服务器

 在AppDelegate

->注册成功

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

返回一个deviceToken,

将token返回给自己服务器或第三方服务器,提交PUSH证书和密码

自己服务器或第三方服务器将要推送的内容传给苹果服务器,苹果服务器推送到手机App上。

->接受到远程推送来的消息

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary*)userInfo

->注册失败

-(void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error



0 0