プリンターを検索する
StarDeviceDiscoveryManager を使って、プリンター検索と接続許可の取得を行います。
検索を実行すると、StarPrinterインスタンスを取得することができます。
Memo
StarPrinterインスタンスは、プリンタと通信するために必要な機能を提供するインスタンスです。
StarPrinterインスタンスを取得するには、検索を含み二通りの方法があります。
- 検索によって取得する方法 (このページの手順4)
- StarPrinterクラスのコンストラクタにinterfaceTypeとidentifierを渡して生成する方法
このStarPrinterインスタンスを使って、印刷データをプリンターに送信したり、POS周辺機器の制御を行ったりすることができます。
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 ヘルプをご参照ください。

