我的應用程序有一個擴展名。此擴展程序在Safari中可用。當我使用Safari的份額按鈕在鏈接上長按打開的共享菜單中的Safari中未顯示的應用程序圖標
然後它會打開一個共享面板和我的應用程序圖標是存在的。但是,如果我在Safari中按住幾秒鐘的鏈接並彈出下面的警告,然後點擊Share...
按鈕,它會打開一個類似的共享面板,我看到有Facebook和Twitter圖標,但是我的應用程序圖標已丟失。有人知道如何讓它出現在共享面板中嗎?
這是當我點擊打開什麼「分享」按鈕:
我的應用程序有一個擴展名。此擴展程序在Safari中可用。當我使用Safari的份額按鈕在鏈接上長按打開的共享菜單中的Safari中未顯示的應用程序圖標
然後它會打開一個共享面板和我的應用程序圖標是存在的。但是,如果我在Safari中按住幾秒鐘的鏈接並彈出下面的警告,然後點擊Share...
按鈕,它會打開一個類似的共享面板,我看到有Facebook和Twitter圖標,但是我的應用程序圖標已丟失。有人知道如何讓它出現在共享面板中嗎?
這是當我點擊打開什麼「分享」按鈕:
我已經找到了解決辦法。在我的擴展程序的plist中有一個名爲NSExtensionActivationRule
的密鑰。它屬於NSExtensionAttributes
字典,該字典本身屬於NSExtension
字典。因此,對於NSExtensionActivationRule
值找我如下:
<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"
)[email protected] >= 1
)[email protected] >= 1</string>
至於我記得這是$attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
線,做所有的魔法。
完整NSExtension
字典如下所示:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationDictionaryVersion</key>
<integer>2</integer>
<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"
)[email protected] >= 1
)[email protected] >= 1</string>
<key>NSExtensionActivationUsesStrictMatching</key>
<integer>2</integer>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>
謝謝。你能以XML格式發佈info.plist的NSExtension部分嗎?我的是這樣:'\t
@zisoft完成。看看 –
很有意思,謝謝!我會嘗試的。我假設'public.url'將在URL鏈接上長按。 – zisoft
你在添加擴展的應用程序圖標? – Venkat
我不確定你的意思,但是如果你問我是否在Safari中啓用了應用程序擴展,那麼是的。正如我所說當我使用分享按鈕時,一切正常 –
我的意思是,你會在你的Xcode項目中添加應用程序圖標嗎?您需要在Xcode項目中設置共享擴展的應用程序圖標。 – Venkat