peringatan popup ketika koneksi Reachability terputus saat menggunakan aplikasi (IOS xcode swift)

Saya seorang pemula dalam pengembangan aplikasi iOS dan ingin "peringatan popup ketika koneksi Reachability terputus saat menggunakan aplikasi (IOS xcode swift)", tetapi saya hanya mendapatkan peringatan popup ketika memulai aplikasi saya. Tidak ada popup peringatan saat menggunakan aplikasi saya ketika koneksi internet terputus. Mohon bantuannya, terima kasih!

Apa yang saya lakukan: 1) membuat file Reachability.swift dan menulis

import Foundation

public class Reachability {

class func isConnectedToNetwork()->Bool{

    var Status:Bool = false

    let url = NSURL(string: "http://google.com/")

    let request = NSMutableURLRequest(URL: url!)

    request.HTTPMethod = "HEAD"
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData
    request.timeoutInterval = 10.0        

    var response: NSURLResponse?

    var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData?

    if let httpResponse = response as? NSHTTPURLResponse {

        if httpResponse.statusCode == 200 {
            Status = true
        }
    }

    return Status
 }
 }

2) edit file ViewController.swift seperti di bawah ini

import UIKit
class ViewController: UIViewController {

@IBOutlet weak var WebView: UIWebView!

//ViewDidLoad method
override func viewDidLoad() {
    super.viewDidLoad()

    if Reachability.isConnectedToNetwork() == true {
        println("Internet connection OK")
    } else {
        println("Internet connection FAILED")
        var alert = UIAlertView(title: "No Internet Connection",
                                message: "Make sure your device is connected to the internet.", 
                                delegate: nil, 
                                cancelButtonTitle: "OK")

        alert.show()

    }
    var URL = NSURL(string: "http://www.google.com/")

    WebView.loadRequest(NSURLRequest(URL: URL!))
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}

person Eric Chong    schedule 14.07.2015    source sumber


Jawaban (1)


Coba kelas Reachabilty ini, tambahkan ke proyek Anda dan lakukan hal berikut di viewController Anda

let reachability = Reachability.reachabilityForInternetConnection()

reachability.whenReachable = { reachability in
if reachability.isReachableViaWiFi() {
 let alertController = UIAlertController(title: "Alert", message: "Reachable via WiFi", preferredStyle: .Alert)

    let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
    alertController.addAction(defaultAction)

    presentViewController(alertController, animated: true, completion: nil)

} 
else {
let alertController = UIAlertController(title: "Alert", message: "Reachable via Cellular", preferredStyle: .Alert)

    let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
    alertController.addAction(defaultAction)

    presentViewController(alertController, animated: true, completion: nil)
    }
  }
reachability.whenUnreachable = { reachability in
let alertController = UIAlertController(title: "Alert", message: "Not Reachable", preferredStyle: .Alert)

    let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
    alertController.addAction(defaultAction)

    presentViewController(alertController, animated: true, completion: nil)
}

reachability.startNotifier()
person iAnurag    schedule 14.07.2015
comment
terima kasih, tapi saya benar-benar seorang pemula, mohon bimbing saya langkah demi langkah bagaimana melakukannya. - person Eric Chong; 14.07.2015
comment
1.)tambahkan file Reachability.swift ke dalam proyek Anda. 2)dan tempelkan kode di atas ke dalam metode viewDidLoad Anda. atau metode applicationDidFinishLaunchingWithOptions. dan jalankan kodenya - person iAnurag; 14.07.2015
comment
Terima kasih banyak! Saya mengikuti jawaban Anda dan berhasil 99%. Saya meletakkan metode viewDidLoad Anda di ViewController. - person Eric Chong; 14.07.2015
comment
Satu-satunya masalah sekarang adalah tidak ada peringatan saat memulai aplikasi tanpa koneksi internet. Bisakah kamu menolong ? - person Eric Chong; 14.07.2015
comment
daripada println masukkan kode peringatanmu gan. Dan UIAlertView tidak digunakan lagi di iOS8. gunakan UIAlertController - person iAnurag; 14.07.2015
comment
ya saya lakukan. Itu sebabnya ini menunjukkan peringatan, jika aplikasi dimulai dan kemudian koneksi gagal. Namun jika tidak ada koneksi sekarang dan memulai aplikasi, tidak ada peringatan. Keterjangkauan kode.whenUnreachable = { keterjangkauan di println(Tidak dapat dijangkau) var alert = UIAlertView(judul: Tidak Ada Koneksi Internet, pesan: Pastikan perangkat Anda terhubung ke internet., delegasi: nil, cancelButtonTitle: OK) alert.show() } - person Eric Chong; 14.07.2015
comment
gunakan self.presentviewController di viewDidLoad - person iAnurag; 14.07.2015
comment
Tidak ada kesalahan sekarang, tapi sama seperti sebelumnya. Tidak ada peringatan saat memulai aplikasi tanpa koneksi internet. - person Eric Chong; 14.07.2015
comment
pengiriman_async ada di proyek saya, saya mencarinya di web dan terlalu rumit untuk saya pahami saat ini, saya perlu waktu untuk menyelidikinya. - person Eric Chong; 14.07.2015