2012-06-01 21 views
5

Câu hỏi có vẻ lạ, nhưng đây là trường hợp của tôi.Đóng UIWebView bằng javascript: window.close();

Tôi có UIWebView trong số UIView (do [self.view addSubview:webView];) thực hiện, chiếm toàn màn hình. Nó cố tình ẩn UIView trước khi số UIWebView nhấp vào một hành động javascript:window.close();.

Làm cách nào để liên kết JavaScript trong UIWebView trang đến hành động của UIView, ví dụ: [webView removeFromSuperView];?

Trả lời

7

Điều này có thể:

Đặt vị trí để một cái gì đó với chương trình của riêng bạn trong url, tức là

document.location.href = "myscheme: // DoSomething"

Điều này sẽ gây ra phương thức UIWebViewDelegate shouldStartLoadWithRequest: được gọi với tham số NSURLRequest có lược đồ là "myscheme". Vì vậy, bạn tìm kiếm sơ đồ này và trích xuất DoSomething và sau đó hành động trên DoSomething, mà trong trường hợp của bạn sẽ được gọi là loại bỏ từ superView.

(Trong UIWebView dealloc có thể cần phải đảm bảo bạn gọi stopLoading)

+0

nghe có vẻ như nó hoạt động. Hãy để tôi làm một bài kiểm tra và lấy lại cho các bạn. – Raptor

+1

Thành công! Thực ra không cần sử dụng Lược đồ URL. Chỉ cần tạo một mẫu trong URL, sau đó đọc mẫu trong '[đường dẫn NSURL]' bởi 'shouldStartLoadWithRequest:'. Xử lý mẫu với logic khác nhau (bạn thậm chí có thể truyền các biến với chuỗi truy vấn (của coz, các giá trị POST không thể đọc được). – Raptor

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