你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS本地推送的實現,兼容iOS8

iOS本地推送的實現,兼容iOS8

編輯:IOS開發綜合

AppDelegate.m中的代碼

// AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 處理iOS8本地推送不能收到的問題
    float sysVersion=[[UIDevice currentDevice]systemVersion].floatValue;
    if (sysVersion>=8.0) {
        UIUserNotificationType type=UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound;
        UIUserNotificationSettings *setting=[UIUserNotificationSettings settingsForTypes:type categories:nil];
        [[UIApplication sharedApplication]registerUserNotificationSettings:setting];
    }
    return YES;
}

// 接收本地推送(AppDelegate.m中添加)
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"標題" message:notification.alertBody delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
    [alert show];
    
    // 圖標上的數字減1
    application.applicationIconBadgeNumber -= 1;
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
    // 直接打開app時,圖標上的數字清零
    application.applicationIconBadgeNumber = 0;
}


在調用的類中添加的代碼

// 進行推送的方法
// 設置本地推送參數,並進行推送
- (void)scheduleNotification{
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    //設置5秒之後
    NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:5];
    if (notification != nil) {
        // 設置推送時間(5秒後)
        notification.fireDate = pushDate;
        // 設置時區(此為默認時區)
        notification.timeZone = [NSTimeZone defaultTimeZone];
        // 設置重復間隔(默認0,不重復推送)
        notification.repeatInterval = 0;
        // 推送聲音(系統默認)
        notification.soundName = UILocalNotificationDefaultSoundName;
        // 推送內容
        notification.alertBody = @"推送主體內容";
        //顯示在icon上的數字
        notification.applicationIconBadgeNumber = 1;
        //設置userinfo 方便在之後需要撤銷的時候使用
        NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];
        notification.userInfo = info;
        //添加推送到UIApplication
        UIApplication *app = [UIApplication sharedApplication];
        [app scheduleLocalNotification:notification];
    }
}


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved