首页 > 解决方案 > Safari 扩展 iOS - 从应用到扩展的消息传递

问题描述

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

将不胜感激任何解决这个问题的想法。

标签: iosswiftxcodesafaribrowser-extension

解决方案


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


推荐阅读