从URL问题启动应用程序

时间:2012-12-07 11:14:19

标签: ios xcode url-scheme

我正在尝试使用Safari中的网址启动我的应用。

-(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)上都会发生这种情况 应用程序完全关闭时是否应该调用另一个委托?

谢谢!

1 个答案:

答案 0 :(得分: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
{
}

只需确保您对网址进行了正确编码,但网址可能会中断。