2014-11-06 34 views
0

呼籲shouldStartLoadWithRequest上點擊。在開始的時候每個頁面有鏈接(像索引)的文件。Web視圖不會對我有一個網絡視圖,其中我加載一個HTML頁面鏈接

要求是:當點擊網頁瀏覽內容的網址,打開該鏈接在默認的Safari應用,即應用程序之外。

我的問題:當我點擊內容鏈接檢測爲超鏈接和外部的Safari瀏覽器中打開它。如果我雙擊主頁按鈕 - >選擇我的應用程序 - >再次點擊同一鏈接,它會在應用程序瀏覽器中顯示我的內容,即向下滾動到該內容。 我正在使用shouldStartLoadWithRequest委託方法,但它沒有在第二種情況下調用。

我的問題:我如何能夠同時實現。如果點擊某個網址,則在外部應用中打開它。在上面的情況下,它應該向下滾動以顯示頁面內容。

示例代碼如下:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    switch (navigationType) { 

     case UIWebViewNavigationTypeFormSubmitted: 
      // request was caused by an image that's being loaded 
      break; 
     case UIWebViewNavigationTypeBackForward: 
      // request was caused by an image that's being loaded 
      break; 
     case UIWebViewNavigationTypeReload: 
      // request was caused by an image that's being loaded 
      break; 
     case UIWebViewNavigationTypeFormResubmitted: 
      // request was caused by an image that's being loaded 
      break; 
     case UIWebViewNavigationTypeLinkClicked: { 

      // user clicked on link 
      [[UIApplication sharedApplication] openURL:request.URL]; 

      return NO; 
     } 
     case UIWebViewNavigationTypeOther: 
      // request was caused by an image that's being loaded 
      break; 
    } 

    return YES; 
} 

任何幫助嗎?

+0

請清除問題。 – gran33 2014-11-06 07:59:23

+0

UIWebView的委託設置? – Amandir 2014-11-06 08:19:07

+0

+1到@ gran33。請提高你的英語水平。 – kelin 2014-11-06 09:01:22

回答

0

問題是你重定向到Safari瀏覽器之後,從shouldStartLoadWithRequest方法返回YES。要達到所需的行爲,您應該在第一種情況下返回NO,然後,當用戶返回到應用程序並再次單擊該鏈接時,應返回YES。這是因爲WebView僅在您的情況下加載請求一次。

相關問題