2016-09-27 62 views
-1

我有一個帶有Siri支付意圖擴展的Swift 3 iOS10應用程序。有沒有辦法在主應用程序中提示用戶獲得Siri App Support權限(在設置 - > Siri - >應用程序支持 - >(您的應用程序名稱)中找到)。您可以爲其他權限(如推送通知)做類似的操作。我發現啓用這個開關的唯一方法是實際嘗試首次使用這個意圖,通過說出觸發付款意圖的「支付(您的應用程序名稱)」。我希望在主應用程序中有一個設置屏幕,以向用戶提供關於它如何工作的教程以及啓用它的選項。Siri應用程序支持許可(支付意圖擴展)的提示用戶

回答

0

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

用戶必須授予權限爲您的應用程序使用的詩麗吉。要請求您的應用許可,請執行以下操作:

將NSSiriUsageDescription密鑰包含在iOS應用的Info.plist文件中。此密鑰的值是一個字符串,它描述了您的應用與SiriKit共享的信息。例如,鍛鍊應用可能會將值設置爲字符串「鍛鍊信息將發送到Siri」。 在應用程序執行期間的某個時刻調用INPreferences的requestSiriAuthorization:類方法。 您的iOS應用第一次調用requestSiriAuthorization:方法時,系統會顯示一條提示,提示用戶授權您的應用。該警報包括您在應用的Info.plist文件的NSSiriUsageDescription項中提供的使用說明字符串。用戶可以批准或拒絕應用的授權請求,稍後可以在「設置」應用中更改應用的授權狀態。系統會記住您的應用程序的授權狀態,以便後續對requestSIriAuthorization:方法的調用不會再次提示用戶。

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 
} 
相關問題