IOS開(kāi)發(fā)—IOS 8 中設(shè)置applicationIconBadgeNumber和消息推送

摘要: 在IOS7中設(shè)置applicationIconBadgeNumber不會(huì)有什么問(wèn)題,但是直接在IOS8中設(shè)置applicationIconBadgeNumber會(huì)報(bào)錯(cuò)

因?yàn)樵贗OS8中要想設(shè)置applicationIconBadgeNumber,需要用戶的授權(quán),在IOS8中,需要加上下面的代碼:

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;

但是這兩句如果是在IOS7的系統(tǒng)中運(yùn)行的話就會(huì)報(bào)錯(cuò),所以需要先判斷IOS的版本,完整代碼如下:

float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    
if (version >= 8.0) {
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}

UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;

如果是注冊(cè)消息推送的話,需要這樣寫(xiě):

float version = [[[UIDevice currentDevice] systemVersion] floatValue];

if (version >= 8.0) {
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    [application registerForRemoteNotifications];
}

UIApplication *app = [UIApplication sharedApplication];
// 應(yīng)用程序右上角數(shù)字
app.applicationIconBadgeNumber = 0;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容