我正在为我的本地Mac应用程序开发Safari扩展,我想使用
SafariExtension Companion来进行通信.
但是,在我的Global.html的扩展程序中,每当我尝试获取safari.extension.companion,它总是为空.我是否设置了扩展名错误?
此外,根据指南,我可以使用safari.extension.addEventListener从本地应用程序收听消息,但是当我调试扩展名时,它会提示我safari.extension.addEventListener是未定义的,为什么?
答案:safari.application.addEventListener是正确的,Apple写错了文档.
我在扩展构建器中设置确切的配套包标识符,作为我在Xcode中为Safari浏览器伴侣设置的标识符.还有什么我想念的吗?请帮忙!!!
解决方法
Safari扩展程序随播广告是MacOS X应用程序扩展的一种类型.这些作为应用程序包的一部分发送.安装应用程序(该软件包被复制到应用程序)时,Safari会选择该扩展名.
首先,您需要一个具有“Cocoa应用程序”类型的目标的Xcode项目(“命令行工具”将不会执行).然后,您需要创建一个类型为“Safari Extension Companion”的目标,并且您有机会在创建时指定主应用程序.
构建和归档应用程序并导出存档时,您可以选择将扩展程序添加到应用程序包.然后安装应用程序包.
确保扩展名的捆绑ID与Safari Extension Builder中的设置相匹配.此外,请确保应用程序和Safari扩展名均已签名,并且密钥具有匹配的开发人员ID.对于MacOS X上的证书类型,请选择“开发人员ID” – 首先在请求时,然后从构建存档导出捆绑包.
编辑:当本地伴侣崩溃时,Safari会静静地禁用它.如果您删除并重新安装应用程序包,并重新启动Safari,则会再次爱上该伴侣.