2012-06-12 16 views
0

我希望能捕捉AJAX請求後,我已經閱讀此線程: UIWebViewDelegate not monitoring XMLHttpRequest?>XMLHttpRequest的目標C

但是我希望有一些方法來實現這一目標使用的OBJ C時不通過JavaScript去。我已經有一個UIWebView設置及其代表。但是由於這並沒有捕獲XMLHttpRequest,我應該實現什麼來實現這個以及在哪裏?謝謝。

回答

2

看看NSURLProtocol - 這應該使你能夠攔截請求。

基本上你會 - 創建NSURLProtocol派生自己的類和applicationDidFinishLaunchingWithOptions進行註冊:使用NSURLProtocol:的RegisterClass:

  • 連接將調用initWithRequest:cachedResponse:客戶端:然後startLoading。

  • 你會調用連接回來URLProtocol:didReceiveResponse:cacheStoragePolicy :,一定數量的來電URLProtocol:didLoadData :,終於URLProtocolDidFinishLoading:

一旦截獲了電話,你可以讓他們繼續前行,預先打擊他們,阻止他們前進等。

+0

感謝您的回答!我基本上嘗試了你所說的,我在視圖控制器中使用了NSURLProtocol:registerclass:。然而,我想知道,是否有任何方式從NSURLProtocol派生我的自定義類設置視圖控制器作爲我的視圖控制器內的委託?謝謝! – bph

+0

有趣的問題。我不知道我的頭頂,我不得不去做一些調查。我相信會有某種解決方案,它只是最簡單/最優秀的發現。如果沒有別的,它可以發佈通知。 – Gruntcakes

+0

對於任何優雅的選項,你有任何線索嗎?如果我要在自定義的NSURLProtocol類中創建一個委託,我需要一個類的實例來設置它的權利? – bph