gpt4 book ai didi

swift - Safari 应用扩展 : WKWebKit in Popover not loading content

转载 作者:行者123 更新时间:2023-12-04 18:19:49 24 4
gpt4 key购买 nike

目标
实现一个 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)
}

}

最佳答案

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

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

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

关于swift - Safari 应用扩展 : WKWebKit in Popover not loading content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com