Ios app仅适用于Intranet连接

时间:2018-02-12 09:32:31

标签: ios swift reachability

我正在尝试创建一个ios应用程序,其中应用程序必须仅在Intranet连接中工作,如果尝试从不同的网络访问api端点,应用程序应显示警告对话框。我尝试使用apple的可达性代码.. 我没有主机名,但我的主机是ip 案例场景:

当连接到不同的网络时,它表示未连接,api调用也失败..需要什么

但是当连接到同一个网络时,端点正在给我成功响应,但可达性仍然表示,未连接

提前致谢

2 个答案:

答案 0 :(得分:0)

听起来你的连接工作正常,但是你不知道你是否连接了。

你可以

  1. 使用Simple Ping see here
  2. ping到本地“服务器”
  3. 使用Reachability进行本地Wifi并检查Wifi名称(a.k.a. SSID)查看示例here

答案 1 :(得分:0)

将此file添加到您的项目中:

然后配置您的AppDelegate

    {li}

    application:didFinishLaunchingWithOptions:方法

    let reach = Reachability()
    reach.monitorReachabilityChanges()
    
    NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.networkStatusChanged(_:)), name: NSNotification.Name(rawValue: ReachabilityStatusChangedNotification), object: nil)
    
  • 然后添加此方法

     func networkStatusChanged(_ notification: Notification) {
        let userInfo = (notification as NSNotification).userInfo
        guard let status = userInfo?["Status"] as? String else { return }
        if status.lowercased().contains("online") {
            //CONNECTED
        } else {
            //NOT CONNECTED
        }
    }