Serial.requestPort()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

Serial インターフェイスの Serial.requestPort() メソッドは、ユーザーが選んだデバイスを表す SerialPort のインスタンスで解決するか、デバイスが選択されなかった場合は拒否される Promise を返します。

構文

js
requestPort()
requestPort(options)

引数

options

以下のプロパティを持つオブジェクトです。

filters

接続されたデバイスの探索に使用するベンダー ID とプロダクト ID を格納したオブジェクトのリストです。USB Implementors Forum が特定の会社に ID を割り当てます。それぞれの会社がその製品に ID を割り当てます。フィルターは以下の値を含みます。

usbVendorId

USB デバイスの製造元を特定する unsigned short の整数です。

usbProductId

USB デバイスを特定する unsigned short の整数です。

返値

SerialPort のインスタンスで解決する Promise を返します。

例外

SecurityError DOMException

Feature Policy でこの API の使用が制限されていたり、ユーザーの操作によって API の使用が許可されていないとき、返された Promise がこのエラーで拒否されます。

AbortError DOMException

ユーザーが要求に応じてポートを選択しなかったとき、返された Promise がこのエラーで拒否されます。

この例では、requestPort() に USB ベンダー ID を入れたフィルターを渡し、ユーザーに提示するデバイスのリストを特定の製造元によって作られた USB デバイスのみに絞り込んでいます。フィルターが省略された場合、ユーザーは利用可能なすべてのポートから選択できます。

js
button.addEventListener("click", () => {
  const usbVendorId = 0xabcd;
  navigator.serial
    .requestPort({ filters: [{ usbVendorId }] })
    .then((port) => {
      // `port` に接続する、すなわち利用可能なポートのリストに加えます。
    })
    .catch((e) => {
      // ユーザーがポートを選択しませんでした。
    });
});

仕様書

Specification
Web Serial API
# dom-serial-requestport

ブラウザーの互換性

BCD tables only load in the browser