我的应用需要在iOS 5通知中心设置为“提醒”并启用“声音”。根据我的发现,你的应用程序无法正确设置这些,这将是最好的选择,所以如果我错了,请纠正我。
所以,我正在寻找一个检测当前设置的程序,并警告用户这些是不正确的。
答案 0 :(得分:1)
实际上可以使用以下方法完成 -
UIRemoteNotificationType types = [UIApplicationsharedApplication] .enabledRemoteNotificationTypes;
虽然类型是
typedef enum
{
UIRemoteNotificationTypeNone = 0,
UIRemoteNotificationTypeBadge = 1 << 0,
UIRemoteNotificationTypeSound = 1 << 1,
UIRemoteNotificationTypeAlert = 1 << 2,
UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3
}
根据:
http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html
因此,如果您想知道用户是否批准了您的应用以获取通知,那么您需要做的就是检查types >= 4
请注意:如果用户启用或停用了您应用的通知中心,则不会告诉您,它只会告诉您用户批准的通知的类型
答案 1 :(得分:0)
我不认为这可以通过编程方式完成。
您可以规定启动时应用可以接受的提醒。
我会在app delegate中使用它,didFinishLaunchingWithOptions方法
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
答案 2 :(得分:0)
以这种方式思考:作为用户,如果每个其他应用程序设置这些,您会怎么想? (当然,你希望它适用于你的应用程序。但并非所有的应用程序都像你的那样好。)或者,如果每个其他应用程序每次启动都会发出警告?
不可能,这就是原因。
像Nik说的那样,只需提出您希望用户启用的所有内容。然后,系统将为用户提供允许此操作的机会。
答案 3 :(得分:0)
这不能以编程方式完成。 “registerForRemoteNotificationTypes”用于远程(推送)通知,而不是本地通知。
我唯一能做的就是在应用商店的应用说明中包含有关如何设置通知中心的说明。我也把它放在我的演示视频中。
您还可以考虑在第一次启动应用时提示,解释应用的“正确”通知设置。不要在后续发布时显示,但可以在“帮助”部分中找到它。
当然,“什么是正确的”是用户想要的,但对于我的应用,用户从未想过默认设置,即“横幅”。我的应用程序的最佳用户体验仅是“声音”。在通知中心之前关于我的应用程序的最大抱怨是来自本地通知的弹出窗口。现在,通过通知中心,用户可以关闭除“声音”之外的所有内容。这是他们似乎都想要的设置。为什么我作为开发人员不能将它作为默认值提供给他们?如果他们想要将其更改为其他内容,那很好,但我应该控制默认设置。但我在咆哮。