Skip to Content
ハードウェア基本 APIUI イベントに応答
このページの内容

UI イベントに応答

HardwareSDK.uiResponse() で保留中の SDK 入力リクエストに応答します。戻り値は void; 操作結果は、元のアドレス取得、署名、デバイス操作の Promise を待って取得してください。

保護された呼び出しの前にUI イベントハンドラーを登録します。現在のリクエストにのみ応答し、リクエストに payload.responseCorrelation が含まれる場合は保持してください。interactionId と deviceId の関連付けフィールドはレスポンスのトップレベルに置きます。署名呼び出しの位置引数であるウォレットの deviceId の代わりにはなりません。

PIN 入力

このコードは次の UI_REQUEST.REQUEST_PIN ハンドラー内に配置します。 message はそのリクエストであり、 pinValue は UI が収集したブラインド PIN の入力位置の完成した並びです。

HardwareSDK.uiResponse({ ...message.payload.responseCorrelation, type: UI_RESPONSE.RECEIVE_PIN, payload: pinValue, });

デバイス上での入力も選べるホスト入力リクエストでは、応答値は @@ONEKEY_INPUT_PIN_IN_DEVICE です。deviceOnly、ButtonRequest_PinEntry、ButtonRequest_AttachPin が指定されたリクエストはデバイス上の通知です。案内を表示し、返信せずに待機してください。

参照: PIN でブラインドキーパッドの対応関係とモデルの制約を確認してください。

パスフレーズ入力

このコードは UI_REQUEST.REQUEST_PASSPHRASE の中に配置します。passphraseValue にはユーザーの現在の入力を使い、ハードコードした値やログに記録した値を使ってはいけません。

HardwareSDK.uiResponse({ ...message.payload.responseCorrelation, type: UI_RESPONSE.RECEIVE_PASSPHRASE, payload: { value: passphraseValue, passphraseOnDevice: false, save: false, }, });

デバイス上での入力を選ぶには、代わりに { value: '', passphraseOnDevice: true, save: false } を使用します。deviceOnly に従ってデバイス入力を選択してください。REQUEST_PASSPHRASE_ON_DEVICE は後続の通知で、応答は不要です。

ホストで入力した秘密情報を、ログ、分析、永続ストレージ、エラーレポートに含めないでください。ユーザーが対応するセッションキャッシュフローを明示的に選択しない限り、save: false を使用します。

キャンセルと終了

ユーザーが入力をキャンセルしたときは、HardwareSDK.cancel(connectId) で選択した接続の操作をキャンセルします。操作が完了したとき、または SDK が UI を閉じたときは、保留中のモーダルの送信を無効化し、遅れた応答が別のリクエストに回答しないようにしてください。

REQUEST_BUTTON, ファームウェアの進捗、デバイス専用の PIN プロンプトは「OK」の応答を受け付けません。ホストのボタンでデバイス上の確認を代用してはいけません。

その他の入力リクエスト

WebUSB の bootloader 選択リクエストには、対応する UI_RESPONSE.SELECT_DEVICE_* 応答を使用し、選択したデバイス ID を payload に含めます。公開の共用型 UiResponseEvent に受け付ける形式が定義されています。uiResponse などのライフサイクル API は、一般的な共通パラメーターオブジェクトを受け取りません。

最終更新日