2013-10-03 69 views
15

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

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

我在想,也许应用中:didFinishLaunchingWithOptions或 一些其他的API将允许我的应用程序知道它是如何推出,但并非 似乎是这种情况(或我只是错过了)。

任何想法,如果有一些技巧,我可以使用,直到苹果发布 一些官方/公共Siri API?

+0

我不认为Siri的是API形式 – user2277872

+0

内公开,我们有同样的问题,如果它是否是由Siri的或通过点击启动应用会知道的链接Quora的应用程序图标 – clearwater

回答

1

我建议的唯一方法是检查作为application:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions:的一部分传入的launchOption字典。

有声称能列出请求您的应用程序推出,也许Siri的将被列出的应用程序的名称,一个关键:

从位于here苹果DOC:

UIApplicationLaunchOptionsSourceApplicationKey

此密钥的存在标识请求启动您的应用的应用。此键的值是一个NSString对象,它表示发出请求的应用程序的包ID。 此项也用于访问名为UIApplicationDidFinishLaunchingNotification的通知的userInfo字典中的相同值。 Available in iOS 3.0及更高。 在UIApplication.h中声明。

+0

当我从SIRI启动应用程序时,既不应用:didFinishLaunchingWithOptions也不应用:willFinishLaunchingWithOptions方法被调用。 – Jayaprada

+0

当我使用Siri启动我的应用程序时,会调用这些委托函数。但是,启动选项参数为零。 –

0

当我从Siri启动时,应用程序:didFinishLaunchingWithOptions被调用。但是,我的launchOptions字典是空的。如果我使用URL方案启动应用程序,则我的launchOptions字典具有相应的键。在这个时候,它看起来并不像它的可能知道,如果应用程序是从Siri的

0

由苹果

let UIApplicationLaunchOptionsURLKey: String let UIApplicationLaunchOptionsSourceApplicationKey: String let UIApplicationLaunchOptionsRemoteNotificationKey: String let UIApplicationLaunchOptionsLocalNotificationKey: String let UIApplicationLaunchOptionsAnnotationKey: String let UIApplicationLaunchOptionsLocationKey: String let UIApplicationLaunchOptionsNewsstandDownloadsKey: String let UIApplicationLaunchOptionsBluetoothCentralsKey: String let UIApplicationLaunchOptionsBluetoothPeripheralsKey: String let UIApplicationLaunchOptionsShortcutItemKey: String let UIApplicationLaunchOptionsUserActivityDictionaryKey: String let UIApplicationLaunchOptionsUserActivityTypeKey: String

这里的链接到苹果的文档 Launch Options Keys提供的启动选项列表中启动。
下面是关于官员/公共Siri的API Quora Link

相关问题