0

我正在尝试使用 Safari 中的 URL 启动我的应用程序。

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    NSLog(@"Launched with URL");
    return YES;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"Launched normally");
    // Override point for customization after application launch.
    return YES;
}

(也试过-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url )如果应用程序在后台(即,如果我双击主页按钮,它就在那里)应用程序正确启动并且控制台显示Launched with URL. 但是,如果我完全关闭它,也就是说,双击主页按钮,按住应用程序并单击减号,当尝试通过 Safari 再次启动它时,它只会显示黑屏并且不会向控制台记录任何内容。

这发生在设备和模拟器上(5.1 两者)当应用程序完全关闭时是否应该调用另一个委托?

谢谢!

4

1 回答 1

1

如果您的应用程序是从 Safari 打开的,这意味着您已经正确实现了 URL 模式。在这些应用程序委托事件中处理 Opened URl

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:
                                                        (NSString *)sourceApplication
                                                        annotation:(id)annotation
{
}

只需确保您已正确编码您的 URL,这可能是您的 URL 中断的情况。

于 2012-12-07T12:30:07.177 回答