我正在尝试为所有可能的文件类型注册我的应用。我将以下内容添加到我的info.plist中:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>public.data</string>
<key>LSItemContentTypes</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
</dict>
</array>
如果我现在在Safari中打开PDF并点按Safari的“分享”按钮,则不会提供我的应用程序。但是,如果我点击PDF本身,顶部会显示一个“打开方式”按钮,并列出我的应用程序。
这不是一个真正的问题,但它会阻止用户将照片导入我的应用,因为照片应用中没有“打开”菜单。
我可以以某种方式注册“分享”菜单吗?
答案 0 :(得分:3)
不幸的是,这是不可能的,因为:
Safari中的共享屏幕使用UIActivityViewController
显示可以使用该页面执行的许多活动。这些活动在UIActivity.h
中定义,通常是系统定义的活动,例如发布到Facebook ,发布到Twitter ,消息 ,打印等
要在该屏幕中显示非系统定义的活动,必须创建一个自定义UIActivity
子类,然后使用这些子类的数组初始化UIActivityViewController
。
另一方面,“打开方式...”屏幕看起来很相似,但使用UIDocumentInteractionController
显示可以打开指定网址的应用/ UTI(请勿使用Google UTI .. 。)