在范围内找不到类型“SFSafariExtensionHandler”

时间:2021-07-15 02:45:02

标签: ios swift xcode safari-extension safari-app-extension

我正在创建一个 Safari 应用程序扩展。我下载了 Sea Creator example project

我想在扩展程序和 javascript 之间发送消息。根据Apple提供的documentation,我应该可以使用以下功能来做到这一点:

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 下载了一个随机项目,但并没有出现同样的错误。我想知道我是否缺少一些额外的配置。

1 个答案:

答案 0 :(得分:0)

尝试将 SFSafariExtensionHandler 更改为 SFSafariExtensionHandling