Tag: devicetoken

获取新的苹果设备令牌?

我正在创build一个应用程序,允许用户注销应用程序,并以不同的用户身份login。 新用户login后,有没有办法从Apple获取新的设备令牌? 有没有办法强制调用didRegisterForRemoteNotificationsWithDeviceToken方法?

从我们的服务器发送推送通知时的关键结果

我们有一个appstore上的应用程序,并与注册推送通知。 他们已经成功地工作了,但是我们现在试图发出一个“全球性”的推动,发生了一些奇怪的事情。 这就是我们在服务器端.php文件中的内容: //Loop through tokens in tokenArray $i = 0; $t = 0; foreach($tokenArray as $token) { $t++; // Make notification $msg = chr(0) . pack('n', 32) . pack('H*', $token) . pack('n', strlen($payload)) . $payload; // Send $result; if($message != null) { $result = fwrite($fp, $msg, strlen($msg)); } if ($result) $i++; } // Close […]

试图发送推送通知到iOS设备 – 没有收到它们

到目前为止,我已经完成了以下工作: – 生成证书和私钥,如.pem,也将它们放在一起。 已成功连接到gateway.sandbox.push.apple.com。 – 使用推送通知临时configuration文件启用开发,我有一个基本的应用程序,成功提示“你要允许推送通知”,所以这是正常工作 – 获得设备令牌 – 我已经试过拉几个预先通知,为了看看能否让我们在开始开发之前让它们运行,我们把从互联网上的SSL文件制作成沙箱。 这些文件是在这里张贴的PHP文件: http : //www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 。 其实我收到了“邮件成功发送” 这里发布的python文件是: Apple PNS(推送通知服务)示例代码 ; 我不得不编辑Python 3命令“fromhash”行str(float.fromhash(…)) 我也尝试使用PyAPNs API: https : //github.com/simonwhitaker/PyAPNs 。 我仍然有use_sandbox设置为true。 很明显,我把设备令牌和公钥/证书更改为我自己的。 可悲的是我还没有收到任何推送通知,我没有收到任何具体的错误告诉我为什么。 如果有人能够说出一些光芒,那将是惊人的。

parse.com deviceToken和PFInstallation未保存

我遇到了我的iOS应用程序PFInstallation的一个奇怪的行为。 在每次启动应用程序时,我正在注册设备以接收推送通知,并在方法didRegisterForRemoteNotificationsWithDeviceToken上调用以下代码: PFInstallation *currentInstallation = [PFInstallation currentInstallation]; [currentInstallation setDeviceTokenFromData:deviceToken]; NSLog(@"%@", currentInstallation ); [currentInstallation saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { if (succeeded) { NSLog(@"currentInstallation saved" ); } if (error) { NSLog(@"currentInstallation NOT saved" ); } }]; 当我在我的iphone上安装应用程序时,安装将通过其deviceToken正确保存。 我绝对相信,前几天我手动删除deviceToken通过parsing仪表板(尝试的东西),然后在应用程序重新启动设备令牌再次正确保存。 我正在使用的某些频道也是如此。 今天deviceToken没有被保存,也没有通道。 saveInBackgroundWithBlock成功,但deviceToken字段为空。 currentInstallation的NSLog包含deviceToken,但不保存。 在试图理解这种行为的原因时,我发现如果我添加行currentInstallation.deviceToken = @""; 仅在PFInstallation *currentInstallation = [PFInstallation currentInstallation]; 那么deviceToken会被正确保存。 使用Parse大师向我解释为什么会发生这种情况,为什么前几天它不是? 我最近升级了这个应用程序的分析框架,可以这样做的原因?

保存DeviceToken以便以后在Apple推送通知服务中使用

在我的iPhone应用程序中,我从Apple获取设备令牌,在委托文件内部分配一个公共属性,如下所示: – (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken { self.dToken = [[NSString alloc] initWithData:deviceToken encoding:NSUTF8StringEncoding]; } dToken属性声明如下: NSString *dToken; @property (nonatomic,retain) NSString *dToken; 但是,当我尝试从另一个文件检索设备令牌时,我得到空值。 +(NSString *) getDeviceToken { NSString *deviceToken = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] dToken]; NSLog(@" getDeviceToken = %@",deviceToken); // This prints NULL return deviceToken; } 我究竟做错了什么?

iOS推送通知设备令牌是否更改?

在任何情况下安装和注册通知后,设备令牌是否有可能被更改。 情景如下: 应用更新 iOS更新或任何其他随机场景。

即使iPhone未连接到Internet,也会收到设备令牌

我正在testing我的iOS应用程序,我发现一个有趣的事情,即使我的手机处于飞行模式,我也closures了WIFI,我的应用程序能够在注册推送通知后收到设备令牌。 即使从iPhone中删除应用程序及其相关证书后,我也尝试过。 但得到相同的结果。 怎么可能,有什么想法? 提前致谢。

如何pipe理iOS的apns令牌更改

我有一个问题,在卸载并重新安装我的应用程序后,用户开始接收双重通知,因为设备发送给我的服务器2个不同的APNS令牌 – 一个是从第一个安装,另一个是重新安装应用程序。 由于令牌是不同的,我不知道这是同一个设备。 在iOS 9出来之前,每次我卸载并重新安装应用程序,我总是得到相同的APNS,所以很容易知道这是用户使用的设备。 从iOS 9开始,似乎每个安装都会更改APNS令牌。 我的问题是如何判断客户端是否卸载并重新安装应用程序,并更新他的APNS令牌,而不是添加新的令牌? 我在问,这听起来像是大多数iOS开发人员必须处理的事情,但是我无法从苹果公司find任何有关如何解决这个问题的最佳做法,所以我希望其他人可以分享他们在这个问题上的经验。

iOS APNS:以string格式将设备令牌发送给提供者

我需要通过调用我的请求中需要JSON数据的服务将我的iOS应用程序的APNS设备令牌发送给我的提供程序。 我正在阅读苹果的本地和推送通知编程指南 ,它只是说, application:didRegisterForRemoteNotificationsWithDeviceToken:委托方法传递设备令牌作为NSData ,你应该把它传递给您的提供商编码的二进制数据。 但我需要它被转换为string,以便能够发送一个JSON请求到我的提供者。 我也一直在阅读与此相关的几个post,因为它看起来是一种常见的情况,但我已经find了一些不同的方式来将这种设备令牌转换为string来发送它,我不知道它们中的哪一个应该是最合适的。 哪一个最可靠的方法来处理呢? 我想我的提供者将需要将这个string转换回来调用APNS,并且我还需要将此令牌存储在应用程序中,以便安全地将其与新值进行比较,如果生成新的令牌并调用application:didRegisterForRemoteNotificationsWithDeviceToken:只有在发生变化时才发送令牌。 谢谢

iPhone registerForRemoteNotificationTypes不会产生错误,但不会触发授予设备令牌的委托

我正在开发一个需要推送通知的iPhone应用程序。 我遵循了创buildauthentication和修改应用程序ID的说明。 我不完全肯定我做了这个正确的,但我确实按照方向。 任何想法如何我可以检查,看看这是否可以吗? 当我在模拟器中运行时,我收到一条错误消息,说模拟器不支持推送通知。 这是有点期待。 顺便说一句:我在这里似乎有这个问题几次。 它似乎总是与一个监狱破碎的电话。 我的手机没有被监禁。 但是当我在iPhone上debugging时,didRegisterForRemoteNotificationsWithDeviceToken方法永远不会被触发。 我真的很感激一些帮助。 我的代码如下。 -(void)applicationDidFinishLaunching:(UIApplication *)application { rootController.delegate = self; [window addSubview:rootController.view]; [window makeKeyAndVisible]; [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; } – (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSString *str = [NSString stringWithFormat:@"%@",deviceToken]; NSLog(str); } – (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err { NSString *str = [NSString stringWithFormat: […]