1

我是ios开发新手。我想在连接更改(或设备的 IP 地址更改)时进行回调。我在我的应用程序中添加了可达性(Apple 的示例代码)。但它不给回调。

我在 Android 中做了同样的事情 - 接收“ConnectivityManager.CONNECTIVITY_ACTION”,它检测到网络连接发生了变化。

iOS 中是否有任何 API 可以执行与 CONNECTIVITY_ACTION 类似的功能?任何帮助表示赞赏。谢谢...

4

1 回答 1

0

使用SCNetworkReachabilitySetCallback

Boolean SCNetworkReachabilitySetCallback (
   SCNetworkReachabilityRef target,
   SCNetworkReachabilityCallBack callout,
   SCNetworkReachabilityContext *context
);

所以你的回调方法看起来像这样

typedef void (*SCNetworkReachabilityCallBack) (
   SCNetworkReachabilityRef target,
   SCNetworkReachabilityFlags flags,
   void *info
);

意味着你首先声明回调

static void MyReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info)
{
 // do somthing
}

然后注册它:

SCNetworkReachabilityContext ctx = {0, self, NULL, NULL, NULL};
if(SCNetworkReachabilitySetCallback(reachabilityRef, MyReachabilityCallback, &ctx)) {
 // registered callback
于 2013-04-09T14:15:15.450 回答