繁体   English   中英

何时/什么/为什么/如何使用应用程序中的launchOptions(应用程序:willFinishLaunchingWithOptions :)中的UIApplicationOptionsURLKey的值?

[英]When/What/Why/How to use value of UIApplicationOptionsURLKey from launchOptions in application(application:willFinishLaunchingWithOptions:)?

背景

我刚开始学习Apple的API,现在,我正在学习UIApplicationDelegate的功能。 更具体地说,我正在解析func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool


质询

可以在launchOptions找到的launchOptionsUIApplicationLaunchOptionsURLKey 这个密钥何时存在?

对应键,有一些价值。 这个值是多少?

出于某种原因,我获得了这个键值对。 我为什么要用它?

最后,最重要的是: 我如何使用它?


附加信息

据我所知,我正在做一个样板项目。 这是它的内容:

func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool
    {
        print("application(application:willFinishLaunchingWithOptions:)")

        if let options: [NSObject: AnyObject] = launchOptions
        {
            for option: (key: NSObject, AnyObject) in options
            {
                switch option.key
                {
                // The presence of this key indicates that the app was launched in order to open a URL. The value of this key is an NSURL object containing the URL to open.
                case UIApplicationLaunchOptionsURLKey:
                    <#code#>
                ...

对于未来的项目,我计划用其他东西替换<#code#>以利用UIApplicationLaunchOptionsURLKey的键值对的功能。

可能还有其他原因,但我用它来打开我的应用程序的特定文件。

我的应用程序以自己的格式保存备份文件。 如果用户在其设备中有其中一个文件,则可以选择使用我的应用程序打开该文件。 如果他这样做,我的应用程序打开,这发生了:

func application(application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        if let url = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL {
            handleBackupFile(url)
        }
        return true
}

除了通常启动的应用程序,我调用handleBackupFile()来处理备份文件。

如果我的应用程序可以打开多种文件,我可能会检查它是什么类型的文件。

编辑:

这是我的应用程序Leio的一个实际示例:

复制到Leio

当用户点击“Copy to Leio”时,我的应用程序将打开并调用该代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM