내 응용 프로그램에 딥 연결 기능이있어 한 가지 경우에 제대로 작동합니다. 앱을 연 URL에 따라 3 가지 온 보딩 페이지가 있습니다. 그래서 앱이 시작되면 앱을 연 링크 (있는 경우)를 확인한 다음 올바른 온 보딩 페이지를 제시해야합니다.응용 프로그램 openURL은 didFinishLaunchingWithOptions 후에 몇 초 동안 호출됩니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
하지만 딥 링크 5 초 후 한 호출되는
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
에서 응용 프로그램을 열 경우 내가에만 알 수 있습니다 : 문제는 그 방법에서 제시하는 어떤 화면 알 필요가 있다는 것입니다 didFinishLaunchingWithOptions
이 호출됩니다 (i 초 계산). 그래서 나는 openURL
이 호출 될 때까지 잘못된 onboarding 페이지를 볼 수있는 5 초를 가지고있다.
내 질문은 : 앱이 didFinishLaunchingWithOptions
전에 또는 그 전에 URL로 시작했는지 알 수있는 방법이 있습니까? 응용 프로그램은 딥 링크 당신이 찾고있는 발사 옵션 키가 UIApplicationLaunchOptionsURLKey
(목표 - C)입니다
딥 링크 'launchOptio ns '는 didFinishLaunchingWithOptions에서 nil이지만'openURL '은 (딥 링크 URL이있는) triggerd가됩니다. 내 didboinLaunchingWithOptions 안에 내 onboarding 페이지를 보여줍니다. 앱을 시작할 때 첫 번째 키 창을 어디에 표시해야합니까? –
다른 질문이 있습니다. 웹 브라우저에서 앱을여시겠습니까? 최소 iOS 버전을 타겟팅하고 있습니까? application : didFinishLaunchingWithOptions :는 런타임 당 한 번만 호출됩니다. 응용 프로그램이 이미 백그라운드에 있으면 응용 프로그램 : openURL : options :이 대신 호출됩니다. '메인 인터페이스'설정으로 스토리 보드를 사용하는 경우 창 설정에 관한 내 의견이 적용됩니다. application : didFinishLaunchingWithOptions :에서 인터페이스를 직접 설정하는 경우 괜찮을 것입니다. 주석을 무시하십시오. – Olivier
명확성을 위해 대답을 개선했습니다. Objective-C 및 Swift 빌드 모두에서 iOS 9.3.4 및 iOS 10.3을 실행하는 장치의 Xcode 8.3에서 테스트되었습니다. 'Info.plist'의'URL Types'>'URL-Appes '와 같은 값을 설정했는지 확인하십시오. (예 : "my-app"), 장치에 응용 프로그램을 만든 다음 그것을 죽인 다음 예.어떤 웹 브라우저에서나 "my-app : //". – Olivier