StarXpand SDK for Web 開発者向けマニュアル Ver. 1.0.0

最終更新日: 2026年 4月 28日

プリンターを検索する

StarDeviceDiscoveryManager を使って、プリンター検索と接続許可の取得を行います。
検索を実行すると、StarPrinterインスタンスを取得することができます。

Memo
StarPrinterインスタンスは、プリンタと通信するために必要な機能を提供するインスタンスです。
StarPrinterインスタンスを取得するには、検索を含み二通りの方法があります。

  • 検索によって取得する方法 (このページの手順4
  • StarPrinterクラスのコンストラクタにinterfaceTypeとidentifierを渡して生成する方法

このStarPrinterインスタンスを使って、印刷データをプリンターに送信したり、POS周辺機器の制御を行ったりすることができます。

以下の手順を参考にプリンターの検索を実行してください。
ページ下部にサンプルコードがあります。 また、SDKのサンプルアプリも参考にしてください。

1検索を行うために使用するStarDeviceDiscoveryManager型のインスタンスを作成します。
検索対象のインターフェイスタイプを指定してください。

const discoveryManager = new StarDeviceDiscoveryManager(InterfaceType.Usb);

2プリンターが見つかったときの処理を実装します。onPrinterFoundプロパティにプリンターが見つかったときのデリゲートメソッドをセットしてください。

discoveryManager.onPrinterFound = async (printer: StarPrinter) => {
    console.log(`Found printer: ${printer.connectionSettings.identifier}.`);
};

3検索を実行するために、discoverメソッドを呼び出します。

await discoveryManager.discover();

4エラー時の処理を実装します。errorインスタンスの型によりエラーを判別できます。
発生する可能性のあるエラーはStarDeviceDiscoveryManagerクラスのdiscoverメソッドのAPIリファレンスに記載されています。

try{
    ...
} catch(error) {
  console.log(`Error: ${String(error)}`);
};
サンプルコード

private discovery = async() => {
     try {
        const discoveryManager = new StarDeviceDiscoveryManager(InterfaceType.Usb);

        discoveryManager.onPrinterFound = async (printer: StarPrinter) => {
            console.log(`Found printer: ${printer.connectionSettings.identifier}.`);
        };

        await discoveryManager.discover();
    } catch (error) {
        console.log(`Error: ${String(error)}`);
    }
};
 

接続許可の取得について

WebUSB APIの仕様により、通信を開始する前にプリンターへの接続許可を取得する必要があります
StarDeviceDiscoveryManager.discover()によって検索を実行すると、プリンターの検索と同時に接続許可の取得が行われます。

以下の操作を行うと、接続許可の再取得が必要になる場合があります。

  • ブラウザのキャッシュをクリアする
  • ブラウザを再起動する
  • ホストデバイスを再起動する
  • USBケーブルを抜き差しする
  • プリンターの電源を入れ直す
プリンターの接続に失敗する場合は、再度検索を実行して接続許可を取得してください。

Memo
事前にGoogle Enterpriseで許可を取得すると、StarDeviceDiscoveryManagerによる接続許可の取得は不要になります。
詳細は Google Enterprise and Education ヘルプをご参照ください。