2016-10-19 18 views
5

Bây giờ tôi đang sử dụng UIWebView và với canInitWithRequest: của NSURLProtocol tôi có thể chặn tất cả các yêu cầu và thực hiện với những gì tôi muốn.Yêu cầu ngăn chặn với WKWebView

Trong WKWebView mới phương pháp này không có, và tôi không tìm thấy một cái gì đó tương tự.

Có ai đó đã giải quyết vấn đề này không?

+1

Không 'WKWebView' không hỗ trợ điều này. Nó là lạ mặc dù họ đã cải thiện bộ nhớ và không cung cấp tùy chọn để đánh chặn các cuộc gọi. –

+1

Nếu đơn giản bạn có thể kiểm tra tại đây http://stackoverflow.com/questions/24208229/wkwebview-and-nsurlprotocol-not-working. –

+0

Trong iOS 11, bạn có thể thêm trình xử lý lược đồ vào cấu hình chế độ xem web của mình (https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/2875766-seturlschemehandler?language=objc). Yêu cầu chặn trong iOS 10 trở về trước phức tạp hơn. Bạn nên sử dụng máy chủ HTTP tùy chỉnh trên thiết bị của mình. – clemens

Trả lời

0

Tôi mù quáng đoán dự đoán vì tôi chỉ có máy tính Windows với tôi. Bằng cách đọc tài liệu của Nhà phát triển Apple ở đây là thông tin tôi thu thập được có thể dẫn đến một số ý tưởng về cách giải quyết câu hỏi.

Dựa trên WKWebView,

Thiết lập thuộc tính đại biểu cho một đối tượng phù hợp với các giao thức WKUIDelegate để theo dõi việc tải nội dung web.

Ngoài ra, tôi thấy chúng ta có thể thiết lập của chúng tôi navigationDelegate với,

weak var navigationDelegate: WKNavigationDelegate? { get set }

Các phương pháp của WKNavigationDelegate giao thức giúp bạn thực hiện các hành vi tùy chỉnh được kích hoạt trong quá trình một cái nhìn web chấp nhận , tải và hoàn thành yêu cầu điều hướng.

Sau đó, sau khi tạo và đặt tùy chỉnh WKNavigationDelegate, chúng tôi sẽ ghi đè một số phương pháp để chặn nội dung chúng tôi có thể đang tìm kiếm. Tôi đã tìm thấy phần Responding to Server Actions của một số sở thích vì chúng nhận được thông số WKNavigation làm thông số. Hơn nữa, bạn có thể muốn lướt qua WKNavigationActionWKNavigationResponse xem liệu có lẽ điều gì đó có thể giúp chúng tôi đạt được mục tiêu của mình hay không.

BTW, tôi chỉ đưa ra một số ý tưởng về những gì để thử để chúng tôi có thể giải quyết câu hỏi này, ý tưởng có thể là nguyên nhân sai trái 100% tôi chưa tự mình thử.

+1

đại biểu điều hướng không kích hoạt các yêu cầu ajax hoặc tải hình ảnh cho exmaple. –

1

trong iOS 11 WKWebView đã đưa ra Trình xử lý lược đồ tùy chỉnh được gọi là WKURLSchemeHandler, mà bạn có thể sử dụng để chặn các sự kiện tùy chỉnh. để biết thêm thông tin xem dự án này. https://github.com/BKRApps/KRWebView

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