我正在尝试使用自定义 URL 方案启动我的应用程序。如果应用程序是后台的,一切都很好。如果应用程序没有后台运行,它会启动,并且启动屏幕永远不会消失,最终它会因为运行时间过长而被 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;
}
plist 中的 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>
最佳答案
当您的应用程序响应 URL Scheme 时,您如何处理发生的事情。您应该在 App Delegate 中使用此委托(delegate)方法:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// Do what you need here
return YES;
}
检查 didFinishLaunchingWithOptions 的内容。此方法中的代码不应被注释掉。此外,看起来您在 didFinishLaunchingWithOptions 方法中有一个条件。这很可能是在应用程序在启动时挂起时。
关于iphone - 当应用程序不在后台时,URL 方案不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090899/