2013-04-16 50 views
18

我在我的應用程序中使用UILocalNotification來安排通知。通知正常工作,並顯示出來,當我想要他們。我沒有這個問題。我沒有做任何遠程/推送通知。本地通知需要iOS用戶權限嗎?

什麼讓我想知道的是,我從來沒有看到着名的權限對話框,你通常看到的推送通知在幾個應用程序。我甚至重置我的設備並運行我的應用程序。這仍然沒有導致權限對話框出現。

如果您的應用程序僅使用本地通知,則不會顯示此權限對話框嗎?或者我沒有實現一些實際會導致應用程序請求此權限的方法?

我知道我可以在應用程序啓動後實現自己的對話框,向用戶請求此權限,但我希望蘋果照顧此問題,尤其是因爲它在「設置」應用程序中將遠程和本地通知視爲相同。

回答

4

注:這包括推送通知/遠程通知

使用Xcode6當與iOS7或iOS8上 測試時registerUserNotificationSettings:API是在運行時可用。

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
    UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]; 
    [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings]; 
    [[UIApplication sharedApplication] registerForRemoteNotifications]; 
} else { 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
} 

由於http://corinnekrych.blogspot.ae/2014/07/how-to-support-push-notification-for.html

11

它看起來像本地通知不需要任何用戶權限。 「權限」對話框僅顯示推送通知。我可以在沒有任何用戶許可的情況下安排/取消本地通知。

+0

同樣在這裏:期待新iOS10 UserNotificationsCenter - 本地通知安排,沒有任何接入點。 –

2

是的,這是正確的。本地通知不需要任何操作系統權限。不過,作爲一種良好的做法,我建議在您的應用程序中爲此類用戶提供退出選項。 這兩種方式工作得很好:

  1. 的惱火用戶,越來越因爲又一次的時間&看到本地通知,不知道推/本地通知之間的差異可能留在App Store中差評的沮喪。
  2. 它總是一個很好的做法,提供標誌來打開/關閉給定用戶的這種功能。
+0

同意!我們的應用程序有帽子選項:) – RPM

13

是的,在iOS8中,本地通知確實需要權限。

The documentationregisterUserNotificationSettings:規定,

If your app displays alerts, play sounds, or badges its icon while in the background, you must call this method during your launch cycle to request permission to alert the user in those ways. Typically, you make this request如果您的應用程序使用本地or push通知to alert the user to new information involving your app.

It is recommended that you調用這個方法,你安排任何本地通知之前or register with the push notification service.

2

蘋果的文檔presentLocalNotificationNow和scheduleLocalNotification說,

此前安排任何地方的通知,則必須調用registerUserNotificationSettings:方法來讓系統知道什麼類型的警報,如果有的話,您打算顯示給用戶。

所以我不確定此頁面的其他人如何說本地通知不需要用戶權限。

結帳關於同一主題的這個其他的討論:

Ask for User Permission to Receive UILocalNotifications in iOS 8

+0

這似乎是在iOS 9及以上強制執行。 –