【问题标题】:Safari App Extension: WKWebKit in Popover not loading contentSafari 应用程序扩展:Popover 中的 WKWebKit 未加载内容
【发布时间】:2018-07-24 15:20:21
【问题描述】:

目标 实现一个 Safari 应用扩展,显示一个弹出窗口,其中包含一个显示网页的 WebView。

问题 弹出框在 Safari 中正确显示,单击它会弹出一个空白弹出框,其中没有任何内容。

根据控制台中的日志,viewDidLoad() 消息正确显示,但弹出框只是空白。我在这里做错了什么?

谢谢!

这是我的代码: SafariExtensionViewController.swift

import SafariServices
import WebKit
import os.log

class SafariExtensionViewController: SFSafariExtensionViewController, WKNavigationDelegate {

    static let shared = SafariExtensionViewController()

    var webView : WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "safari")    
        self.preferredContentSize = NSMakeSize(300, 450)
        webView = WKWebView(frame: self.view.frame)
        self.view.addSubview(webView)
        webView.navigationDelegate = self
        webView.translatesAutoresizingMaskIntoConstraints = false;

        let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: self.view, attribute: .height, multiplier: 1, constant: 0)
        let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: self.view, attribute: .width, multiplier: 1, constant: 0)
        self.view.addConstraints([height,width])

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

        os_log("viewDidLoad() has finished.", log: log)
    }

}

【问题讨论】:

    标签: swift wkwebview safari-app-extension


    【解决方案1】:

    如果您正在使用 safari 扩展应用,则需要在扩展的 .entitlements 文件中添加网络请求的权限。

    <key>com.apple.security.network.server</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
    

    添加这些行,它对我有用。

    【讨论】:

    • 谢谢!我花了几个小时才得到这个......奇怪的是我在 xcode 功能选项卡中启用了复选框(因为我在其他地方找到了类似的答案)。但由于某种原因,它没有保存到 .entitlements 文件中......
    【解决方案2】:

    发现问题了!事实证明,对于访问网络的扩展,您需要转到目标 -> 功能部分,打开 App Sandboxing 并启用 Outgoing Network Requests。

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多