提示用户使用Siri App支持权限(付款意向延期)

时间:2016-09-27 16:32:21

标签: swift ios10

我有一个带有Siri支付意图扩展的Swift 3 iOS10应用程序。有没有办法提示用户在主应用程序中获得Siri App支持权限(在设置中找到 - > Siri - >应用程序支持 - >(您的应用程序名称))。您可以为其他权限(例如推送通知)执行类似的操作。我发现启用此切换的唯一方法是首先尝试使用#34;付费(您的应用名称)"这会触发付款意图。我想在主应用程序中设置一个“设置”屏幕,为用户提供有关其工作原理的教程以及启用它的选项。

2 个答案:

答案 0 :(得分:1)

请参阅 - https://developer.apple.com/library/content/documentation/Intents/Conceptual/SiriIntegrationGuide/CreatingtheIntentsExtension.html#//apple_ref/doc/uid/TP40016875-CH4-SW11

用户必须授予您的应用使用SiriKit的权限。要申请您的应用的权限,请执行以下操作:

在您的iOS应用的Info.plist文件中包含NSSiriUsageDescription键。此键的值是一个字符串,用于描述您的应用与SiriKit共享的信息。例如,锻炼应用程序可能会将值设置为字符串“锻炼信息将被发送到Siri”。 在应用程序执行期间的某个时刻调用requestSiriAuthorization:INPreferences的类方法。 您的iOS应用首次调用requestSiriAuthorization:方法时,系统会显示一条警告,提示用户授权您的应用。警报包括您在应用的Info.plist文件的NSSiriUsageDescription键中提供的使用说明字符串。用户可以批准或拒绝您的应用程序的授权请求,并可以稍后在“设置”应用中更改您应用的授权状态。系统会记住您的应用程序的授权状态,以便后续调用requestSiriAuthorization:方法不会再次提示用户。

答案 1 :(得分:0)

现在看来您可以提示用户授权,例如在AppDelegate中提到here

  

然后,在应用程序(_:didFinishLaunchingWithOptions :)中添加   以下代码。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    INPreferences.requestSiriAuthorization
    {
        (authStatus: INSiriAuthorizationStatus) in

    }
    return true
}