2013-02-04 90 views
0

我已經註冊了PDF文檔類型,所以我可以打開在Safari中查看的郵件附件和PDF文件。問題是,如果應用程序關閉,則工作正常。如果應用程序在後臺。 Safari/Mail切換到我的應用程序,但我的應用程序didFinishLaunchingWithOptions函數未被調用,其中包含文件的URL。所以我不能在這種情況下訪問文件。iPhone文檔類型

在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。仍然需要先關閉我的應用程序!

+0

我以前沒有這樣做過,但根據文檔和根據我剛剛做的測試(Dropbox),當你點擊'open in ...'選項時它似乎自動重啓應用程序。你是如何在plist上註冊該應用程序的?你能列出這些值嗎? – KDaker

+0

我剛剛編輯了這個問題。 –

+0

我認爲你需要添加'LSItemContentTypes'的格式:'com.adobe.pdf' ...根據[this](http://stackoverflow.com/a/3042827/442328)回答。 – KDaker

回答

0

@KDaker在註釋中指出了它的底線是您需要在您的應用程序委託中實現這兩個函數。

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

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