【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で押下した対象のアプリ名が取れます。


引用


この記事が気に入ったらサポートをしてみませんか?