3

あるアプリケーションから別のアプリケーションにファイルを送信する必要があります。UIDocumentInteractionControllerを使用してファイルをコピーします。SendingApp で実装する

コードを次に示します。UIDocumentInterationControllerViewController

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 が表示されますが、アプリを選択しても何もしません。コンソールを調べたところ、iPhone Simulator 6.1 がファイルを 1 つのディレクトリにコピーしようとしているのに対し、Simulator 5.1 は別のディレクトリにコピーしようとしていることがわかりました。

iPhoneシミュレーター 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

iPhoneシミュレーター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

誰もそのような問題を抱えていますか?何をすべきか知っている人はいますか?

4

1 に答える 1

-1

認識可能な唯一の API の違いは次のとおりです。

アクションの管理
– documentInteractionController:canPerformAction: iOS 6.0 で非推奨
– documentInteractionController:performAction: iOS 6.0 で非推奨

これらのメソッドをまだ実装していますか? たぶん、彼らは予期せぬ結果に責任があります.

于 2013-03-01T11:12:58.853 に答える