UIActivityViewController не работает с WKWebView - PullRequest
0 голосов
/ 17 апреля 2020

Как реализовать UIActivityViewController для WKWebView в swift?

У меня есть следующая реализация UIActivityViewController, к сожалению, действие ActivityView для совместного использования не отображается.

CODE ОБНОВЛЕНИЕ:

class ViewController: UIViewController, WKNavigationDelegate {

var webView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    self.loadView();
}

override func loadView() {
    webView = WKWebView()
    webView.navigationDelegate = self
    view = webView

    let url = URL(string: "https://www.google.com")!
    webView.load(URLRequest(url: url))
    webView.allowsBackForwardNavigationGestures = true
    webView.allowsLinkPreview = true

    let items = [url]
    let activityViewController = UIActivityViewController(activityItems: items , applicationActivities: nil)
    activityViewController.popoverPresentationController?.sourceView = self.view
    self.present(activityViewController, animated: true, completion: nil)
}

...

}

1 Ответ

0 голосов
/ 20 апреля 2020

Вы не можете present контроллер в viewDidLoad

Код:

var webView: WKWebView!

override func viewDidLoad() {
      super.viewDidLoad()
      loadCMSData()
  }

fileprivate func loadCMSData(){
    webView = WKWebView()
    webView.navigationDelegate = self
    view = webView

    let url = URL(string: "https://www.google.com")!
    webView.load(URLRequest(url: url))
    webView.allowsBackForwardNavigationGestures = true
    webView.allowsLinkPreview = true
}


override func viewDidAppear(_ animated: Bool) {
    let url = URL(string: "https://www.google.com")!
    let items = [url]
    let activityViewController = UIActivityViewController(activityItems: items , applicationActivities: nil)
    activityViewController.popoverPresentationController?.sourceView = self.view
    self.present(activityViewController, animated: true, completion: nil)
}
...