我正在为我的本地Mac App开发Safari扩展,我想使用SafariExtension Companion在它们之间进行通信.
但是,在扩展的Global.html中,每当我尝试获取safari.extension.companion时,它始终为null.我是否设置了错误的扩展程序?
另外,根据指南,我可以使用safari.extension.addEventListener来监听来自本地app的消息,但是,当我调试扩展时,它会提示我safari.extension.addEventListener是未定义的,为什么呢?
答:safari.application.addEventListener是正确的,Apple写了一个错误的文件.
我根据指南在Extension Builder中设置了精确的Companion Bundle Identifier作为我在Xcode中为safari伴侣设置的标识符.还有什么我想念的吗?请帮忙!!!
Safari扩展随播广告是一种MacOS X应用扩展程序.这些是作为应用程序包的一部分提供的.安装应用程序(将软件包复制到应用程序)后,Safari会选择扩展程序.
首先,您需要一个目标类型为"Cocoa application"的Xcode项目("命令行工具"不会这样做).然后,您需要创建"Safari Extension Companion"类型的目标,并且您有机会在创建主应用程序时指定它.
在构建和归档应用程序并导出存档时,您可以选择将扩展名添加到应用程序包中.然后安装应用包.
确保扩展的捆绑包ID与Safari Extension Builder中的设置匹配.此外,请确保应用程序和Safari扩展程序都已签名,并且密钥具有匹配的开发者ID.对于MacOS X上的证书类型,请选择"开发者ID" - 首先在请求时,然后从构建存档导出捆绑包时.
编辑:当本机伴侣崩溃时,Safari悄然禁用它.如果您删除并重新安装应用程序包,并重新启动Safari,它会再次喜欢该同伴.