【问题标题】:how can i open a url to current ios app instead of Safari?如何打开当前 ios 应用程序而不是 Safari 的 url?
【发布时间】:2021-10-12 22:02:26
【问题描述】:

假设我的应用上有一个按钮,当点击它时,它会调用一个网页或网址。

现在我想做的是,我想在我的应用程序屏幕上打开该网页,而不是 Safari 或任何其他浏览器?

我认为使用 web-view 是可能的。

【问题讨论】:

  • 是的,您需要使用网页视图或SFSafariViewController
  • @Paulw11 ,我不想在 safari 或任何浏览器中打开链接。
  • SFSafariViewController 是您在应用程序中呈现的视图控制器。它在您的应用程序和浏览器视图之间提供了隔离,这意味着您可以使用自动填充等功能
  • @Paul11 明白。

标签: ios swift uiwebview


【解决方案1】:

您应该创建自己的 Web 视图(或控制器),然后尝试在其上加载 URL。示例:

import WebKit

class MyWebViewController: UIViewController {
    private let webView = WKWebView()
    private let urlString: String
    
    init(url: String) {
        self.urlString = url
        super.init(nibName: nil, bundle: .main)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.addSubview(webView)
        webView.frame = view.bounds
        webView.autoresizingMask = [.flexibleLeftMargin, .flexibleTopMargin, .flexibleHeight, .flexibleWidth]
        
        guard let url = URL(string: urlString) else { return }
        webView.load(URLRequest(url: url))
    }
}

【讨论】:

    【解决方案2】:

    您必须使用网络视图:

    import WebKit
    
    override func viewDidLoad() {
            super.viewDidLoad()
            let url = URL(string: "https://google.com")!
            let webView = WKWebView(frame: view.bounds)
            webView.load(URLRequest(url: url))
            webView.navigationDelegate = self
            view.addSubview(webView)
        }
    

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 2020-02-09
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2021-10-10
      • 2016-03-21
      • 1970-01-01
      相关资源
      最近更新 更多