确定iOS应用程序是否是通过Siri启动的

Yan*_*ery 15 cocoa-touch objective-c ios siri

我一直在寻找,但还没找到......你知道是否有办法确定我的iOS应用程序是由Siri推出还是由用户点击应用程序图标?

我需要知道,因为我只想在我的应用程序从Siri启动时自动执行启动操作.

我想也许应用程序:didFinishLaunchingWithOptions或其他一些API将允许我的应用程序知道它是如何启动的,但似乎并非如此(或者我只是错过了它).

在Apple发布一些官方/公共Siri API之前,有什么想法可以使用吗?

Dea*_*ean 2

我唯一可以建议的是检查作为application:willFinishLaunchingWithOptions:和的一部分传入的 launchOption 字典application:didFinishLaunchingWithOptions:

有一个键声称列出了请求启动您的应用程序的应用程序的名称,并且可能会列出 Siri:

来自位于此处的苹果文档:

UIApplicationLaunchOptionsSourceApplicationKey

此密钥的存在可识别请求启动您的应用程序的应用程序。该键的值是一个 NSString 对象,表示发出请求的应用程序的捆绑 ID。此键还用于访问名为 UIApplicationDidFinishLaunchingNotification 的通知的 userInfo 字典中的相同值。适用于 iOS 3.0 及更高版本。在 UIApplication.h 中声明。