エアドロップ経由で 1 つの文字列を送信したいのですが、他のデバイスで文字列が正常に受信されたときに 1 つの関数を呼び出したいと考えています。UIActivityViewController を介して実装し、completedHandler を介してチェックします。
ここに私のシナリオがあります: デバイス A -> デバイス B に文字列を送信 デバイス B の受信に 2 つのオプションがある場合 -> 承認または拒否 デバイス B がそのメッセージを受信または拒否するときに、デバイス A で 1 つの関数を呼び出したいとします。
以下は私の実装です:
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self.customURLContainer] applicationActivities:nil];
activityViewController.completionHandler = ^(NSString *activityType, BOOL completed) {
NSLog(@"completed dialog - activity: %@ - finished flag: %d", activityType, completed);
if ( completed )
{
NSLog(@"completionHandler - Succeed");
}
else
{
NSLog(@"completionHandler - didn't succeed.");
// didn't succeed.
}
ただし、上記の関数は、文字列が他のデバイスによって「送信」または「拒否」されたかどうかにかかわらず、常に 0 を返します。
デバイスAで確認できますか?「送信済み」より受信した場合、「拒否済み」より拒否した場合、デバイス A のアクティビティを確認できるためです。