共享扩展 Google Chrome - 不工作
Posted
技术标签:
【中文标题】共享扩展 Google Chrome - 不工作【英文标题】:Share Extension Google Chrome - Not working 【发布时间】:2017-03-20 18:34:32 【问题描述】:我在让我的共享扩展程序显示在 Google Chrome 中时遇到问题。它在 Safari 中显示并运行良好,但在 Chrome 中不显示。我正在使用以下激活规则,它也适用于其他应用程序(图像、pdf、共享文本),但它在 chrome 中丢失。
来自我的 info.plist:
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.png" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
).@count == 1
).@count == 1
</string>
<key>NSExtensionjavascriptPreprocessingFile</key>
<string>GetURL</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
</dict>
有什么想法吗?
【问题讨论】:
【参考方案1】:对于您在 Chrome 中看不到您自己的 App shareExtension 的问题,您无法在 Chrome 中正常看到您的 shareExtension 的原因是您的 NSExtensionActivationRule 与 Chrome 不匹配。这个问题的答案与密钥(NSExtensionActivationSupportsAttachmentsWithMaxCount)有关。 :P
我向你展示了我的 plist,它在 Chrome 和 Safari 中运行良好。
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsAttachmentsWithMaxCount</key>
<integer>2</integer>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>0</integer>
<key>NSExtensionActivationSupportsMovieWithMaxCount</key>
<integer>0</integer>
<key>NSExtensionActivationSupportsText</key>
<true/>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
您需要做的就是将 Key - NSExtensionActivationSupportsAttachmentsWithMaxCount 的值更改为 > 1,我认为原因是 Chrome 将其数据传递给 extensionContext!.inputItems[1] 而不是 extensionContext!.inputItems[0],您可以尝试自行设置此 Key 的不同值。
希望这可以帮助你:)
【讨论】:
您好,我还想在 1Password 和 Dashlane 应用程序等原生应用程序中添加用于自动填充密码的 crome 共享扩展程序我如何开始使用此功能,请您给我一些关于此的基本想法。需要帮助。以上是关于共享扩展 Google Chrome - 不工作的主要内容,如果未能解决你的问题,请参考以下文章
google cloud Stackdriver Metrics 以扩展管理实例组 - 区域
检测 Google Chrome 扩展的 browser_action 表单中的按钮点击