Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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 检查iphone应用程序是否已启用推送功能_Ios_Iphone_Objective C_Ios7 - Fatal编程技术网

Ios 检查iphone应用程序是否已启用推送功能

Ios 检查iphone应用程序是否已启用推送功能,ios,iphone,objective-c,ios7,Ios,Iphone,Objective C,Ios7,我有一个功能,可以检查PushServices是否启用: - (BOOL)isPushEnabled { UIApplication *application = [UIApplication sharedApplication]; return application.enabledRemoteNotificationTypes != UIRemoteNotificationTypeNone; } 但即使我在“设置”中禁用通知选项中的所有滑块,该方法也会返回true!我

我有一个功能,可以检查PushServices是否启用:

- (BOOL)isPushEnabled { 
    UIApplication *application = [UIApplication sharedApplication]; 
    return application.enabledRemoteNotificationTypes != UIRemoteNotificationTypeNone; 
}
但即使我在“设置”中禁用通知选项中的所有滑块,该方法也会返回true!我在iOS 7上

返回的位掩码中的值表示当前为应用程序启用的通知类型。当应用程序调用registerForRemoteNotificationTypes:方法向Apple推送通知服务注册自身时,首先设置这些类型。此后,用户可以在设置应用程序的通知首选项中修改这些接受的通知类型。此方法返回那些初始值或修改后的值。iOS不显示或播放通知负载中指定的非已启用类型的通知类型。例如,应用程序可能会接受图标标记作为通知的一种形式,但可能会拒绝声音和警报消息,即使它们是在通知负载中指定的


也就是说,对不起,你不能做你想做的事。您只是在检查应用程序是否注册了推送通知。

我记得,一旦安装,它会向您发出与推送通知相关的警报,可能是您提示了“是”。尝试删除应用程序并重新安装。这不是一个解决方案…如果用户给予了权限,但后来用户拒绝了它怎么办?!我认为我的应用程序应该能够识别它……您是否选择了
?因此,如果在安装时Push设置为Yes,用户不能禁用Push?!所以这并不取决于在通知中设置的设置,我总是能够发送推送消息并在我的应用程序中对它们做出反应?!我认为推送服务器推送消息时不考虑设备设置,但用户选择是否查看它们。