1

送信者受信者の 2 つの I アプリがあり、写真を受信者のみと共有したいのですが、ユーザーにアクション シートを提示する必要がないように、受信者と直接共有するにはどうすればよいですか?

これを使用してアプリを開くことができることを知っています:

[[UIApplication sharedApplication] openURL:recieverURL];

しかし、アクション シートを使用する必要がある UIDocumentInteractionController を使用しない限り、アプリに写真を送信する方法がわかりません。

// within sender app
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"reciever://"]]) {

    NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"filename.jpg"], 1.0);
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"cameraawesome.ca"];
    [imageData writeToFile:fullPathToFile atomically:NO];

    self._interactionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@", self._filePath]]];
    self._interactionController.UTI = @"com.myapp.exclusive";
    self._interactionController.delegate = self; 

    [self._interactionController presentOpenInMenuFromRect:self.view.frame inView:self.view animated:YES];
}
4

1 に答える 1

3

プライベートな名前のペーストボード ( UIPasteboard pasteboardWithName:create:) を使用します。送信者アプリは、指定されたペーストボードに画像を貼り付けます。次に、送信側アプリは、カスタム URL スキームを使用して受信側アプリを起動します。URL に十分な情報を渡して、ペーストボードで画像が使用可能であることを受信側アプリが認識できるようにします。場合によっては、ペーストボードの名前と、画像の保存に使用されたペーストボードの種類が含まれます。レシーバー アプリは、この情報を使用して名前付きペーストボードにアクセスし、画像を読み取ることができます。

于 2013-05-20T22:46:56.723 に答える