Push notification iOS应用拒绝询问是否要注册推送通知

Push notification iOS应用拒绝询问是否要注册推送通知,push-notification,apple-push-notifications,Push Notification,Apple Push Notifications,这是该应用首次安装在此设备上,并且从未注册推送通知,但它拒绝询问。 我使用下面的代码,但无论我清理项目多少次,删除派生数据,卸载并在我的设备上重新安装应用程序,它都不会问我是否要接收推送通知 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication]

这是该应用首次安装在此设备上,并且从未注册推送通知,但它拒绝询问。 我使用下面的代码,但无论我清理项目多少次,删除派生数据,卸载并在我的设备上重新安装应用程序,它都不会问我是否要接收推送通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication]
     setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:YES];

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]autorelease];

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     UIRemoteNotificationTypeBadge |
     UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound];

     self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

为什么它不要求我注册通知?我在设置中检查通知,但此应用未列出。

推送通知在模拟器上不受支持,您只能在iOS设备上尝试

  • 确保在您的iOS资源调配中已为启用推送通知 你的appID

  • 权利plist必须包括密钥
    aps环境
    和值
    development
    作为字符串在开发时,以及值
    production
    在提交到AppStore之前或使用临时证书签名之前

  • 要确保已注册推送通知,请包括以下内容 在您的代码中测试它是否工作

    (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
    {
    NSString *token = [[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<> "]];
    NSLog(token);
    }
    
    (void)应用程序:(UIApplication*)应用程序DIDregisterForRemotionTificationswithDeviceToken:(NSData*)devToken
    {
    NSString*标记=[[devToken description]stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@”“];
    NSLog(令牌);
    }
    

    如果不起作用,请尝试此操作。

    在iOS上重置推送通知权限警报

    首次启用推送功能的应用程序注册推送通知。iOS询问用户是否希望接收该特定应用程序的远程通知。用户响应此警报后,除非设备已恢复或应用程序已卸载至少一天,否则不会反复显示此警报

    如果您想模拟应用程序的首次运行,可以将应用程序卸载一天。通过以下步骤,您无需实际等待一天即可实现后者:

    1.Delete your app from the device.
    2.Turn the device off completely and turn it back on.
    3.Go to Settings > General > Date & Time and set the date ahead a day or more.
    4.Turn the device off completely again and turn it back on.
    

    有关更多详细信息,请参阅:

    我已经了解了所有这些,并且我以前也做过推送通知。它不起作用。