我需要将文件从一个应用程序发送到另一个应用程序。我使用UIDocumentInteractionController来复制文件。
以下是我在SendingApp UIDocumentInterationController
中实施ViewController
的代码。
NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"zip"];
NSURL *urlPath = [NSURL fileURLWithPath:path];
self.docController = [UIDocumentInteractionController interactionControllerWithURL:urlPath];
[docController retain];
docController.delegate = self;
[docController presentOpenInMenuFromRect:self.view.frame
inView:self.view
animated:YES];
docController是属性。 ViewController
实施UIDocumentInteractionControllerDelegate
。
ReceiverApp设置为处理此扩展名的文件。
我的ReceiverAppInfo.plist
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>zip</string>
</array>
<key>CFBundleTypeName</key>
<string>ZIP</string>
<key>LSItemContentTypes</key>
<array>
<string>public.zip-archive</string>
<string>com.pkware.zip-archive</string>
</array>
<key>LSHandlerRank</key>
<string>Alternate</string>
</dict>
</array>
在ReceiverAppDelegate中,我使用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
处理接收文件的打开。
问题是这个代码在iOS 5.1上运行得非常完美但是它在iOS 6上不起作用.UIDocumentInteractionController OpenIn菜单出现并显示我的ReceiverApp但它没有如果您选择应用程序,则不执行任何操作。我查看了Console,发现iPhone Simulator 6.1尝试将文件复制到一个目录,而模拟器5.1则复制到另一个目录。
iPhoneSimulator 6.1
com.apple.mdt[2342]:
Copy ~/Library/Application Support/iPhone Simulator/6.1/Applications/367D395F-DC8B-4F4C-83C7-B22992E34C64/sendingZIP.app/1.zip ->
/var/mobile/Library/Application Support/Containers/-23.ReceiveApp/Documents/Inbox
iPhoneSimulator 5.1
com.apple.mdt[2439]:
Copy ~/Library/Application Support/iPhone Simulator/5.1/Applications/0DE1852A-F803-4583-87BC-8F1EBBE362A4/sendingZIP.app/1.zip ->
~/Library/Application Support/iPhone Simulator/5.1/Applications/927E310A-2766-4709-81CB-0E759F24236D/Documents/Inbox
有人有这样的问题吗?有人知道该怎么办吗?
答案 0 :(得分:-1)
请注意,唯一可识别的API差异是
管理操作
- documentInteractionController:canPerformAction:iOS 6.0中不推荐使用 - documentInteractionController:performAction:在iOS 6.0中不推荐使用
您还在实施这些方法吗?也许他们对意外结果负责。