如果它进入webview(swift),如何在webview中打开链接

Posted

技术标签:

【中文标题】如果它进入webview(swift),如何在webview中打开链接【英文标题】:how o open link within webview if its come in webview(swift) 【发布时间】:2016-03-31 12:16:06 【问题描述】:

我在我的应用程序中通过 WebView 加载 html 字符串。当前的问题是,当我的 WebView 加载包含另一个链接的内容并且当用户单击该链接时,新视图未在我的应用程序中打开 - 它在默认浏览器中打开。如何在 WebView 中打开该链接?这是我的代码:

override func viewDidLoad() 
    super.viewDidLoad()

    self.edgesForExtendedLayout = UIRectEdge.None
    SVProgressHUD.show()
    //EZLoadingActivity.show("أرجو الإنتظار", disableUI: true)
    self.automaticallyAdjustsScrollViewInsets = false
    self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()
    self.navigationController!.navigationBar.barStyle = UIBarStyle.Black
    self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()

    let logo = UIImage(named: "toolbar_icon3")
    let imageView = UIImageView(image:logo)
    self.navigationItem.titleView = imageView

    myweb.loadHTMLString(webviewurl, baseURL: nil)

android 允许这样做:

public boolean shouldOverrideUrlLoading(WebView view, String url)

但是在 ios 上我们怎么能做到这一点呢?

【问题讨论】:

它们应该默认在 webview 中打开,除非您覆盖 shouldStartLoadWithRequest。请为您的“有时”案例提供一些示例链接 【参考方案1】:

您可以尝试为您创建一个网址请求UIWebView

yourWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))

如果您想在 Web 视图打开时执行某些操作,可以使用 UIWebViewDelegate 语句。

在你的课堂上:

class ViewController: UIViewController, UIWebViewDelegate 

那么,

yourWebView.delegate = self

最后,您可以使用:

func webViewDidStartLoad(webView: UIWebView) 
    //do something while the web view is loading!

有关 UIWebViewDelegate 的更多信息,请访问Apple's Documentation.

【讨论】:

以上是关于如果它进入webview(swift),如何在webview中打开链接的主要内容,如果未能解决你的问题,请参考以下文章

swift 如何获取webView的内容高度

如何在 Swift 上将 HTML 代码加载到 WebView

Swift Playground WebView 不会显示本地图像

如何使用swift为IOS推送通知打开新的WebView

Xcode 在 Swift 中调试 webview 的 javascript

WebView 中的 VideoView 不会播放视频?