2013-04-16 46 views
18

Tôi đang sử dụng UILocalNotification trong ứng dụng của mình để lên lịch thông báo. Các thông báo hoạt động tốt và hiển thị khi tôi muốn chúng. Tôi không có một vấn đề với điều đó. Tôi KHÔNG làm bất kỳ thông báo từ xa/đẩy nào.Thông báo địa phương có cần sự cho phép của người dùng trên iOS không?

Điều khiến tôi băn khoăn là tôi chưa bao giờ thấy hộp thoại quyền nổi tiếng mà bạn thường thấy cho các thông báo đẩy trong một số ứng dụng. Tôi thậm chí đặt lại thiết bị của mình và chạy ứng dụng của tôi. Điều đó vẫn không khiến hộp thoại cho phép hiển thị.

Hộp thoại quyền này không hiển thị nếu ứng dụng của bạn chỉ sử dụng thông báo cục bộ hoặc tôi không triển khai một số phương pháp khiến ứng dụng yêu cầu quyền này?

Tôi biết tôi có thể thực hiện hộp thoại của riêng mình sau khi ứng dụng bắt đầu yêu cầu người dùng cho phép này nhưng tôi hy vọng rằng Apple đã chăm sóc điều đó, đặc biệt vì nó xử lý các thông báo từ xa và cục bộ giống nhau trong ứng dụng Cài đặt.

Trả lời

4

LƯU Ý: điều này bao gồm thông báo đẩy/thông báo từ xa

khi sử dụng Xcode6 với iOS7 hoặc iOS8 Kiểm tra khi đăng kýUserNotificationCài đặt: API có sẵn khi chạy.

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)]; 
} 

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

11

Có vẻ như thông báo cục bộ không cần bất kỳ sự cho phép nào của người dùng. Hộp thoại Quyền chỉ hiển thị cho Thông báo đẩy. Tôi có thể lên lịch/hủy thông báo cục bộ mà không có sự cho phép của người dùng.

+0

cùng ở đây: nhìn vào iOS10 UserNotificationsCenter mới - thông báo địa phương đang lên kế hoạch mà không cần bất kỳ điểm truy cập. –

2

Vâng, đúng vậy. Thông báo cục bộ không cần bất kỳ quyền hệ điều hành nào. Tuy nhiên, như một thực hành tốt, tôi khuyên bạn nên đưa ra tùy chọn từ chối cho người dùng trong các trường hợp như vậy từ ứng dụng của bạn. Điều này sẽ làm việc tốt trong hai cách:

  1. Một người dùng cảm thấy khó chịu, bị thất vọng vì thấy thông báo địa phương nhưng thời gian & một lần nữa, không biết sự khác biệt giữa Push/thông báo địa phương có thể để lại một bình luận xấu trên app store.
  2. Thực tiễn tốt của nó là cung cấp cờ để BẬT/TẮT chức năng như vậy cho một người dùng nhất định.
+0

Đồng ý! Ứng dụng của chúng tôi có tùy chọn mũ :) – RPM

13

Có, trong iOS8, thông báo địa phương yêu cầu quyền.

The documentation cho registerUserNotificationSettings: quy định rằng

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 requestnếu ứng dụng của bạn sử dụng địa phươngor pushthông báoto alert the user to new information involving your app.

It is recommended that yougọi phương pháp này trước khi bạn sắp xếp bất kỳ thông báo địa phươngor register with the push notification service.

2

tài liệu của Apple cho presentLocalNotificationNow và scheduleLocalNotification nói,

Trước khi lên kế hoạch bất kỳ thông báo địa phương, bạn phải gọi registerUserNotificationSettings: Phương pháp để cho hệ thống biết những gì loại cảnh báo, nếu có, bạn dự định hiển thị cho người dùng.

Vì vậy, tôi không chắc cách người khác trong trang này cho biết Thông báo địa phương không cần quyền của người dùng.

Thanh toán thảo luận này khác trên cùng một chủ đề:

Ask for User Permission to Receive UILocalNotifications in iOS 8

+0

Điều này dường như được thực thi trong iOS 9 trở lên. –