gpt4 book ai didi

iphone - 可达性有时会失败,即使我们确实有互联网连接

转载 作者:太空狗 更新时间:2023-10-30 03:32:26 25 4
gpt4 key购买 nike

我已经搜索过但没有看到类似的问题。

我添加了一种方法来根据可达性示例检查互联网连接。它在大多数时间都有效,但是当安装在 iPhone 上时,即使我有互联网连接(仅在 3G/EDGE 上 - WiFi 可以),它也经常失败。

基本上下面的代码返回 NO。

如果我切换到另一个应用程序,例如 Mail 或 Safari,然后连接,然后切换回该应用程序,代码会显示可以访问互联网。有点像它需要一个“插入”。

有人见过这个吗?有什么想法吗?

非常感谢詹姆斯

+ (BOOL) doWeHaveInternetConnection{

BOOL success;
// google should always be up right?!
const char *host_name = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];

SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);

if (isAvailable) {
NSLog(@"Google is reachable: %d", flags);
}else{
NSLog(@"Google is unreachable");
}

return isAvailable;

最佳答案

看起来您已经从 Apple 示例代码中删除了一些基本的可达性代码。当您保持原样并执行此操作时会发生什么?

Reachability *hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];

NetworkStatus netStatus = [hostReach currentReachabilityStatus];

if (netStatus == NotReachable)
{
NSLog(@"NotReachable");
}

if (netStatus == ReachableViaWiFi)
{
NSLog(@"ReachableViaWiFi");
}

if (netStatus == ReachableViaWWAN)
{
NSLog(@"ReachableViaWWAN");
}

关于iphone - 可达性有时会失败,即使我们确实有互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281232/

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