2016-07-06 62 views
3

我有一個使用這些規則每股擴展:iOS裝置分享擴展不工作的圖片網址

<dict> 
    <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> 
    <integer>1</integer> 
    <key>NSExtensionActivationSupportsWebPageWithMaxCount</key> 
    <integer>1</integer> 
    <key>NSExtensionActivationSupportsImageWithMaxCount</key> 
    <integer>10</integer> 
    <key>NSExtensionActivationSupportsText</key> 
    <integer>1</integer> 
</dict> 

它完全正常的網站和圖像,但我無法解析圖片網址是這樣的:(http://www.zappos.com/images/z/3/3/5/4/0/3/3354034-p-2x.jpg) 。我厭倦了添加其他規則,但是當我使用Safari打開此網站並點擊共享時,我的共享擴展名仍不會顯示。

但是,如果我使規則TRUEPREDICATE,我的共享擴展可以解析網站。

我做錯了什麼? 謝謝

+0

我能夠通過只使用public.url從safari獲取.jpg並刪除public.image的所有子項。 –

回答

1

大廈關閉wj2061的回答,下面的斷言會搶主機應用程序提供的任何和所有附件。

<key>NSExtensionActivationRule</key> 
<string>SUBQUERY (
    extensionItems, 
    $extensionItem, 
    SUBQUERY (
     $extensionItem.attachments, 
     $attachment, 
     ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.item" || 
     ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.content" 
    )[email protected] == [email protected] 
    )[email protected] > 0 
</string> 
+0

這不適合我。 –

2

你沒有做錯任何事,只是因爲Apple定義的常用密鑰(下圖)不能包含所有的情況。

enter image description here

對於你的情況,你必須寫自己的NSPredicate String作爲蘋果這裏建議:Declaring Supported Data Types for a Share or Action Extension

我改變了蘋果的例子是這樣的:

<key>NSExtensionAttributes</key> 
    <dict> 
     <key>NSExtensionActivationRule</key> 
     <string>SUBQUERY (
        extensionItems, 
        $extensionItem, 
        SUBQUERY (
        $extensionItem.attachments, 
        $attachment, 
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"; 
        )[email protected] == [email protected] 
       )[email protected] == 1 
     </string> 
    </dict> 

您可以更改public.image到任何其他Uniform Type Identifiers

一些常見的尿路感染的列舉如下:
enter image description here

0

我通過

<key>NSExtensionActivationRule</key> 
      <string>SUBQUERY (
       extensionItems, 
       $extensionItem, 
       SUBQUERY (
       $extensionItem.attachments, 
       $attachment, 
       (
       ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO &quot;com.adobe.pdf&quot; 
       || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO &quot;public.image&quot; 
       || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO &quot;public.url&quot; 
       ) 
       )[email protected] == [email protected] 
       )[email protected] > 0</string> 

解決此問題的最後一行@count> 0奏效了我。