不使用我的子類NSURLProtocol
和didFinishLaunchingWithOptions
與此代碼註冊它:定製NSURLProtocol排在第二的WebView
+ (void) registerProtocol
{
static BOOL registered = NO;
if (!registered)
{
[NSURLProtocol registerClass:[MyURLProtocol class]];
registered = YES;
}
}
對於我的應用程序的第一UIWebView
(在主窗口)canInitWithRequest
被觸發的方法,和我可以執行我的自定義代碼。
但是我有第二個UIWebView
,這是在應用程序中的某個點(模態地顯示)推送的UIViewController
中。 canInitWithRequest
將不會被調用第二個UIWebView
,因此我不能執行我的自定義代碼。當協議在創建UIWebView
的兩個實例後註冊時,情況甚至如此。
任何人都知道爲什麼?
d'oh!我只是發現它只是在一個被加載在第二的WebView :( 的作品就像一個魅力在這兩個網頁視圖現在的JavaScript一個普通的錯誤!
問題不在於註冊您的協議。你只需要註冊一次。我很想知道你是如何在UIWebView中加載你的請求的。例如,你在調用[webView loadRequest:request]。 – jimmyg 2012-01-11 23:14:47
實際上,請求是從javascript/ajax調用中觸發的,我試圖在canInitWithRequest中攔截它。適用於第一個webview,不適用於第二個webview :( – user826955 2012-01-12 07:15:22
你能提供一些你發現的修復的細節嗎?即使它是一個特定於你的應用的js錯誤,我遇到了同樣的問題,我的頭髮試圖找出問題。 – 2012-11-02 14:35:18