2016-01-20 68 views
0

我在我的应用程序中使用推送通知,并且按照预期,用户会看到一个对话框,询问在应用程序启动时是否允许推送通知。我的应用程序的逻辑取决于接收推送通知,如果用户不允许错误推送通知或不知道应用程序如何工作,该应用程序将无法正常工作。即使用户不允许,是否可以通过编程方式在应用中允许推送通知?谢谢!您是否可以通过编程方式在应用程序中允许推送通知?

回答

1

可惜你不能做到像this.Before的iOS 8可以检测

UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 

或之后的iOS 8 APNS状态使用:

UIRemoteNotificationType enableType = [[UIApplication sharedApplication] currentUserNotificationSettings]; 

或斯威夫特:

let remoteState = UIApplication.sharedApplication().currentUserNotificationSettings() 

您可以提示用户是否关闭APNS或启动应用程序,例如:您关闭了APNS,您将失去一些导入NT message.Please进入设置 - >通知 - >应用,使APNS

,或者你可以iOS8上后跳转到应用页面:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { 
    BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL); 
     if (canOpenSettings) { 
      NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
      [[UIApplication sharedApplication] openURL:url]; 
      }} 
3

不。如果用户说你不能发送推送通知,你不能发送推送通知。应用程序不会忽略用户在那里的选择。

但是,如果您发送的是无声推送通知 - 那些发送到您的应用但未显示给用户的推送通知 - 您无需获得许可。如果这符合你的需求,那么很好,但你不会在没有许可的情况下用户可见的推送。

+0

我也有沉默不属于通知和个。这是我所关心的那种沉默的。在我的情况下,用户不允许通知,应用程序也没有收到静默通知。有没有办法区分这两者,并让静默通知发送到应用程序,即使用户拒绝大概是可见的通知?谢谢! – user2732722