2009-11-02 34 views

Trả lời

74

Có, điều đó là có thể. Sử dụng các giao thức UIWebViewDelegate và thực hiện các phương pháp sau đây trong đại biểu của bạn:

- (void)webViewDidFinishLoad:(UIWebView *)webView 

Nếu bạn muốn URL, bạn có thể nhận được yêu cầu cuối cùng sử dụng tài sản request:

webView.request.URL 
+0

Cảm ơn :) Đã hoạt động :) – ishhhh

+0

Rất tiếc khi đánh thức chủ đề đã chết nhưng webView (UIWebview *) có phải là webView tên của cửa hàng tên trang web của bạn không? –

+1

@CameronTarbell Đây là phương thức ủy nhiệm, nó sẽ chuyển sang chế độ xem web đã tải xong bằng biến 'webView', độc lập với tên lối ra của bạn. – Pascal

1

phương pháp Rất đơn giản:

Bước 1: Đặt đại biểu UIWebViewDelegate trong tệp tiêu đề.

Bước 2: Add sau webViewDidFinishLoad phương pháp để có được URL hiện tại của webview

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSLog(@"Current URL = %@",webView.request.URL); 

    //-- Add further custom actions if needed 
} 
2

Không ai trong số các giải pháp phát hiện làm việc cho tôi.

Sau đó, tôi tìm thấy ví dụ này ít nhất hoạt động tốt hơn nhiều so với bất kỳ giải pháp nào khác mà tôi tìm thấy trên Google/StackOverflow.

uiwebview-load-completion-tracker

1

Pascal của câu trả lời cho "lấy URL" một phần là tốt.

Tuy nhiên!

Từ tài liệu UIWebViewDelegate, từ Apple: "webViewDidFinishLoad: Đã gửi sau khi chế độ xem web kết thúc tải khung."

Khung! = Trang.

webViewDidFinishLoad được gọi khi trang "tải xong". Nó cũng có thể được gọi nhiều lần trước đó. Tải trang từ Amazon.com có ​​thể tạo ra một tá cuộc gọi tới webViewDidFinishLoad.

Nếu bạn kiểm soát nguồn trang, thì bạn có thể thực hiện kiểm tra tải cho nó, và nó sẽ hoạt động, trong trường hợp đó. Nếu bạn chỉ quan tâm đến việc được gọi là "sau khi tải xong trang", thì webViewDidFinishLoad là đủ.

Đối với các trang tùy ý, với JavaScript tùy ý, tải biểu ngữ quảng cáo vĩnh viễn hoặc biểu ngữ tự động kiểm tra hoặc triển khai trò chơi video, ý tưởng của một trang đang được tải xong là sai.

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