当app没有后台时,URL Scheme不起作用

时间:2013-08-06 21:33:27

标签: iphone ios appdelegate url-scheme

我正在尝试使用自定义网址方案启动我的应用。如果应用程序背景,一切都很好。如果应用程序没有后台运行,它会启动,并且启动屏幕永远不会消失,最终它会被iOS杀死太长时间。我已经对此进行了广泛的调试,但无法解决问题。我甚至从我的应用程序didFinishLauinchingWithOptions中删除了所有内容,以确保没有任何内容阻止它。这是我改变的代码,我要问的是它打开并给我一个空白的窗口,但是甚至不会这样做。只需挂在启动屏幕上。

if ([launchOptions objectForKey:UIApplicationLaunchOptionsURLKey]) {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [self.window makeKeyAndVisible];

    self.window.rootViewController = [[UIViewController alloc]init];

    return YES;
}
pist中的

URL方案:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb23423444322</string>
            <string>test</string>
        </array>
    </dict>
</array>
</plist>

1 个答案:

答案 0 :(得分:1)

您如何处理应用程序响应URL方案时发生的情况。您应该在App Delegate中使用此委托方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{   
     // Do what you need here

     return YES;
}

检查didFinishLaunchingWithOptions的内容。不应注释掉此方法中的代码。此外,看起来你在didFinishLaunchingWithOptions方法中有一个条件。这很可能是应用程序在启动时挂起的。