日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IOS8 PUSH解决方法

發(fā)布時(shí)間:2025/6/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS8 PUSH解决方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

registerForRemoteNotificationTypes:?is?not?supported?in?iOS?8.0?and?later???


IOS8?PUSH解決方法


昨天晚上整理PUSH的東西,準(zhǔn)備些一個(gè)教程,全部弄好之后,發(fā)現(xiàn)沒有達(dá)到預(yù)期的效果,本以為是服務(wù)器代碼的問題(因?yàn)楸救藢?duì)PHP代碼一點(diǎn)都不懂),所以在網(wǎng)上四處搜索,后來看xcode?log才發(fā)現(xiàn),原來是IOS8系統(tǒng)更新了的問題,提示?registerForRemoteNotificationTypes:?is?not?supported?in?iOS?8.0?and?later.


使用IOS8?xcode6的同學(xué),在使用推送(push)的時(shí)候應(yīng)該已經(jīng)出現(xiàn)這個(gè)問題了。那么讓我們來看看具體的解決方法。


iOS?8?has?changed?notification?registration?in?a?non-backwards?compatible?way.?While?you?need?to?support?iOS?7?and?8?(and?while?apps?built?with?the?8?SDK?aren't?accepted),?you?can?check?for?the?selectors?you?need?and?conditionally?call?them?correctly?for?the?running?version.


Here's?a?category?on?UIApplication?that?will?hide?this?logic?behind?a?clean?interface?for?you?that?will?work?in?both?Xcode?5?and?Xcode?6.


//?IOS8?新系統(tǒng)需要使用新的代碼咯
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)];
}


原本在IOS7當(dāng)中?判斷PUSH是否打開的方法是:
UIRemoteNotificationType?types?=?[[UIApplication?sharedApplication]?enabledRemoteNotificationTypes];
return?(types?&?UIRemoteNotificationTypeAlert);


如果將這段代碼使用在?IOS當(dāng)中,雖然不會(huì)出現(xiàn)crash的現(xiàn)象,但是基本沒什么作用。
在IOS8中,我們使用如下的新代碼來取代以上的代碼


{
UIRemoteNotificationType?types;
if?([[[UIDevice?currentDevice]?systemVersion]?floatValue]?>=?8.0)
???{
?types?=?[[UIApplication?sharedApplication]?currentUserNotificationSettings].types;
????}
else
???{
?types?=?[[UIApplication?sharedApplication]?enabledRemoteNotificationTypes];
????}


return?(types?&?UIRemoteNotificationTypeAlert);
}

轉(zhuǎn)載于:https://www.cnblogs.com/zyingn/p/XcodePush.html

總結(jié)

以上是生活随笔為你收集整理的IOS8 PUSH解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。