Safari 扩展 iOS - 从应用程序到扩展程序的消息传递

Til*_*dan 7 safari xcode browser-extension ios swift

在 iOS 15 中,Apple 也可以为 iOS 创建 Safari 扩展。我目前正在将现有的 macOS Safari 扩展引入 iOS。我的问题是,似乎没有选项可以将消息从主机应用程序发送到扩展程序。可以通过该 beginRequest(with:)功能应答来自分机的请求。但是,我主动需要在用户操作后向扩展程序发送消息。dispatchMessage(withName:toExtensionWithIdentifier:userInfo:completionHandler:)在 macOS 中,这可以通过此处描述的函数来完成: https ://developer.apple.com/documentation/safariservices/safari_web_extensions/messaging_ Between_the_app_and_javascript_in_a_safari_web_extension 。遗憾的是,此功能不适用于 iOS。

非常感谢任何解决这个问题的想法。

小智 2

您可以在 safari 扩展程序的清单文件中启用权限 [“nativeMessaging”] 使用 appGroup 在扩展程序和应用程序之间存储数据。在 SafariWebExtensionHandler 中,您可以将 appGroup 数据响应到从任何扩展 javascript 文件调用的消息。