支持Safari分享:NSExtensionActivation两个Web相关规则的区别
Safari分享扩展激活规则差异说明
要让应用支持Safari的分享功能,通常会在Info.plist中添加以下两条激活规则:
<dict> <key>NSExtensionActivationRule</key> <dict> <key>NSExtensionActivationSupportsWebPageWithMaxCount</key> <integer>1</integer> <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> <integer>1</integer> </dict> </dict>
这两条规则的核心区别在于传递给分享扩展的数据类型:
1. NSExtensionActivationSupportsWebPageWithMaxCount
启用这条规则后,扩展会获取完整的网页上下文数据,包括页面的HTML内容、DOM结构、页面标题、元信息等。适合需要解析页面内容、提取页面内资源(比如图片、视频)、保存全文这类需要访问页面具体内容的场景。
2. NSExtensionActivationSupportsWebURLWithMaxCount
这条规则仅让扩展获取当前网页的URL地址,不会传递任何页面内容或DOM相关数据。它的资源占用更低,适合只需要处理链接本身的场景,比如收藏链接、将URL分享到第三方服务等。
如果你的扩展需要同时支持处理完整网页和仅URL的场景,就需要同时添加这两条规则,确保在不同的分享触发逻辑下都能正常工作。
内容的提问来源于stack exchange,提问作者Cheok Yan Cheng
相关产品推荐
相关产品推荐

