gpt4 book ai didi

ios - 无法在所有设备上获取推送通知

转载 作者:行者123 更新时间:2023-11-28 19:17:39 24 4
gpt4 key购买 nike

我正在使用 APNS 在我的应用程序中接收推送通知。

问题是我在某些设备上收到相同的通知,但不是全部。问题出在哪里,因为我已经尝试了大约 15 天来解决这个问题但没有成功。设备 token 更新成功。因为如果不是那样,我就不会在任何设备上收到通知。但奇怪的是我在一半的设备上都能看到它。请帮忙!!

下面是注册和接收通知的代码。我没有服务器端的任何代码。但正如我所说,通知在某些设备上有效。他们也在 android 上工作。

我这里有 3 台设备,其中两台正在运行。iPad2:5.0.1iPodTouch:4.3.3

它不能在我的另一个 iPod touch 上工作,我的版本是:5.1

它还显示在所有设备上成功注册了 APNS。但不发送某些通知。问题是什么?有什么我想念的吗?

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken 
{

deviceToken = [devToken retain];

NSLog(@"Registered for APNS %@", deviceToken);

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

NSMutableString *dev = [[NSMutableString alloc] init];

NSRange r;
r.length = 1;
unsigned char c;

for (int i = 0; i < [deviceToken length]; i++)
{
r.location = i;
[deviceToken getBytes:&c range:r];

if (c < 10) {
[dev appendFormat:@"0%x", c];
}
else {
[dev appendFormat:@"%x", c];
}

}

[ud setObject:dev forKey:@"DeviceToken"];
[ud synchronize];

}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{

NSLog(@"Failed to register %@", [error localizedDescription]);

deviceToken = nil;

}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
for(int i=0;i<[viewControllers count];i++)
{
if([[viewControllers objectAtIndex:i] isKindOfClass:[Confirmation class]])
{
Confirmation *map = (Confirmation*)[[self.navigationController viewControllers] objectAtIndex:i];
[map setFinalInfo];
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:i] animated:YES];
}
}
}

最佳答案

1 ) 即使 APNS 服务器接受了推送通知,也无法保证推送通知会实际传送。

2 ) 就您的服务器而言,推送通知是即发即弃的;将通知发送到 APNS 后,无法查明通知的状态。交货时间也可能有所不同,从几秒到半小时不等。

3 ) 此外,用户的 iPhone 可能无法一直接收推送通知。它们可能位于不允许连接到 APNS 的 WiFi 网络上,因为所需的端口已被阻止。或者手机可以关机。

4 ) APNS 将在该设备重新联机时尝试发送它为该设备收到的最后一条通知,但它只会尝试有限的时间。一旦超时,推送通知将永远丢失!

关于ios - 无法在所有设备上获取推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com