数秒後に呼び出されます。 私は、アプリケーションを開いたURLに応じて3つの異なるオンボードページを持っています。 アプリが起動したら、私はリンクがあればそれを開いてアプリケーションを開き、正しいオンボーディングページを表示する必要があります。 アプリケーションのOpenURLは、私は1ケースの横に正常に動作します私のアプリでディープリンク機能を持っているdidFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
が、ディープリンクがした後に5秒を呼び出さ
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
でアプリを開いた場合、私は唯一知ることができます。問題は、私はこの方法で提示するものをスクリーン知っておく必要があるということですdidFinishLaunchingWithOptions
が呼び出されます(私は秒を数えます)。だから、私は間違ったオンボードページを参照してopenURL
が呼び出されるまで(それが呼び出される場合)5秒間を持っています。
だから私の質問は:アプリがdidFinishLaunchingWithOptions
の前または最中のURLから起動されたかどうかを知る方法はありますか?アプリがディープリンクから開いたときdidFinishLaunchingWithOptions
で道launchOptions
ことで
がnilである
deeplink 'launchOptioからアプリを開くとdidFinishLaunchingWithOptionsではns 'はnilですが、' openURL 'はトリガーされます(ディープリンクのURLを使用)。あなたは、Webブラウザからアプリを開いている:私はあなたがアプリは[OK]を、私は他のいくつかの質問をしてみましょう –
立ち上げたときに、私は最初のキーのウィンドウが表示されるはずだと思います「didFinishLaunchingWithOptions」、内部の私のオンボーディングページを表示しますか?最低限必要なiOSのバージョンは何ですか? なお、アプリケーション:didFinishLaunchingWithOptionsは:のみ実行時間ごとに一度と呼ばれています。あなたのアプリが既にバックグラウンドにある場合は、代わりにアプリケーション:openURL:options:が呼び出されます。あなたは「メインインターフェイス」の設定とストーリーボードに依存している場合、ウィンドウの設定に関する 私のコメントにのみ適用されます。あなたがapplication:didFinishLaunchingWithOptionsからあなた自身のインターフェースを設定しているなら、あなたは問題ありません。コメントを無視してください。 – Olivier
私はわかりやすくするために私の答えを改善 - それはObjective-Cのとスウィフトのビルドの両方のために、iOSの9.3.4とiOS 10.3を実行しているデバイス上のXcode 8.3でテストされています。 'Info.plist'の' URL Types'> 'URL-Appes 'などの値を設定して、あなたのデバイスにアプリケーションをビルドしてから、それを削除してから、開いてみてください。任意のウェブブラウザで "my-app://" – Olivier