Penting : Pemeriksaan ini harus selalu dilakukan secara tidak sinkron. Sebagian besar jawaban di bawah ini sinkron jadi berhati-hatilah karena jika tidak Anda akan membekukan aplikasi Anda.
Cepat
1) Pasang melalui CocoaPods atau Carthage: https://github.com/ashleymills/Reachability.swift
2) Uji kemampuan jangkau melalui penutupan
let reachability = Reachability()!
reachability.whenReachable = { reachability in
if reachability.connection == .wifi {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
}
reachability.whenUnreachable = { _ in
print("Not reachable")
}
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
Objektif-C
1) Tambahkan SystemConfiguration
kerangka kerja ke proyek tetapi jangan khawatir tentang memasukkannya ke mana saja
2) Tambahkan versi Tony Million Reachability.h
dan Reachability.m
ke proyek (ditemukan di sini: https://github.com/tonymillion/Reachability )
3) Perbarui bagian antarmuka
#import "Reachability.h"
// Add this to the interface in the .m file of your view controller
@interface MyViewController ()
{
Reachability *internetReachableFoo;
}
@end
4) Kemudian implementasikan metode ini dalam file .m dari view controller Anda yang dapat Anda panggil
// Checks if we have an internet connection or not
- (void)testInternetConnection
{
internetReachableFoo = [Reachability reachabilityWithHostname:@"www.google.com"];
// Internet is reachable
internetReachableFoo.reachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Yayyy, we have the interwebs!");
});
};
// Internet is not reachable
internetReachableFoo.unreachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Someone broke the internet :(");
});
};
[internetReachableFoo startNotifier];
}
Catatan Penting: The Reachability
class adalah salah satu yang paling kelas digunakan dalam proyek-proyek sehingga Anda mungkin mengalami konflik penamaan dengan proyek-proyek lainnya. Jika ini terjadi, Anda harus mengganti nama salah satu dari pasangan Reachability.h
danReachability.m
file ke sesuatu yang lain untuk menyelesaikan masalah.
Catatan: Domain yang Anda gunakan tidak masalah. Itu hanya menguji gateway ke domain apa saja.
return (BOOL)URLString;
, atau bahkan lebih baik,return !!URLString
ataureturn URLString != nil