如何在iOS中可用的互联网连接时保存web服务调用并使用它?
问题描述:
我试图实现web服务调用,当用户截图时,我已经用下面的方法成功实现它。如何在iOS中可用的互联网连接时保存web服务调用并使用它?
//this method get called when screenshot captured
func detectScreenShot() {
let mainQueue = OperationQueue.main
NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationUserDidTakeScreenshot,
object: nil,
queue: mainQueue,
using: { notification in
WEBSERVICE_INTERFACE.webServiceWithPostJSONParameters(param: nil, methodName: Constants.URLs.screenshot, headers: Constants.Headers.urlEncoded, showProgress: false, completion: { (response) in
if let response = response{
let response = BaseResponse(JSONString : response)
if let message = response?.message{
LIMITUtils.showAlertMessage(message: message)
}
}
})
})
}
但现在我有场景,假设用户需要通过使互联网连接断开,则没有Web服务调用都会发生,用户会得到好处了它的屏幕截图。现在,我想有一些解决方案,可以在没有可用连接的情况下保存web服务调用,并在互联网连接可用时进行相同的调用。任何人都可以请建议我如何可以继续为此?
答
使用Reachability进行检查互联网提供或不写娄代码检查互联网
//MARK:- check internet connection
func checkInternetStatus() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(reachabilityChanged(_:)), name:ReachabilityChangedNotification, object: nil)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
//Check for Internet Status
do {
self.reachability = try Reachability.reachabilityForInternetConnection()
try self.reachability?.startNotifier()
} catch {
jprint("Errore")
return
}
}
}
func reachabilityChanged(note:NSNotification) {
let Status = reachability?.currentReachabilityStatus //note.object as! Reachability
if Status != .NotReachable {
jprint("isNetworkAvailable = true")
isNetworkAvailable = true
} else {
jprint("isNetworkAvailable = false")
ShowFlinntAlert("No internet", description: "Your internet connection seems to be down")
isNetworkAvailable = false
}
}
API调用之前只检查
guard isInternetAvailable() else {
return
}
+0
我知道可达性,但如果没有互联网连接可用,但想保存web服务调用,但谢谢 –
如果你被自己捕捉窗口或如果你上传的图片正在发送用户拍摄快照的屏幕名称,您可以将它们保存在某处(用户默认值/存档/ coredata),并且当互联网可用时,您可以再次对其进行排队。但看着你的代码,你只是触发一个没有任何参数的API,那么你打算如何处理这个API可能会回答你的问题。 – GoodSp33d
@ GoodSp33d当我打电话给API时,我只是想削减用户信用额度,但如果互联网连接不可用,那么它不会发生,用户将得到好处 –
@AkshaykumarMaldhure您是否找到解决此问题的任何解决方案? – Ragul