我正在尝试在我的应用中启用推送通知,但它无效。它是如何在我的上一个应用程序中工作的。当我将它集成到该应用程序中时。但现在我再次测试该应用程序,它也不适用于该应用程序。通过不工作的意思是它没有显示推送通知的确认或启用弹出视图。我正在使用4.6 xcode版本并使用此行代码启用推送通知
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
新的xcode或sdk是否存在问题,或者代码现在有些变化?
答案 0 :(得分:0)
据我所知,只有在您收到启用PushNotification的通知后才会知道。即显示消息“您是否要启用通知.........”的通知。在一台设备上单击确定后,您在下次运行时未在同一设备上获得相同的警报。因此,请尝试在其他设备上进行检查,或使用开发人员配置文件调试代码。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
供应资料是否重要?我的意思是我正在使用外卡 用于测试推送通知的配置文件
是的,配置文件很重要。它必须包含您要向其发送推送通知(沙箱或生产)的环境的推送权利。
来自Local and Push Notification Programming Guide:
Team Admin或Team Agent必须接下来创建配置文件 (开发或分发)用于服务器端 远程通知开发。配置文件是a 与应用程序开发人员关联的资产集合 他们的设备与授权开发团队并启用这些设备 用于测试的设备。该个人资料包含证书, 设备标识符,应用程序的捆绑包ID和所有权利, 包括
<aps-environment>
。所有团队成员都必须安装 在运行和测试的设备上配置配置文件 应用程序代码。
并且您无法使用通配符配置文件。您必须使用具有非通配符应用程序ID的配置文件。
来自Local and Push Notification Programming Guide:
下一页显示您的有效申请ID。应用程序ID 由一个前缀为十个字符的应用程序包ID组成 Apple生成的代码。团队管理员必须输入捆绑包ID。对于 证书,必须包含特定的捆绑ID;你不能 使用“通配符”应用程序ID。