Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS推送通知类型选项?警报vs旗帜?_Ios_Objective C_Push - Fatal编程技术网

iOS推送通知类型选项?警报vs旗帜?

iOS推送通知类型选项?警报vs旗帜?,ios,objective-c,push,Ios,Objective C,Push,我在这里通读了一些帖子,建议让推送通知显示为警报而不是横幅的唯一方法是让个人最终用户在应用程序的设置的通知部分更改警报样式。让我困惑的是,有些应用程序默认为Alerts样式,而不必这样做 有没有办法在初次启动时通过对话框以编程方式设置警报样式?我不介意让用户在对话框中确认。我只知道,由于其他应用程序不需要用户手动进入设置来更改警报样式,因此必须有不同的方法来执行此操作 我有以下几点- - (BOOL)application:(UIApplication *)application didFini

我在这里通读了一些帖子,建议让推送通知显示为警报而不是横幅的唯一方法是让个人最终用户在应用程序的
设置的
通知部分更改
警报样式。让我困惑的是,有些应用程序默认为
Alerts
样式,而不必这样做

有没有办法在初次启动时通过对话框以编程方式设置
警报
样式?我不介意让用户在对话框中确认。我只知道,由于其他应用程序不需要用户手动进入设置来更改警报样式,因此必须有不同的方法来执行此操作

我有以下几点-

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    return YES;
}

不,这是不可能的,你做不到

您可以使用此行查询通知样式的当前设置:

UIRemoteNotificationType* enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

您可以检查启用的类型,然后指示用户更改设置中的通知样式。

您的应用程序仅具有检查通知设置的权限,您永远不能为用户设置或更改通知类型

查询通知类型时,选项如下

typedef NS_OPTIONS(NSUInteger, UIRemoteNotificationType) {
    UIRemoteNotificationTypeNone    = 0,
    UIRemoteNotificationTypeBadge   = 1 << 0,
    UIRemoteNotificationTypeSound   = 1 << 1,
    UIRemoteNotificationTypeAlert   = 1 << 2,
    UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3,
}
typedef NS_选项(NSUInteger、UIRemoteNotificationType){
UIRemoteNotificationTypeNone=0,

UIRemoteNotificationTypeBadge=1您能给我们举一个这样的应用的例子吗?CSR Racing确定…这是我安装它时得到的默认通知设置。无论如何-我认为不可能设置这些。奇怪。CSR自动设置为“警报”在我的手机上。Skype也是。有没有可能你之前已经安装了这两个应用,并将设置更改为警报,然后删除了应用,现在又重新安装了它们?你无法实际检查警报样式。只要它们允许任何样式的警报。因此,你不能提示用户根据启用的类型更改警报样式。