複数のユースケースを持つアプリを作成しています。主な機能 (アプリ アイコンを押すことでアクティブ化) と、カスタム URL スキームによってアクティブ化される主な機能の他のサブセットがあります。
私の問題を説明するには、現在、アプリに異なる動作を指示する方法を説明する必要があります。
私は使用しています: -(BOOL)application:didFinishLaunchingWithOptions:
オプションから URL を取得: [launchOptions objectForKey:[keyArray objectAtIndex:0]]
次に、その urlString を解析し、すべての launchType パラメーターを取得して、NSUserDefaults に入れます。次に、スプラッシュ スクリーンが表示されるのを待ちます。その後、アプリの動作方法が通知されます。
これは最初は問題ないように思えましたが、アプリにディープリンクし、機能 B が表示された場合、アプリはバックグラウンドに入り、次にアプリがフォアグラウンドになったときに (どちらの方法でも)、次のことに気付きました。 、機能 B が表示されます。
誰かが標準的な慣行について考えを持っているかどうか疑問に思っていました.人々は通常どのような方法を使用していますか?
参考までに、-(BOOL)application:application handleOpenURL: が呼び出されたときに、didFinishLaunchingWithOptions がその前に呼び出されない限り、ナビゲーション コントローラーに popToRootViewController を指示することで、この問題を解決しようとしています。 .