0

我正在尝试在我的应用程序中启用推送通知,但它不起作用。它在我的上一个应用程序中是如何工作的。当我将它集成到该应用程序中时。但现在我再次测试该应用程序,它也无法在该应用程序中运行。不工作的意思是它没有显示确认或启用推送通知的弹出视图。我正在使用 4.6 xcode 版本并使用这行代码来启用推送通知

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

新的 xcode 或 sdk 中是否存在一些问题,或者现在代码中有一些变化?

4

3 回答 3

0

配置文件很重要吗?我的意思是我正在使用通配符配置文件来测试推送通知

是的,配置文件很重要。它必须包含您打算向其发送推送通知的环境(沙盒或生产环境)的推送权利。

来自本地和推送通知编程指南

团队管理员或团队代理接下来必须创建在远程通知开发的服务器端使用的配置文件(开发或分发)。供应配置文件是资产的集合,它将应用程序的开发人员及其设备与授权的开发团队相关联,并使这些设备能够用于测试。配置文件包含证书、设备标识符、应用程序的捆绑 ID 和所有权利,包括<aps-environment>. 所有团队成员都必须在他们将运行和测试应用程序代码的设备上安装配置文件。

而且您不能使用通配符配置文件。您必须使用具有非通配符应用程序 ID 的配置文件。

来自本地和推送通知编程指南

下一页显示您的有效应用程序 ID。应用程序 ID 由应用程序的捆绑包 ID 组成,前缀为 Apple 生成的十字符代码。团队管理员必须输入捆绑 ID。对于证书,它必须包含特定的捆绑 ID;您不能使用“通配符”应用程序 ID。

于 2013-05-06T12:22:41.783 回答
0

据我所知,只有在您收到启用 PushNotification 的通知后。即显示消息“您要启用通知......”的通知。在一台设备上单击“确定”后,您在下次运行时不会在同一设备上收到相同的警报。所以尝试在其他设备上检查它或使用 Developer Profile 调试代码。

于 2013-05-06T10:24:32.330 回答
0

在委托方法中记录错误方法并验证失败

   - (void)applicationDidFinishLaunching:(UIApplication *)app {
       // other setup tasks here....
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    }

    // Delegation methods
    - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
        const void *devTokenBytes = [devToken bytes];
        self.registered = YES;
        [self sendProviderDeviceToken:devTokenBytes]; // custom method
    }

    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
        NSLog(@"Error in registration. Error: %@", err);
    }
于 2013-05-06T11:48:19.767 回答