Tôi đã tìm kiếm nhưng không thể thấy câu hỏi tương tự.Khả năng hiển thị đôi khi không thành công, ngay cả khi chúng tôi có kết nối Internet
Tôi đã thêm phương pháp để kiểm tra kết nối internet theo ví dụ Khả năng hiển thị. Nó hoạt động hầu hết thời gian, nhưng khi cài đặt trên iPhone, nó thường xuyên thất bại ngay cả khi tôi có kết nối internet (chỉ khi trên 3G/EDGE - WiFi là OK).
Về cơ bản, mã dưới đây trả về NO.
Nếu tôi chuyển sang ứng dụng khác, hãy nói Thư hoặc Safari và kết nối, sau đó chuyển về ứng dụng, sau đó mã cho biết internet có thể truy cập được. Kinda có vẻ như nó cần một 'nudge'.
Bất cứ ai đã thấy điều này trước đây? Bất kỳ ý tưởng?
Rất cám ơn James
+ (BOOL) doWeHaveInternetConnection{
BOOL success;
// google should always be up right?!
const char *host_name = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
NSLog(@"Google is reachable: %d", flags);
}else{
NSLog(@"Google is unreachable");
}
return isAvailable;
}
Xin lỗi, tôi hơi ngớ ngẩn. Tôi đã thêm ví dụ về các lớp Khả năng hiển thị vào dự án của tôi, nhưng không thể biên dịch. \t Khả năng hiển thị * hostReach = [[Khả năng hiển thị khả năng hiển thịWithHostName: @ "www.apple.com"] giữ lại]; Không hoạt động. Không thể tìm thấy phương thức reachabilityWithHostName. tôi sẽ tiếp tục tinh chỉnh ... – stoutyhk
công trình này: + (BOOL) doWeHaveInternetConnection2 { \t \t if ([[reachability sharedReachability] internetConnectionStatus] == NotReachable) { \t \t trở NO; \t} \t else \t { \t \t return YES; \t} \t } – stoutyhk
mã đó luôn cung cấp cho bạn "Không được kết nối" mặc dù được kết nối. nhưng một khi nó đi đến phương pháp "reachabilityChanged" nó cung cấp cho bạn tình trạng chính xác.Vậy làm thế nào để có được trạng thái chính xác ngay từ đầu? – Nnp