从iPhone应用程序启用/禁用Apple推送通知?

Gop*_*ath 20 iphone permissions push-notification apple-push-notifications ios

我还有一个疑问APNS.这是当应用程序首次启动应用程序请求Apple推送通知权限时,如果用户接受了他们可以接收通知.如果用户取消他们无法收到任何通知.我清楚吗?

现在我的怀疑是,

  1. 如果用户第一次如果Cancel他们想要接收Apple推送通知,则在几天后再次从应用程序(单击按钮)取消推送通知服务时,可以从应用程序再次为特定用户启用Apple推送通知.

  2. 如果用户接受苹果推送通知服务第一,过了些日子,如果他们不希望收到通知,可以禁用APNS在我们的应用程序?我希望你理解我的怀疑.任何人都可以澄清这个疑问吗?

  3. 可以在我们的iPhone应用程序中执行以上场景吗?

请帮我.提前致谢.

jrt*_*c27 16

您可以使用以下方法读取应用程序的权限UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];,然后使用不同类型执行按位和操作以查看哪些已启用.您也可以调用unregisterForRemoteNotifications禁用通知.您不能做的一件事是打开通知,尽管您可以指导用户.


adi*_*dig 15

很遗憾,您无法从应用代码启用或禁用应用的推送通知.请求权限的对话框仅显示一次.通常,其他应用程序通过进入Settings-> Notification-> AppName向用户显示启用/禁用推送通知的指令.

  • 您可以使用以下命令检查是否启用了任何类型的推送通知:`if([UIApplication sharedApplication] .enabledRemoteNotificationTypes == UIRemoteNotificationTypeNone) (6认同)

ars*_*had 5

我的要求是使用UISwitch.Inorder启用和禁用 pushnotificaton 。为了启用来自代码的推送通知,请在按钮操作中使用它。

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
   (UIRemoteNotificationTypeBadge |  UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
Run Code Online (Sandbox Code Playgroud)

为了禁用

[[UIApplication sharedApplication] unregisterForRemoteNotifications];
NSLog(@"UnRegistered for pushnotification");
Run Code Online (Sandbox Code Playgroud)