สำคัญ : การตรวจสอบนี้ควรเสมอจะดำเนินการถ่ายทอดสด คำตอบส่วนใหญ่ด้านล่างเป็นแบบซิงโครนัสดังนั้นโปรดระมัดระวังมิฉะนั้นคุณจะทำให้แอปของคุณค้าง
รวดเร็ว
1) ติดตั้งผ่าน CocoaPods หรือ Carthage: https://github.com/ashleymills/Reachability.swift
2) ทดสอบการเข้าถึงผ่านการปิด
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")
}
Objective-C
1) เพิ่มSystemConfiguration
กรอบการทำงานให้กับโครงการ แต่ไม่ต้องกังวลกับการรวมไว้ที่ใดก็ได้
2) เพิ่มรุ่นของ Tony ล้านReachability.h
และReachability.m
ในโครงการ (ดูที่นี่: https://github.com/tonymillion/Reachability )
3) อัปเดตส่วนอินเทอร์เฟซ
#import "Reachability.h"
// Add this to the interface in the .m file of your view controller
@interface MyViewController ()
{
Reachability *internetReachableFoo;
}
@end
4) จากนั้นใช้วิธีการนี้ในไฟล์. m ของตัวควบคุมมุมมองของคุณซึ่งคุณสามารถโทรได้
// 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];
}
หมายเหตุสำคัญ:Reachability
ชั้นเป็นหนึ่งในชั้นเรียนที่ใช้มากที่สุดในโครงการเพื่อให้คุณอาจจะเป็นความขัดแย้งการตั้งชื่อกับโครงการอื่น ๆ หากสิ่งนี้เกิดขึ้นคุณจะต้องเปลี่ยนชื่อหนึ่งในคู่Reachability.h
และReachability.m
ไฟล์เป็นอย่างอื่นเพื่อแก้ไขปัญหา
หมายเหตุ:โดเมนที่คุณใช้ไม่สำคัญ มันแค่ทดสอบหาเกตเวย์ไปยังโดเมนใด ๆ
return (BOOL)URLString;
หรือดีกว่าreturn !!URLString
หรือreturn URLString != nil