Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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 未调用的方法:-(void)application:(UIApplication*)application didRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken_Ios_Iphone_Push Notification_Apple Push Notifications - Fatal编程技术网

Ios 未调用的方法:-(void)application:(UIApplication*)application didRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken

Ios 未调用的方法:-(void)application:(UIApplication*)application didRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken,ios,iphone,push-notification,apple-push-notifications,Ios,Iphone,Push Notification,Apple Push Notifications,一直以来,我们都在这个问题上纠缠不休,但无法调用以下方法。我可以让手机请求许可,但在那之后它就卡住了 - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken { NSLog(@"My token is: %@", deviceToken); } - (void)application:(UIApplicati

一直以来,我们都在这个问题上纠缠不休,但无法调用以下方法。我可以让手机请求许可,但在那之后它就卡住了

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
    NSLog(@"My token is: %@", deviceToken);
}

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
    NSLog(@"Failed to get token, error: %@", error);
}
我尝试了很多东西,包括:

1) 以下stackoverflow post中提供的所有内容:

2) 看看苹果公司的技术说明:

3) 整个教程:(希望我的证书都很好)

4) (是的,我有互联网连接)

有人有什么可能的解决办法吗?在过去的2-3天里,我一直在绞尽脑汁,已经两次在工厂重置我的手机,并多次更改手机上的日期,以便让弹出的通知能够反复测试

我愿意帮忙!谢谢

这里是我用来称呼。。。(尝试了一些其他版本):


iOS 8在注册流程中引入了一项更改,要求在获得用户许可后明确要求注册远程通知

你在调用这个代码吗

[[UIApplication sharedApplication] registerUserNotificationSettings: settings];
在应用程序委托中实现这一点

- (void) application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
    [application registerForRemoteNotifications];
}
也就是说,旧的API现在已经被弃用,但如果您计划支持iOS 7,则仍然需要这些API。要支持这两个选项,您可以检查UIApplication是否响应新的选择器:

if ([[UIApplication sharedApplication] respondsToSelector:@SEL(registerUserNotificationSettings:)]) {
    // iOS 8
    [[UIApplication sharedApplication] registerUserNotificationSettings: settings];

    // [[UIApplication sharedApplication] registerForRemoteNotifications] 
    // will be called in your UIApplicationDelegate callback
} else {
    // iOS 7
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}

那是8吗?是否也调用了didFailedToRegister?两个都没有调用,IOS8是否在生成计算机上安装了APNS证书,以及是否更新了设置配置文件?对两者都是,我按照此处的证书说明操作:在if块的iOS 8部分中,您需要删除对
[application registerForRemoteNotifications]
的调用。在应用程序委托中实现
didRegisterUserNotificationSettings:
回调,并在该方法中进行
RegisterForRemotionTifications
调用。在权限请求完成之前,
registerforremotentifications
调用将不起作用。我以前做过如下操作:-(void)application:(UIApplication*)application didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings{NSLog(@“IOS8版本”);[application registerForRemoteNotifications];}它基本上会使我的应用程序崩溃,不过:(
if ([[UIApplication sharedApplication] respondsToSelector:@SEL(registerUserNotificationSettings:)]) {
    // iOS 8
    [[UIApplication sharedApplication] registerUserNotificationSettings: settings];

    // [[UIApplication sharedApplication] registerForRemoteNotifications] 
    // will be called in your UIApplicationDelegate callback
} else {
    // iOS 7
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}