【问题标题】:Determining whether iOS application was launched via Siri判断 iOS 应用程序是否通过 Siri 启动
【发布时间】:2013-10-03 01:52:09
【问题描述】:

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

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

我在想也许 application:didFinishLaunchingWithOptions 或 其他一些 API 将允许我的应用程序知道它是如何启动的,但这并没有 似乎是这样(或者我只是错过了)。

知道在 Apple 发布之前我是否可以使用一些技巧 一些官方/公开的 Siri API?

【问题讨论】:

  • 我不认为 siri 在 API 表单中是公开的
  • 我们有同样的问题,如果应用程序知道它是由 siri 启动还是通过点击应用程序图标启动的

标签: ios objective-c cocoa-touch siri


【解决方案1】:

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

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

来自位于here的苹果文档:

UIApplicationLaunchOptionsSourceApplicationKey

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

【讨论】:

  • 当我从 SIRI 启动应用程序时,既没有调用 application:didFinishLaunchingWithOptions 也没有调用 application:willFinishLaunchingWithOptions 方法。
  • 当我使用 Siri 启动我的应用程序时会调用这些委托函数。但是,启动选项参数为零。
【解决方案2】:

当我从 Siri 启动时,会调用 application:didFinishLaunchingWithOptions。但是,我的 launchOptions 字典是空的。如果我使用 URL 方案启动应用程序,我的 launchOptions 字典具有适当的键。目前,似乎无法知道该应用是否是从 Siri 启动的

【讨论】:

    【解决方案3】:

    苹果提供的启动选项列表

    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的链接。
    这是 Quora 关于官方/公共 Siri API 的链接Quora Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多