【问题标题】:iPhone Document TypeiPhone 文档类型
【发布时间】:2013-02-04 23:43:21
【问题描述】:

我已注册 PDF 文档类型,因此我可以打开在 Safari 中查看的邮件附件和 PDF 文件。问题是如果应用程序关闭,它可以正常工作。如果应用程序在后台。 Safari/Mail 切换到我的应用程序,但我的应用程序 didFinishLaunchingWithOptions 函数未被调用,其中包含文件的 URL。所以在这种情况下我无法访问该文件。

在 Safari 中打开任何文档之前,我是否需要强制用户关闭应用程序!

编辑: 这是我的 plist 更改

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>PDF Document</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.content</string>
            <string>public.item</string>
            <string>public.data</string>
        </array>
    </dict>
</array>

我弄乱了这些值,但 public.content 和 public.item 和 public.data 只是注册我的应用程序来打开任何内容,而不仅仅是 PDF。我仍然需要先关闭我的应用程序!

【问题讨论】:

  • 我以前没有这样做过,但根据文档和我刚刚做的测试(dropbox),当您点击“在...中打开”选项时,它似乎会自行重启应用程序。您是如何在 plist 中注册应用程序的?你能列出这些值吗?
  • 我刚刚编辑了问题。
  • 我认为您需要根据this 答案添加LSItemContentTypes: com.adobe.pdf ... 的格式。
  • 我之前尝试过这个并且行为相同。 public.item 更通用,它就像通配符,而不是仅定义 PDF 文件。
  • 阅读我链接的答案中的最后一条评论。似乎可以解决您的问题。

标签: iphone


【解决方案1】:

@KDaker 在 cmets 中指出了这一点,但底线是您需要在应用程序委托中实现这两个功能。

- (BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url;

- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2012-02-22
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多