2010-01-23 69 views
2

我有一個文本視圖,其中有鏈接到網頁,如維基百科。通常,當我點擊鏈接時,它會關閉我的應用程序並打開Safari。如何打開WebView中的鏈接而不是Safari?

如何控制超鏈接,因此它會將網頁加載到UIWebView而不是Safari?

將按鈕放在鏈接上並不是我想要的,因爲它是一個可滾動的文本視圖。

是否有我可以打電話的空白,因爲我還需要在單擊鏈接時顯示Web視圖。

謝謝。任何答案將不勝感激。

(我是一個12歲的學習爲iPhone編程。見Spaceulator或訪問timh.me.uk我的第一個應用程序)

回答

2

您可以將您的應用程序註冊爲某個URL方案的URL處理程序 - 例如「nttp」。 添加下一行的Info.plist文件:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.test.nttp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>nttp</string> 
     </array> 
    </dict> 
</array> 

當你寫你的文本內容來看,而不使用「HTTP」(「NTTP的「NTTP」 URL方案://www.stackoverflow .com /「而不是」http://www.stackoverflow.com/「)。

落實應用:handleOpenURL:方法在應用程序委託:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 

NSString *aUrl = [url absoluteString]; 

// Use the URL 

return YES; } 

例如,您可以通過「HTTP」取代「NTTP」,並啓動一些網絡視圖,它...

希望這個解決方案足夠好...

+0

謝謝邁克爾。鏈接nttp://www.stackoverflow.com(或任何其他與nttp的網址)現在顯示藍色,並且像超鏈接一樣,但是當它被點擊時,它實際上並沒有做任何事情。我已經在應用程序委託和視圖控制器(我的所有代碼都在這裏)嘗試過它,但它沒有被調用。這裏是我輸入的代碼: - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { \t \t NSString * aUrl = [url absoluteString]; \t \t //在UIWebView中加載請求。 \t [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:aUrl]]]; \t \t //使用網址 \t \t return YES; } – philh 2010-01-24 14:27:00

1

AFAIK這是不可能與一個UITextView。

但是,您可以改爲在UIWebView中顯示文本(在將其轉換爲HTML之後),以便您從一開始就處於UIWebView中。

相關問題