我有一個文本視圖,幷包含一些鏈接。當我點擊鏈接時,默認的iOS瀏覽器打開。但我想爲此打開我的自定義Web視圖。我該怎麼做?如何防止在點擊TextView中的鏈接時打開默認瀏覽器?
回答
點擊該按鈕,你可以調用一個帶有UIWebView的UIViewController,然後你可以使用loadRequest: method
加載你的URL。
我實際上已經完成了奧斯卡推薦的內容。問題是,你真的只能給每個按鈕分配一個「鏈接」。我真的想知道更多關於你的問題。你是否真的擁有大量的文本,在多行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
我在我的文本視圖中從Twitter獲取推文。包含的文本是普通文本和鏈接的組合,或者可能只是鏈接。它們在運行時得到生成。然後,如果我點擊(點按)任何鏈接,默認瀏覽器打開。 –
如果您正在提取推文並在文本視圖中顯示它們,那麼您是否可以不在搜索推文內的鏈接並將其替換爲您的自定義鏈接,然後按照我在答案中所述的方式顯示它們?如果你這樣做,那麼你的應用程序會在他們點擊鏈接時被調用,並且你可以在你的web視圖中顯示它們?推文內容是隱藏的還是隻讀的? – Gruntcakes
它是隻讀的。我可以在文本視圖中查看推文內的鏈接。我可以點擊它們。現在的痛苦是打開我自己的Web View而不是默認的瀏覽器。 –
我不知道它可能像做登記覆蓋默認處理程序的鏈接的處理程序,但如果沒有的話你很容易改變鏈接?如果是這樣,你可以從一個鏈接來啓動你的應用程序,如:
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
事情是你只能點擊文本視圖中的鏈接。當你這樣做的時候,你不能提取任何東西。所以不能傳遞給任何Web視圖。所以有我的問題。 –
使用NSURLProtocol
- 從中獲得自己的類並實現相關方法(看看它應該是自我解釋的文件,如果沒有任何問題,再回到這裏)。
您將在您的應用代理的didFinishLaunchingWithOptions
中註冊您的課程。
當在文本視圖中單擊鏈接時,您將有機會攔截url並阻止瀏覽器啓動。一旦你截獲了你的網址,你就可以做你想要的東西 - 比如在UIWebView
之內加載它。
有一個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。
- 1. 如何在默認瀏覽器中打開鉻瀏覽器鏈接的點擊?
- 2. 如何在HTA的默認Web瀏覽器中打開鏈接?
- 3. 在QtWebView中捕獲鏈接點擊並在默認瀏覽器中打開
- 4. 如何強制WebView在默認瀏覽器中打開鏈接?
- 5. 如何使用JavaMe在默認瀏覽器中打開鏈接?
- 6. 打開Web瀏覽器點擊默認瀏覽器
- 7. 點擊texview中的鏈接後,如何在webview而不是默認瀏覽器中打開該鏈接?
- 8. 打開IE瀏覽器時點擊瀏覽器中的鏈接c#?
- 9. WinRT:無論默認瀏覽器在Internet Explorer中打開鏈接
- 10. MoSync:在默認瀏覽器中打開鏈接
- 11. 在默認瀏覽器中打開WebView鏈接
- 12. 在默認瀏覽器中打開所有超鏈接
- 13. 在默認瀏覽器中打開Android webview鏈接
- 14. 防止Chrome瀏覽器中的鏈接點擊發生變化
- 15. 如何打開默認瀏覽器
- 16. 如何在默認瀏覽器中打開wpf webview中的鏈接
- 17. 如何在默認瀏覽器中從hta打開iframe中的鏈接
- 18. 在默認瀏覽器中打開URL
- 19. 如何防止鏈接在Gmail的集成迷你瀏覽器中打開
- 20. web瀏覽器的I幀在默認瀏覽器中打開
- 21. Android Webview - 如何在默認瀏覽器中打開外部鏈接?
- 22. awesomium打開點擊鏈接在用戶的瀏覽器
- 23. 如何在C#中使用默認瀏覽器打開Web瀏覽器中的鏈接?
- 24. 點擊Vimeo打開默認瀏覽器 - Android
- 25. 如何在用戶的默認瀏覽器中打開客戶端集成瀏覽器的鏈接?
- 26. 如何在PhoneGap上的InApp瀏覽器內部的默認瀏覽器中打開鏈接
- 27. webview鏈接打開到默認瀏覽器
- 28. 下載鏈接點擊瀏覽器中打開下載窗口
- 29. 在鏈接上打開文件瀏覽器點擊
- 30. Android WebView在WebView中單擊打開並非默認瀏覽器?
沒有按鈕。它是文本視圖中的一個簡單鏈接,我點擊它。 –