如何在 iOS 中测试可达性并重试连接?
Posted
技术标签:
【中文标题】如何在 iOS 中测试可达性并重试连接?【英文标题】:How to test reachability in iOS and retry to connect? 【发布时间】:2019-10-09 20:08:59 【问题描述】:我想测试当用户在登录时失去连接并提示他们再次尝试连接时的可达性。
首先,我尝试在无法访问时关闭并显示 UIalert 说“请检查您的互联网连接并重试”。使用“重试”操作尝试重试测试连接,如果没有连接显示消息,否则“有连接”删除 UI 警报。
import UIKit
class BaseTabBarViewController: UITabBarController
let network = NetworkManager.sharedInstance
override func viewDidLoad()
super.viewDidLoad()
network.reachability.whenUnreachable = reachability in
self.showOfflinePage()
func retryConnection(alert: UIAlertAction!)
print("test connection ")
// if no connction found show try agine
//else connction
func showOfflinePage()
DispatchQueue.main.async
// create the alert
let alert = UIAlertController(title: "Connectivity Error", message: "Please check your internet connection and try again.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "Retry", style: UIAlertAction.Style.default, handler: self.retryConnection))
// show the alert
self.present(alert, animated: true, completion: nil)
【问题讨论】:
【参考方案1】:有很多可达性吊舱可用。最常用的一种是 Alamofire。以下是 repo 的链接以及如何使用它的示例。
https://github.com/Alamofire/Alamofire/blob/master/Source/NetworkReachabilityManager.swift
https://medium.com/@abhimuralidharan/checking-internet-connection-in-swift-3-1-using-alamofire-58ae45719f5
【讨论】:
【参考方案2】:您是否尝试过使用 iphone 的开发者选项(在设置中)? 它可以让您模拟不良连接。
【讨论】:
以上是关于如何在 iOS 中测试可达性并重试连接?的主要内容,如果未能解决你的问题,请参考以下文章