最近,当我打开自定义邮件附件时,我正在“打开...”菜单中显示我的应用程序(假设文件扩展名为xyz
,我已声明自定义mime-type {{ 1}})。我在本网站上关注了指南:
https://developer.apple.com/library/ios/qa/qa1587/_index.html
当我点击相应的附件时,我的应用程序现在显示在所有其他应用程序之间。问题出在我的应用程序的描述中。它不是仅显示其名称(application/xyz
),而是显示为MyApp
。
有没有办法让我的应用说明不包含Copy to MyApp
字?
答案 0 :(得分:2)
您的应用将始终使用此方法和“打开方式...”显示“复制到”。调整设置不会改变这一点。
您要做的是创建共享扩展。 Apple已详细记录了这些步骤。例如,请参阅:https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/
共享扩展程序会更改应用程序交互的性质。您可以创建一个共享扩展程序来处理(可能是几个文件),而不是在应用程序委托中响应openURL。
答案 1 :(得分:1)
确保将LSHandlerRank
中的.plist
设置为Owner
Owner
表示您的是创建和打开此类文件的本机应用程序。
<强>更新强>
尝试将CFBundleTypeRole
设置为Viewer
[...]&#34;观众&#34;文档类型的作用,[...]表示您的应用程序可以打开和读取特定的文件格式,但不能以此文件格式保存。 Post on MacOSX Guru Site
我可以想象你不允许编辑附加到电子邮件的实际文件。
答案 2 :(得分:1)
CFBundleTypeRole不适用于iOS。菜单名称仅取决于LSHandlerRank。
这是我测试的结果。
Owner: Copy to [MyApp]
Alternate, Default: Import with [MyApp]
None: No appearance
(tested in iOS 10.3.1)
更多用法详见CoreFoundationKeys参考。
如果您想使用自定义菜单名称,可以使用Share扩展程序实现此目的,如@Dale所说。
答案 3 :(得分:1)
我知道这是一个很老的问题,但是如果您在Info.plist中将LSSupportsOpeningDocumentsInPlace设置为true,然后正确处理该结果,则只要源应用程序支持此功能。
查看此处:
在这里:
https://developer.apple.com/documentation/uikit/uiapplicationopenurloptionsopeninplacekey
在这里:
https://developer.apple.com/documentation/foundation/nsurl/1417051-startaccessingsecurityscopedreso
更新
请注意,当我从iOS Files应用程序内部浏览文件类型的文件时,会看到“打开位置”。在Dropbox中,我看到“复制到”。我假设“文件”应用设置了一些在显示“打开位置”工作表时Dropbox不会设置的设置。设置此设置后,您是否尝试过从“文件”应用中打开一个文件?
答案 4 :(得分:0)