我为iOS应用定义了自定义url方案,以便可以从网站访问它。当我在Safari中输入自定义url方案时,应用打开,但AppDelegate中的以下函数未被调用:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
print("Scheme: \(url.scheme)");
print("Query: \(url.absoluteString)");
return true;
}
只有当应用程序打开并在后台运行时,它才会被调用。我希望在Safari中输入URL时,应用程序没有打开时,该函数会被调用。任何帮助都将不胜感激,谢谢!
3条答案
按热度按时间7hiiyaii1#
在您的didFinishLaunchingWithOptions中,您可以检查launchOptions是否包含键UIApplicationLaunchOptionsURLKey。如果您使用方案打开应用,则该方案将位于该字典中。
当应用程序在后台运行时,请使用openURL(就像您已经做的那样)。
1l5u6lss2#
雨燕4:
我发现,有时似乎应用程序无法打开网址,只是因为需要时间来建立它的物理基础设施(特别是如果你使用自定义的视图控制器或过渡).我发现这个解决方案:
2izufjch3#
这听起来像是“自定义URL”设置没有正确设置。
您的.plist文件中确实有这些设置吗?
有了这些设置,无论何时启动应用程序,都应该调用
application
函数。更多信息,请访问:
Custom URLs