iphone - 当应用程序不在后台时,URL 方案不起作用

标签 iphone ios appdelegate url-scheme

我正在尝试使用自定义 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/

相关文章:

iphone - MPMoviePlayerController 在 ipad 应用程序中使用的一些问题

iphone - 是否有用于为 iOS 构建音频可视化的开源库?

ios - “UIApplicationMain”属性不能在包含顶级代码的模块中使用

ios - 为 iOS 应用程序实现锁屏

iphone - 滚动 UITableView 将停止 Timer

ios - 使用Swift从应用程序委托(delegate)打开 View Controller

iphone - NSPredicate中的单词边界(\b)导致NSFetchRequest不返回任何托管对象

ios - "Make sure you' ve set APP_BUNDLE_PATH to a build supported by this simulator version“在测试套件运行中出现错误

iphone - 通过 NSSocket 作为 NSData 接收的动画 GIF 图像无法拆分帧

ios - danielgindi iOS Chart 我可以在组合图表上使用两个不同的 Yaxis 刻度吗