我正在创建Safari应用程序扩展。我下载了Sea Creator示例项目。
我想在扩展和javascript之间发送消息。根据苹果公司提供的文件,我应该能够使用以下功能:
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操作系统11.4版上运行Xcode 13.0测试版(13A5154h(
我觉得奇怪的是,我从github下载了一个随机项目,但它并没有给我带来同样的错误。我想知道我是否缺少一些额外的配置。
尝试将SFSafariExtensionHandler
更改为SFSafariExtensionHandling