2016-09-27 7 views
-1

私はSiri Payment Intent Extensionを持つSwift 3 iOS10アプリを持っています。メインアプリ内でSiri App Supportの許可(設定 - > Siri - > App Support - >(あなたのアプリ名)で見つかった)をユーザーに促す方法はありますか?他のアクセス許可(プッシュ通知など)に対しても同様の操作を行うことができます。私がこのスイッチを有効にするために見つけた唯一の方法は、支払いの意図を引き起こす「Pay(あなたのApp Name)」のようなものを言って初めて実際にインテントを使うことです。私はそれが動作する方法とそれを有効にするオプションについてのチュートリアルをユーザーに与えるために、メインアプリケーション内の設定画面を持っていると思います。Siri App Support Permission(Payment Intent Extension)のプロンプトユーザ

答えて

0

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

ユーザーがシリキットを使用するには、アプリの権限を付与する必要があります。アプリの許可をリクエストするには、次の操作を行います。

iOSアプリのInfo.plistファイルにNSSiriUsageDescriptionキーを含めます。このキーの値は、あなたのアプリがSiriKitと共有する情報を記述する文字列です。たとえば、トレーニングアプリは値を「ワークアウト情報がSiriに送信されます」という文字列に設定することがあります。 アプリの実行中のある時点でINPreferencesのrequestSiriAuthorization:classメソッドを呼び出します。 初めてiOSアプリケーションがrequestSiriAuthorization:メソッドを呼び出すと、ユーザーにあなたのアプリを認証するよう警告するアラートが表示されます。アラートには、アプリのInfo.plistファイルのNSSiriUsageDescriptionキーで指定した使用方法の説明文字列が含まれています。ユーザーは、アプリの承認リクエストを承認または拒否し、後で設定アプリでアプリの認証ステータスを変更することができます。システムは、あなたのアプリケーションの認証ステータスを記憶しておき、その後のrequestSiriAuthorization:メソッドの呼び出しでユーザーに再度プロンプトを出さないようにします。

0

here述べたように、あなたが今、AppDelegateで例えば、ユーザー認証のために促すことができるようだ:

そして、アプリケーション(_に:didFinishLaunchingWithOptions :) 次のコードを追加します。

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

    INPreferences.requestSiriAuthorization 
    { 
     (authStatus: INSiriAuthorizationStatus) in 

    } 
    return true 
}