예, application:handleOpenURL:
또는 application:openURL:sourceApplication:annotation:
을 구현하고 YES를 반환해야합니다. 두 번째 방법은 Apple의 문서에 따라 선호됩니다.
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
return YES;
}
추가적으로 구성표, 소스 응용 프로그램 또는 기타 조건을 점검하고 그에 따라 YES 또는 NO를 리턴 할 수 있습니다. 몇 가지 앱 통신이있는 경우 소스 애플리케이션을 확인하거나 주석을 사용하여 데이터를 전달할 수 있습니다.
NSString* myappScheme = @"anindya"; // or even better read it from your plist
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
return [url.scheme isEqualToString: myappScheme];
}
보안에 관한 한 실제로 URL을 사용하지 않으므로 아무런 문제가 없습니다. 이와 관련하여 Apple의 조언은 다른 앱에서 URL을 가져 오는 경우 신중하게 파싱하여 악의적 인 것으로 간주해야 함을 의미합니다. 원본 응용 프로그램도 확인하면 자신의 응용 프로그램에서만 데이터를 얻을 수 있습니다.
앱에 아무런 조치가없는 경우 해킹 할 것이 없습니다. 그러나 추가 확장과 코드 투명성을 위해'openURL :'을 구현할 것을 제안합니다. – kelin
@kelin 의견을 보내 주셔서 감사합니다. 그래서, 당신은'openURL :'을 구현하고 그 안에 메서드를 아무것도하지 말라고 제안하고 있습니까? –
그냥 NO를 반환합니다, 괜찮을 것입니다. – kelin