Потребовалось навсегда, чтобы найти эту работу ... наконец-то получил. Ниже приведен список того, что вам нужно. Кроме того, 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>
В вашем делегате приложения вам нужно что-то вроде этого:
- (void) CopyArg0: (NSURL *) url {
if (url! = nil && [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 и т. Д."
делегат: self cancelButtonTitle: @ "OK" otherButtonTitles: nil];
[alertStandard show];
[alertStandard release];
}
}
- (BOOL) приложение: (UIApplication *) приложение handleOpenURL: (NSURL
*) URL {
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! = nil && [url isFileURL]) {
[self CopyArg0: url];
}
}