2012-09-17 38 views
0

有沒有一種方法來處理這種瘋狂?我正在嘗試構建一個自助服務終端的瀏覽器應用程序,以限制運行其他應用程序的大量需求,並且只保留在一個網站中。在WebView中捕捉mailto鏈接

我研究發現decidePolicyForNavigationAction應該爲我想要的工作,但我該如何開始過濾URI方案(mailto://,irc://等)?謝謝!

+0

didStartProvisionalLoadForFrame已經做讓我的web視圖留我指定範圍內的一個好工作。有沒有辦法讓這更強大的檢查URI方案? – user1399039

回答

2

您正在應用程序中實施WebView以瀏覽網頁,對嗎?
如果是,請查看WebPolicyDelegate Protocol參考。
尤其是以下代表可能會感興趣:

   - (void)webView:(WebView *)webView 
decidePolicyForNewWindowAction:(NSDictionary *)actionInformation 
         request:(NSURLRequest *)request 
        newFrameName:(NSString *)frameName 
       decisionListener:(id <WebPolicyDecisionListener>)listener 

使用上面的委託,可以驗證的任何要求,包括mailto請求。
快速例如如何檢測URL方案,並據此決定是否阻止:

NSLog(@"Request URL scheme = %@",[[request URL] scheme]); 
if([[[request URL] scheme]isEqualToString:@"mailto"]) 
{ 
    [listener ignore]; // Block Request 
} 
else 
{ 
    [listener use]; // Allow Request 
}