ios - 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。
将不胜感激任何解决这个问题的想法。
解决方案
您可以在 safari 扩展的清单文件中启用权限 ["nativeMessaging"] 使用 appGroup 在扩展和您的应用程序之间存储数据。在 SafariWebExtensionHandler 中,您可以将 appGroup 数据响应到从任何扩展 javascript 文件调用的消息。
推荐阅读
- apache - 无法启动 Apache2
- python - Python3在视频游戏中用新行上的字符串打印用户输入
- compiler-errors - 有人可以帮我解决这个问题吗
- google-apps-script - 如何部署更正的库
- oracle - Powershell - IE11 - Apex - 自动下拉选择
- amazon-web-services - 从 S3 获取 .txt 文件的内容并使用 lambda 在 HTML 中显示其内容
- javascript - ajax 发布到 MVC 控制器失败,出现 400 错误请求
- c++ - C++20 中 std::atomic 的“等待”和“通知”如何工作?
- python - 通过 Name 获取 List 中 Item 的 ID
- html - css z-index div在另一个div下面