Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IOS应用程序中处理两次启动URL_Ios_Url_Url Routing_Url Scheme_Launching Application - Fatal编程技术网

在IOS应用程序中处理两次启动URL

在IOS应用程序中处理两次启动URL,ios,url,url-routing,url-scheme,launching-application,Ios,Url,Url Routing,Url Scheme,Launching Application,如果我通过urlscheme启动我的应用程序,我会在application:didFinishLaunchingWithOptions:中的launchoptions中获取url,并在那里处理它并返回YES,但是application:openURL:sourceApplication:annotation:也会被调用,因此url会被处理两次。根据这一点,只有在didFinishLaunchingWithOptions返回否时才应该调用openURL。有人知道为什么会发生这种情况吗 我认为您应该

如果我通过urlscheme启动我的应用程序,我会在
application:didFinishLaunchingWithOptions:
中的launchoptions中获取url,并在那里处理它并返回YES,但是
application:openURL:sourceApplication:annotation:
也会被调用,因此url会被处理两次。根据这一点,只有在didFinishLaunchingWithOptions返回否时才应该调用openURL。有人知道为什么会发生这种情况吗

我认为您应该在:
application:openURL:sourceApplication:annotation:
中处理url,因为它可以在应用程序运行时调用,因此
application:didfishlaunchingwithoptions:
不会被调用。它只会将其传递到didFinishLaunching。。。方法,这样您就可以知道启动的原因,如果需要,还可以准备,知道您将要打开url

至少,我过去就是这样处理的


希望这有帮助。

看来你是对的。我只信任application:openURL:sourceApplication:annotation,而不在launchoptions中使用url。谢谢