2011-09-06 65 views
1

我發現了幾個帖子,我加3個部分,以我的info.plist字裏行間。當我運行我的應用程序的電子郵件已與「NTDB」後綴附加的文件,但電子郵件似乎不認可擴展。我假設我必須進入一些錯誤的plist中,但嘗試了最後2天,我不知道還有什麼可以改變每一個組合後。誰能告訴我我做錯了什麼?在電子郵件中的文件名是日期和NTDB喜歡:「MYFILE 09-06-2011.ntdb」文件附加到電子郵件 - 我試圖打開MYAPP

<key>CFBundleDocumentTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleTypeIconFiles</key> 
      <array> 
       <string>icon57</string> 
      </array> 
      <key>CFBundleTypeName</key> 
      <string>myAppName</string> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
       <key>LSHandlerRank</key> 
       <string>Owner</string> 
       <key>LSItemContentTypes</key> 
      <array> 
       <string>com.myCompanyName.myAppName.ntdb</string> 
      </array> 
     </dict> 
    </array> 



<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.plain-text</string> 
      <string>public.text</string> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>myAppName Backup</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.myCompanyName.myAppName.ntdb</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <string>ntdb</string> 
      <key>public.mime-type</key> 
      <string>text/txt</string> 
     </dict> 
    </dict> 
</array> 


    <key>CFBundleURLTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleTypeRole</key> 
      <string>Editor</string> 
      <key>CFBundleURLIconFile</key> 
      <string>icon57</string> 
      <key>CFBundleURLName</key> 
      <string>com.myCompanyName.myAppName</string> 
      <key>CFBundleURLSchemes</key> 
      <array> 
       <string>myAppName</string> 
      </array> 
     </dict> 
    </array> 

回答

0

沒完沒了找到這個工作...得到它最後。下面的plist是你需要的。另外,plist實際上是MyAppName-info.plist我從來不確定自己這個文件是完全命名的。

改變這些下面的文件,以滿足您的應用程序:

MyAppName - 切換到您的應用程序

MyCompanyName的名字 - 改變你的「公司」

MyfileExtensionSuffix - 這是後綴在你的文件上,例如zip文件就是ZIP。

如果電子郵件運行,因此拿起名殺死該進程。當您打開帶有後綴擴展名的附件的電子郵件時,它會打開您的應用程序。

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array> 
      <string>myAppName x 57</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>myAppName</string> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>LSHandlerRank</key> 
     <string>Owner</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.myCompanyName.myAppName.myFileExtensionSuffix</string> 
     </array> 
    </dict> 
</array> 

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>CFBundleURLIconFile</key> 
     <string>57 icon</string> 
     <key>CFBundleURLName</key> 
     <string>com.myCompanyName.myAppName.myFileExtensionSuffix</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>myAppName</string> 
     </array> 
    </dict> 
</array> 


<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.data</string> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>myAppName Backup</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.myCompanyName.myAppName.myFileExtensionSuffix</string> 
     <key>UTTypeSize320IconFile</key> 
     <string>myAppName x 114</string> 
     <key>UTTypeSize64IconFile</key> 
     <string>myAppName x 57</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <string>myFileExtensionSuffix</string> 
      <key>public.mime-type</key> 
      <string>application/myAppName</string> 
     </dict> 
    </dict> 
</array> 

在你的應用程序代理,你需要這樣的事:

- (空)CopyArg0:(NSURL *)網址{ 如果(!URL =零& & [URL isFileURL]) { 的NSData * d = [NSData的dataWithContentsOfURL:URL]; documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask,YES);

documentsDir = [[NSString alloc] 

initWithFormat:@「%@」,[documentPaths objectAtIndex:0]];

[[NSFileManager defaultManager]createFileAtPath:[documentsDir 

stringByAppendingPathComponent:[URL lastPathComponent]內容:d 屬性:無];

alertStandard = [[UIAlertView alloc] initWithTitle:@"" 

消息:@「該文件已被添加到您的文檔中。blaaa blaaa等」 委託:自我cancelButtonTitle:@ 「OK」 otherButtonTitles:無];

[alertStandard show]; 
    [alertStandard release]; 


} 
} 

- (BOOL)申請:(UIApplication的*)應用程序handleOpenURL:(NSURL *)網址{

if(url != nil && [url isFileURL]) 
{ 
    [self CopyArg0:url]; 

    return YES; 

} 

return NO; 
} 
  • (BOOL)應用:(UIApplication的*)應用 didFinishLaunchingWithOptions:(NSDictionary的*)launchOptions

{

NSURL * url =(NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey]; if(url!=無& & [url isFileURL]){ [self CopyArg0:url];
}

}