launchOptions
私は好きなようにキャッチしたいのですdidFinishLaunchingWithOptions
がapplicationDidBecomeActive
(私のアプリがフォーカスを取得したとき)。たとえば、Box でドキュメントを開きます。次に、「開く」を選択し、自分のアプリを選択します。次に、私のアプリがフォーカスされます。
どうすれば回復できますlaunchOptions
かUIApplicationDelegate
?
ありがとう
launchOptions
私は好きなようにキャッチしたいのですdidFinishLaunchingWithOptions
がapplicationDidBecomeActive
(私のアプリがフォーカスを取得したとき)。たとえば、Box でドキュメントを開きます。次に、「開く」を選択し、自分のアプリを選択します。次に、私のアプリがフォーカスされます。
どうすれば回復できますlaunchOptions
かUIApplicationDelegate
?
ありがとう
アプリが実行されておらず、別のアプリを介して開かれている場合は、applicationDidBecomeActive
が呼び出され、にアクセスできますlaunchOptions
。その後、アプリはを呼び出しますapplication:openURL:sourceApplication:annotation:
。
ただし、アプリがバックグラウンドにあり、単にアクティブにapplication:openURL:sourceApplication:annotation:
なった場合は、呼び出されるだけなので、何も取得されませんlaunchOptions
。のパラメータから、必要なすべての詳細を取得できるはずですapplication:openURL:sourceApplication:annotation:
。
application:openURL:sourceApplication:annotation: documentationからの完全な詳細:
別のアプリケーションがURLリソースを開くように要求した結果としてアプリケーションが起動された場合、UIApplicationは最初にアプリケーションにapplication:didFinishLaunchingWithOptions:メッセージを送信し、次にこのメソッドを呼び出します。このメソッドは、処理アプリケーションのデリゲートに、ソースアプリケーションのバンドルIDと、そのアプリケーションからの注釈情報を提供します。URLを開く要求を受け取ったときにアプリケーションがすでに実行されている場合、このメソッドは呼び出されますが、application:didFinishLaunchingWithOptions:は呼び出されません。
外部アプリからアプリを開く場合は、URL スキームを使用する必要があります。これにより、アプリがバックグラウンドで実行されていた場合でも、実際に終了した場合でも、アプリが開きます (これも発生する可能性があります)。
この手法では、メソッド- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
は App デリゲートで呼び出されます。
ドキュメントでそのメソッドを調べて、アプリに渡すことができるパラメーターの詳細を確認してください。通常は、分析してそれに応じて行動できる URL を使用します。ただし、さらにデータを渡す必要がある場合は、いつでも注釈パラメーターを使用できます。これは、辞書に変換してそこから必要なものを抽出できる plist です。