2012-05-23 141 views

回答

0

點擊該按鈕,你可以調用一個帶有UIWebView的UIViewController,然後你可以使用loadRequest: method加載你的URL。

+0

沒有按鈕。它是文本視圖中的一個簡單鏈接,我點擊它。 –

0

我實際上已經完成了奧斯卡推薦的內容。問題是,你真的只能給每個按鈕分配一個「鏈接」。我真的想知道更多關於你的問題。你是否真的擁有大量的文本,在多行UITextView中顯示多個HTML鏈接?您將文本放入UITextView靜態(不變)或動態(它發生變化)?

無論哪種情況,我都會建議在您的應用程序中將您的文本和鏈接作爲本地HTML文件進行實施,並在您自己的UIWebView中將其打開。在您自己的UIWebView中點擊的任何鏈接都將打開並保留在您的WebView中,而不是退出到標準瀏覽器。這是我多次完成的事情,因爲我已經使用本地存儲的HTML作爲遊戲路線等等,以便在應用程序中使用。有一種方法可以讓HTML頁面有一個透明的背景,以允許其他視圖(如背景等)顯示文本。我將稍後嘗試編輯這些內容,以便爲您提供必須添加到HTML文件以允許透明HTML支持的行(如果這是您需要的,它會使它看起來/感覺更像默認的UITextView)。

這也是蘋果公司推薦給他們的UITextView類參考: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextView_Class/Reference/UITextView.html

+0

我在我的文本視圖中從Twitter獲取推文。包含的文本是普通文本和鏈接的組合,或者可能只是鏈接。它們在運行時得到生成。然後,如果我點擊(點按)任何鏈接,默認瀏覽器打開。 –

+0

如果您正在提取推文並在文本視圖中顯示它們,那麼您是否可以不在搜索推文內的鏈接並將其替換爲您的自定義鏈接,然後按照我在答案中所述的方式顯示它們?如果你這樣做,那麼你的應用程序會在他們點擊鏈接時被調用,並且你可以在你的web視圖中顯示它們?推文內容是隱藏的還是隻讀的? – Gruntcakes

+0

它是隻讀的。我可以在文本視圖中查看推文內的鏈接。我可以點擊它們。現在的痛苦是打開我自己的Web View而不是默認的瀏覽器。 –

0

我不知道它可能像做登記覆蓋默認處理程序的鏈接的處理程序,但如果沒有的話你很容易改變鏈接?如果是這樣,你可以從一個鏈接來啓動你的應用程序,如:

myappurlscheme://

如果在原來的鏈接,你需要將它傳遞給你的應用程序,如

myappurlscheme信息:/ /http.theoriginalurl.com/somestuff

然後在您的應用程序中,您可以提取http.theoriginalurl.com/somestuff並將其傳遞給UIWebVIew。

此技巧通常用於啓動應用程序,但由於您的應用程序已在運行,它仍然可以正常工作並導致對您的應用程序委託進行函數調用。

http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

+0

事情是你只能點擊文本視圖中的鏈接。當你這樣做的時候,你不能提取任何東西。所以不能傳遞給任何Web視圖。所以有我的問題。 –

0

使用NSURLProtocol - 從中​​獲得自己的類並實現相關方法(看看它應該是自我解釋的文件,如果沒有任何問題,再回到這裏)。

您將在您的應用代理的didFinishLaunchingWithOptions中註冊您的課程。

當在文本視圖中單擊鏈接時,您將有機會攔截url並阻止瀏覽器啓動。一旦你截獲了你的網址,你就可以做你想要的東西 - 比如在UIWebView之內加載它。

0

有一個UITextViewDelegate方法 - textView:shouldInteractWithURL:inRange:它返回一個Bool變量。

因此,只需在此方法中創建自定義的UIWebView並在此webview中加載URL,並返回No以阻止默認瀏覽器打開該鏈接。

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{ NSLog(@"%@",URL); UIStoryboard *storyboard = self.storyboard; SDWebViewController *webViewController = [storyboard instantiateViewControllerWithIdentifier:@"WebViewController"]; webViewController.strURL = [NSString stringWithFormat:@"%@",[URL absoluteString]]; [self.navigationController pushViewController:webViewController animated:YES]; return NO; }

然後加載SDWebViewController類對象在網頁視圖的URL。

相關問題