2014-09-27 411 views
3

我在我的應用中使用了easyapns進行推送服務。 Push在iOS 8上工作正常,但我的客戶說推送不能在iPhone 6上運行。我沒有iPhone 6進行檢查。其他人會遇到同樣的問題嗎?什麼可能會出錯?Push無法在iPhone 6上工作

+0

是否有可能在系統設置中禁用了您的應用的通知? – Greg 2014-10-06 13:01:12

+0

不,通知仍然是他仍然沒有收到push.FYI它在iPhone 5s ios8設備工作正常 – va05 2014-10-06 13:04:51

+0

這聽起來像一個軟件問題,而不是硬件問題。也許應用程序沒有正確註冊通知,或者用戶不小心拒絕啓用它們,並且您的應用程序未對設置中隨後啓用的通知作出適當的響應。 – Greg 2014-10-06 13:28:16

回答

2

以下是我在iOS 8和iPHONE 6/6 +上工作的內容。 iOS 8改變了推送通知註冊的方式。以下代碼將允許設備註冊iOS 8和iOS 8前設備上的推送通知。

將此代碼放在您的appDelegate.m在didFinishLaunchingWithOptions:

#ifdef __IPHONE_8_0 
if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil]; 
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; 
} else { 
    UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes]; 
} 
#else 

UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; 
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes]; 

#endif 

此外,在您的appDelegate.m添加爲一個新的方法

#ifdef __IPHONE_8_0 
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings 
{ 
    [application registerForRemoteNotifications]; 
} 
#endif 

讓我知道如何工作的。

+0

我已經alreday做到了這一點。推杆正在研究除iPhone 6設備以外的ios 8。 – va05 2014-10-11 06:47:50

+0

我正在升級爲ios 5構建的應用程序,該應用程序是使用ios 9構建的。此代碼正是我所需要的! – UberJames 2016-08-03 18:35:20

相關問題