我正在创建一个 Safari 应用程序扩展。我下载了 Sea Creator示例项目。
我想在扩展程序和 javascript 之间发送消息。根据Apple提供的文档,我应该可以使用以下功能来做到这一点:
override func messageReceived(withName messageName: String, from page: SFSafariPage, userInfo: [String : AnyObject]!) {
page.dispatchMessageToScript(withName: "simpleMessage", userInfo: nil)
page.dispatchMessageToScript(withName: "complexMessage", userInfo: ["myKey": "myValue"])
}
在 Sea Creator 项目中,我将 SafariWebExtensionHandler 修改为
import SafariServices
class SafariWebExtensionHandler: SFSafariExtensionHandler {
override func messageReceived(withName messageName: String, from page: SFSafariPage, userInfo: [String : AnyObject]!) {
page.dispatchMessageToScript(withName: "simpleMessage", userInfo: nil)
page.dispatchMessageToScript(withName: "complexMessage", userInfo: ["myKey": "myValue"])
}
}
但我收到构建时错误:在范围内找不到类型“SFSafariExtensionHandler”
我在 Mac OS 版本 11.4 上运行 Xcode 13.0 beta (13A5154h)
我觉得奇怪的是我从 github 下载了一个随机项目,它并没有给我同样的错误。我想知道是否缺少一些其他配置。