1

我在 info.plist 中添加了 3 个部分,发现了几篇文章并在字里行间阅读。当我运行我的应用程序时,电子邮件有一个带有“ntdb”后缀的附件,但电子邮件似乎无法识别扩展名。我假设我一定在 plist 中输入了错误,但在过去 2 天尝试了每种组合之后,我不知道还有什么可以改变的。谁能告诉我我做错了什么?电子邮件中的文件名是日期和 ntdb,例如:“myfile 09-06-2011.ntdb”

<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>
4

1 回答 1

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>

在您的应用程序委托中,您需要以下内容:

-(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 属性:nil];

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

message:@"该文件已添加到您的文档中。blaaa blaaa etc" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alertStandard show];
    [alertStandard release];


}
 }

- (BOOL)应用程序:(UIApplication *)应用程序句柄OpenURL:(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];
}

}

于 2011-09-09T14:13:35.260 回答