【Objective-C】UIDocumentInteractionControllerDelegateの処理の流れについて(引用記事)【Xcode10.2対応】
こういう人に向けて発信しています。
・その他アプリ共有後のイベントなど取りたい人
・OpenInについて興味を持っている人
・Objective-C中級者
引用:UIDocumentInteractionControllerDelegateの処理の流れについて
僕が起こり得た不具合
/**
@brief UIDocumentInteractionControllerにて他アプリへ送信が完了したときに呼ばれる
*/
-(void) documentInteractionController:(UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application {
上記処理後にAppDelegateの
// 外部アプリからの起動時に呼び出されるデリゲートメソッド.
- (BOOL)application : (UIApplication *)application
openURL : (NSURL *)url
sourceApplication : (NSString *)sourceApplication
annotation : (id)annotation
{
が呼び出されるのが筋なのですが、
順番が逆になってしまいました。
おそらくシステム側のバグだと思って対応しています。
上記不具合への対策
/**
@brief UIDocumentInteractionControllerにて他アプリへ送信を開始したときに呼ばれる
*/
-(void) documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application {
}
完了時ではなくアプリ送信時に処理を挟む事にしました。
余談
applicationで押下した対象のアプリ名が取れます。