![](/img/trans.png)
[英]UIActivityViewController Not Displaying Expected AirDrop Option for Custom File Type in My App
[英]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.