2011-08-16 28 views
6

Tôi muốn mở một URL cần mật khẩu và tên người dùng trong UIWebview. Chẳng hạn như mở Wifi Router địa phương của tôi (192.168.1.1). Nhưng khi tôi thử mã sau, không có popup như Safari để yêu cầu mật khẩu và tên người dùng.cách mở url cần tên người dùng và mật khẩu bằng uiwebview?

NSURL *url = [NSURL URLWithString:@"http://192.168.1.1"]; 
NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; 
[self._webView loadRequest:httpReq]; 

Vì ai đó bảo tôi sử dụng NSURLConnectionDelegate, tôi biết điều này, nhưng tôi không biết cách hiển thị trang được ủy quyền cho UIWebView.

+0

Hãy thử thêm các lĩnh vực Authorization, như mô tả ở đây: http://stackoverflow.com/questions/1973325/nsurlconnection-and-basic-http-authentication – SVD

Trả lời

7

Điều này sẽ giúp

NSURL *url = [NSURL URLWithString:@"http://username:[email protected]"]; NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; [self._webView loadRequest:httpReq];

3

Bạn cần triển khai kết nối: didReceiveAuthenticationChallenge: trong NSURLConnectionDelegate. Để biết chi tiết, hãy đọc Authentication Challenges chương từ Apple "Hướng dẫn lập trình hệ thống tải URL".

+1

Nhưng làm thế nào để sử dụng một UIWebView để tải theo yêu cầu? – ZYiOS

1

UIWebView không cung cấp bất kỳ cơ chế để xác định phản ứng. Vì vậy, một giải pháp được giải thích trong UIWebViewHttpStatusCodeHandling dự án github xác định mã trạng thái của phản hồi (phải là 404 trong trường hợp của bạn).

Tuy nhiên, nhược điểm chính là cho mỗi yêu cầu bạn cần sử dụng NSURLConnection và tải lại yêu cầu. Nhưng trong trường hợp này, bạn cũng có thể hủy NSURLConnection.

Giải pháp khác nên (có thể) là việc sử dụng Java-Script. Tìm kiếm tập lệnh Java, cung cấp mã trạng thái của phản hồi.

Các vấn đề liên quan