,你一直在爲其搜索是
– webView:decidePolicyForNavigationAction:request:frame:decisionListener:
這是WebPolicyDelegate
協議的一部分。
閱讀WebPolicyDelegate
的文檔,特別是關於此代表方法的討論。 WebPolicyDecisionListener
的文檔描述了您可以發送給偵聽器的消息。你可以在這個委託方法中標識一個重定向,並且你可以指示決策監聽器使用或忽略它。
編輯:
我很欣賞的50分,但是如果我不幫你解決你的問題,我幾乎覺得我值得他們,這就夠了內疚激勵我坐下來試試解決你的問題。
我構建了一個小應用程序,一個不基於文檔,或者使用ARC或垃圾收集。我在MainMenu.xib文件中關閉了自動佈局,並簡單地在其中放置了一個WebView實例。我修改了AppDelegate以包含WebView實例的出口。
我然後創建充實的-applicationDidFinishLaunching:
存根這樣的:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString *urlString = @"http://drive.google.com";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[[[self webView] mainFrame] loadRequest:urlRequest];
}
,如果我得到重定向,他們似乎並沒有成爲影響我的顯示頁面的能力。
我們是否在同一頁上(沒有雙關語意)?
編輯2:
好消息(或壞消息,這取決於你的POV):重定向從來不是問題(儘管他們的確有助於闡明什麼是真的要點亮)。
說到Google Drive,WebView並不是一個被認可的瀏覽器。但是,您可以通過修改用戶代理字符串來修復(N.B.,如下)。下面是修改後的代碼:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString *urlString = @"http://drive.google.com";
NSURL *url = [NSURL URLWithString:urlString];
NSString *customUserAgent = [NSString stringWithFormat:@"%@ Version/6.0.2 Safari/8536.26.17", [[self webView] userAgentForURL:url]];
[[self webView] setCustomUserAgent:customUserAgent];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[[[self webView] mainFrame] loadRequest:urlRequest];
}
N.B:用戶界面似乎是全功能的,但即便如此,谷歌可能會改變確定瀏覽器是什麼力所能及,打破這個方案,所以考慮自己的警告。您可能需要探索他們的SDK,以獲取訪問Google雲端硬盤的其他方式。
一如既往,在您的努力中祝您好運。
不幸的是,我將需要比這多一點的信息。雖然這種方法似乎是正確的,但我找不到任何消息發送它會改變重定向限額。如果有人知道要發送什麼信息,我將不勝感激。 – Josiah
這是你應該實施的信息。網絡視圖會詢問它的代表是否應該繼續重定向。由代表決定是否允許。 –
那麼,如果這是正確的委託消息,那麼我該如何處理呢?很顯然,當我不知道該如何放置該方法時,重寫某些內容並不是我的好處。 – Josiah