【问题标题】:iPhone: How to use Reachability without host?iPhone:如何在没有主机的情况下使用可达性?
【发布时间】:2012-04-06 09:26:09
【问题描述】:

如果用户没有互联网连接,我需要在我的应用中显示“没有互联网连接”消息。

要像这样使用可达性:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];

这是个坏主意,因为可以上网但主机不可用,对吧?

那么如何在没有主机的情况下检查互联网连接?谢谢...

【问题讨论】:

  • 阅读stackoverflow.com/questions/6062835/… 的答案 - 因为它是一种更好的机制,可以在网络不存在的情况下做出反应。也就是说,您应该只在应用程序尝试通过发出网络请求来使网络发挥作用时才显示“无网络连接”,然后检查可达性结果,而不是一开始就依赖可达性。

标签: iphone reachability


【解决方案1】:
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");

【讨论】:

    【解决方案2】:

    你完全正确。可达性只检查某个主机是否可达。问题是,如果不向主机发送请求,就无法(我能想到的)如何确定您是否连接到互联网。

    那么您可以做什么(以及 Apple 在其可达性示例中所做的事情):选择一个您可以 99.99% 确定该主机可用的主机。例如 google.com 或 apple.com

    我认为苹果依赖某个主机来检查互联网连接的事实(以及他们没有想出其他东西,而不依赖于某个主机的事实)是一个很好的迹象,表明以这种方式检查互联网连接并不是一个坏主意。

    编辑

    当然,最好的方法(如对 Petesh 所指问题的回答中所述)是简单地提出您想要提出的请求,然后在发生错误时相应地处理错误。换句话说:1. 提出您的请求 2. 如果请求失败,请使用 Reachability 查看是否是缺少互联网连接的问题

    【讨论】:

    • 我听说苹果可以拒绝该应用程序,如果它可以显示一条消息“没有互联网连接”,如果互联网可用..类似的东西......试图找到......
    • 它认为你应该没问题,如果你尝试先向你的服务器发出请求,并且只有在你的服务器没有响应检查你是否可以到达另一台主机时才使用可达性。但这只是我个人的看法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2020-07-28
    • 1970-01-01
    • 2021-04-09
    相关资源
    最近更新 更多