2011-09-16 60 views
0

在OSX上,我使用XCode製作一個帶有webview的桌面應用程序。 webview加載正常,我可以動態加載內容 - 但是當我點擊webview中的鏈接時,他們沒有被遵循。他們改變顏色,但沒有加載新的頁面。如果我用這樣的JavaScript編碼我的鏈接 - 那麼他們工作。禁用可可的webview鏈接

<a href='http://x/' onClick="window.location = this.href">link there</a> 

是否有Objective-C的一個班輪,允許在網絡視圖內部遵循鏈接?

我還沒有意識到另一個問題嗎?

+0

如果我載入Gmail到網頁視圖,我可以使用電子郵件,撰寫等等...但在頂部不要鏈接工作。 –

+0

@慷慨的權利,我的錯誤 –

回答

0

原來是因爲我有我的代碼複製形式與一些自定義函數忽略WebPolicyDecisionListener網絡...

對不起,問問題,而不給所有的細節 - 這一切的Objective-C是新的我,我不知道哪些位尚未完成。我做了一些指點和點擊,然後是一些編碼 - 我不知道這些鏈接到底是什麼。與其他語言,你有整個程序在一個地方 - 它需要一點學習曲線來習慣......但我離題了。

我固定的,加入一些意見 - 請參見下面的代碼...

- (void)webView:(WebView *)aWebView 
decidePolicyForNavigationAction:(NSDictionary *)actionInformation 
     request:(NSURLRequest *)request 
      frame:(WebFrame *)frame 
decisionListener:(id <WebPolicyDecisionListener>)listener 
{ 
    if ([self requestIsLinkClick:actionInformation]) { 
     if ([@"method" isEqual:[[request URL] scheme]]) { 
      SEL selector = NSSelectorFromString([[request URL] resourceSpecifier]); 
      if ([prototypeDelegate respondsToSelector:selector]) { 
       [prototypeDelegate performSelector:selector]; 
      } 
     } 
     // [listener ignore]; 
    } // else { 
     [listener use]; 
    //} 
} 
6

Gmail頂部的鏈接將在新窗口中打開。要使它們工作,您必須至少實施WebUIDelegate方法webView:createWebViewWithRequest:webViewShow:。如果您只想在同一網頁視圖中打開所有鏈接,則可以從webView:createWebViewWithRequest:中返回它,而不是創建一個新鏈接。