如何从共享按钮获取pkpass文件的URL?

时间:2019-07-17 09:16:43

标签: ios swift

我想从pkpass文件中的JSON获取特定信息。我遇到的问题是如何实现从钱包到我的应用程序的共享功能,以及通常如何注册我的应用程序以使用PKPass。

例如,在图像中,我想要将我的应用程序放在“邮件和消息”旁边。 enter image description here

我尝试像这样将com.apple.pkpass添加为DocumentType:

        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array/>
            <key>CFBundleTypeName</key>
            <string>PKPass</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.apple.pkpass</string>
            </array>
        </dict>

之后,我了解到也许我必须将其添加为导入的UTI,然后添加此导入的UTI:

        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
                <string>public.composite-content</string>
                <string>com.apple.package</string>
            </array>
            <key>UTTypeDescription</key>
            <string>PKPass</string>
            <key>UTTypeIconFiles</key>
            <array/>
            <key>UTTypeIdentifier</key>
            <string>com.apple.pkpass</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>pkpass</string>
                </array>
            </dict>
        </dict> 

而且,我仍然无法分享到我的应用。 也许我的问题是:这可能吗?如果是怎么做的呢?

我们将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

最后,我用App Extension做到了,将这些行添加到扩展的plist文件中。

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>NSExtensionActivationRule</key>
        <string>SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            (
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.apple.pkpass"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.apple.pkpass-data"
            )
            ).@count == 1
            ).@count == 1</string>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>MainInterface</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.share-services</string>
</dict>

在那之后,我只是用一个库解压缩pkpass文件并读取JSON文件。

我希望这对其他人有用。