簡體   English   中英

使用UIActivityViewController的自定義文件類型

[英]Custom File type with UIActivityViewController

我無法讓UIActivityViewController附加使用UIDocument創建的自定義文件類型。 有人可以幫忙嗎?

即使文件URL有效,電子郵件也完全沒有附件,並且指向通過UIDocument的子類創建的擴展名為.wki的文件(我的自定義擴展名)。

發送電子郵件的代碼:

    NSURL *url = self.entrySelected.fileURL;

    NSArray *activityItems = @[url];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:activityVC animated:YES completion:nil];

文檔類型和導出的UTI的信息plist設置為:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>MyApp Doc</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.stephencox.myApp.doc</string>
        </array>
        <key>LSTypeIsPackage</key>
        <string>YES</string>
    </dict>
</array>


<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>com.apple.package</string>
        </array>
        <key>UTTypeDescription</key>
        <string>MyApp Doc</string>
        <key>UTTypeIdentifier</key>
        <string>com.stephencox.myApp.doc</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>wki</string>
            </array>
        </dict>
    </dict>
</array>

我對自己的文件類型有同樣的問題。 經過大量的實驗,我找到了解決方案,希望它也適合你。

必須為文件指定MIME類型,例如:

...
    <key>UTTypeTagSpecification</key>
    <dict>
        <key>public.filename-extension</key>
        <string>wki</string>
        <key>public.mime-type</key>
        <string>application/x-wki</string>
    </dict>
...

我最終通過設置另一個文檔類型和UTExportedTypeDeclaration來解決我的問題。

我單獨離開了第一個(假設UIDocument管理需要它),並為壓縮文件設置另一個doc類型,其中UTTypeConformsTo鍵設置為“public.data”,並為public.mime-type添加了一個附加鍵。 (設置為“applications / myappname”)。 我將壓縮文件發送到臨時目錄,並讓UIActivityViewController從此URL中獲取文件。

希望這有助於其他人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM