0

launchOptions私は好きなようにキャッチしたいのですdidFinishLaunchingWithOptionsapplicationDidBecomeActive(私のアプリがフォーカスを取得したとき)。たとえば、Box でドキュメントを開きます。次に、「開く」を選択し、自分のアプリを選択します。次に、私のアプリがフォーカスされます。

どうすれば回復できますlaunchOptionsUIApplicationDelegate?

ありがとう

4

2 に答える 2

3

アプリが実行されておらず、別のアプリを介して開かれている場合は、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:は呼び出されません。

于 2012-11-28T11:52:34.063 に答える
1

外部アプリからアプリを開く場合は、URL スキームを使用する必要があります。これにより、アプリがバックグラウンドで実行されていた場合でも、実際に終了した場合でも、アプリが開きます (これも発生する可能性があります)。

この手法では、メソッド- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotationは App デリゲートで呼び出されます。

ドキュメントでそのメソッドを調べて、アプリに渡すことができるパラメーターの詳細を確認してください。通常は、分析してそれに応じて行動できる URL を使用します。ただし、さらにデータを渡す必要がある場合は、いつでも注釈パラメーターを使用できます。これは、辞書に変換してそこから必要なものを抽出できる plist です。

于 2012-11-28T11:46:22.020 に答える