↑ 先頭

sticktv 関数仕様書

docs/sticktv.md から自動生成された API 仕様書

1. JavaScript API 関数仕様

1.1. 基本・ページ遷移

void log(string mes)

暗号化ログへ出力(改行は自動付与)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
mes string 必須 文字列。
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.log('');

void showMessage(string msg)

Windows はメッセージボックス、Android はトースト表示。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
msg string 必須 文字列。
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.showMessage('');

void exit()

アプリ終了。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.exit();

void finish()

ホストの終了処理を呼ぶ。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.finish();

void loadUrl(string url)

%APP% / %HOME% プレースホルダ可。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
備考

file:// URI も許容。他 API との呼び出し順序の前提はない

サンプル
window.sticktv.loadUrl('https://example.com/');

void openUrl(string url)

loadUrl の別名。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.openUrl('https://example.com/');

void settings()

Windows は設定ページを読み込み、Android は OS の設定アプリを起動。

  • 対応プラットフォーム: Windows △ / Android △
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.settings();

void loadMyHome()

トップページを読み込む。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.loadMyHome();

void goHome()

トップページに戻る。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.goHome();

void historyBack()

履歴を 1 つ戻る。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.historyBack();

void clearHistory()

閲覧履歴をクリア。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.clearHistory();

void nativeToJavascript(string func)

メイン WebView で JavaScript を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
func string 必須 文字列。
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.nativeToJavascript('');

void eval(string cmd)

メイン WebView で JavaScript を実行(nativeToJavascript と同等)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
cmd string 必須 文字列。
備考

他 API との呼び出し順序の前提はない

サンプル
window.sticktv.eval('');

void splashFinished()

Android のみ。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
前提・後続 API

Android のみ。スプラッシュ画面からホーム遷移を完了させる。ドメインチェックを行わない。Android スプラッシュ画面から呼び出すことを想定

サンプル
window.sticktv.splashFinished();

1.2. 設定保存(Preference)

setPreferenceString / getPreferenceString は文字列値を AES で暗号化して保存・取得します(固定キー)。
setPreferenceInt / getPreferenceInt / setPreferenceBoolean / getPreferenceBoolean は平文で保存します。

Windows の保存キーは type + "_" + key(type が空の場合は key のみ)。
Android では type が空の場合はデフォルトプリファレンス、それ以外の場合は type 名のプリファレンスファイルに key で保存します。

void setPreferenceString(string type, string key, string value)

文字列として AES 暗号化保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
value string 必須 文字列。
前提・後続 API

文字列として AES 暗号化保存。Windows 第 3 引数は実装上 object 型(JS からは文字列を渡す)。対応する getPreferenceString は設定後に呼び出す

サンプル
window.sticktv.setPreferenceString('', '', '');

string getPreferenceString(string type, string key)

復号して取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
戻り値
型 内容
string 文字列。
前提・後続 API

復号して取得。失敗時は生の値。未設定時は空文字。対応する setPreferenceString の後に呼び出す

サンプル
const result = await window.sticktv.getPreferenceString('', '');
console.log(result);

void setPreferenceInt(string type, string key, int value)

整数値を平文で保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
value int 必須 数値。
前提・後続 API

整数値を平文で保存。Windows 第 3 引数は実装上 object 型(JS からは数値を渡す)。対応する getPreferenceInt は設定後に呼び出す

サンプル
window.sticktv.setPreferenceInt('', '', 0);

string getPreferenceInt(string type, string key)

整数値の文字列表現を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
戻り値
型 内容
string 文字列。
前提・後続 API

整数値の文字列表現を返す。対応する setPreferenceInt の後に呼び出す

サンプル
const result = await window.sticktv.getPreferenceInt('', '');
console.log(result);

void setPreferenceBoolean(string type, string key, bool value)

真偽値を平文で保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
value bool 必須 真偽値。
前提・後続 API

真偽値を平文で保存。Windows 第 3 引数は実装上 object 型(JS からは真偽値を渡す)。対応する getPreferenceBoolean は設定後に呼び出す

サンプル
window.sticktv.setPreferenceBoolean('', '', true);

string getPreferenceBoolean(string type, string key)

"true" / "false" を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
type string 必須 文字列。
key string 必須 文字列。
戻り値
型 内容
string 文字列。
前提・後続 API

"true" / "false" を返す。対応する setPreferenceBoolean の後に呼び出す

サンプル
const result = await window.sticktv.getPreferenceBoolean('', '');
console.log(result);

void initPreference()

設定を全てリセット。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

設定を全てリセット。getPreference* の前に呼び出すと保存済み値が失われるため注意

サンプル
window.sticktv.initPreference();

1.3. JavaScript 変数(キー値ストア)

内部的なキー値ストアを保持し、値を JSON にシリアライズして Preference 領域に永続化します。

void setVar(string key, string value)

Windows は value に bool / int を渡すと文字列化して保存(それ以外の型は警告)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
key string 必須 文字列。
value string 必須 文字列。
前提・後続 API

Windows は value に bool / int を渡すと文字列化して保存(それ以外の型は警告)。対応する getVar は設定後に呼び出す

サンプル
window.sticktv.setVar('', '');

string getVar(string key)

未登録キーは永続化領域から読み込み、通常は空文字。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
key string 必須 文字列。
戻り値
型 内容
string 文字列。
前提・後続 API

未登録キーは永続化領域から読み込み、通常は空文字。Windows 版では Preference 復号に失敗すると例外が発生する可能性がある。対応する setVar の後に呼び出す

サンプル
const result = await window.sticktv.getVar('');
console.log(result);

void removeVar(string key)

一時領域と永続化領域の両方から削除。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
key string 必須 文字列。
前提・後続 API

一時領域と永続化領域の両方から削除。対応する setVar 実行後に呼び出す

サンプル
window.sticktv.removeVar('');

1.4. ファイル・フォルダ操作

bool fileExists(string path)

path には file:// URI も許容。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

他 API との呼び出し順序の前提はない

サンプル
const ok = await window.sticktv.fileExists('%APP%/data/file.txt');
if (!ok) console.error('fileExists 失敗');

void removeFile(string path)

path には file:// URI も許容。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
前提・後続 API

path には file:// URI も許容。fileExists で存在確認後に呼び出すことを推奨

サンプル
window.sticktv.removeFile('%APP%/data/file.txt');

void removeFolder(string path)

フォルダを再帰削除。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
前提・後続 API

フォルダを再帰削除。path には file:// URI も許容。getFolderTree 等で対象を確認後に呼び出すことを推奨

サンプル
window.sticktv.removeFolder('%APP%/data/file.txt');

void removeFolder2Day(string path)

作成から 2 日以上経過したファイルを削除。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
備考

path には file:// URI も許容。Android はバックグラウンドスレッドで実行し、呼び出しは即座に返る。他 API との呼び出し順序の前提はない

サンプル
window.sticktv.removeFolder2Day('%APP%/data/file.txt');

bool writeFile(string path, string text)

UTF-8 で上書き保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
text string 必須 文字列。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

path には file:// URI も許容。親フォルダは自動作成。対象パスは getFilesDir 等で取得することが多い

サンプル
const ok = await window.sticktv.writeFile('%APP%/data/file.txt', '');
if (!ok) console.error('writeFile 失敗');

bool writeFileCSV(string path, string text)

BOM 付き UTF-8 で上書き保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
text string 必須 文字列。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

path には file:// URI も許容。対象パスは getFilesDir 等で取得することが多い

サンプル
const ok = await window.sticktv.writeFileCSV('%APP%/data/file.txt', '');
if (!ok) console.error('writeFileCSV 失敗');

string getFolderList(string path)

Windows: サブフォルダも含む相対パスを改行区切りで返す。

  • 対応プラットフォーム: Windows △ / Android △
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

Windows: サブフォルダも含む相対パスを改行区切りで返す。Android: 直下ファイル名のみを改行区切りで返す。path には file:// URI も許容。removeFolder / writeFile の前に呼び出すことを推奨

サンプル
const result = await window.sticktv.getFolderList('%APP%/data/file.txt');
console.log(result);

string getFolderTree(string path)

サブフォルダを含む相対パス一覧(/ 区切り、改行区切り)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

サブフォルダを含む相対パス一覧(/ 区切り、改行区切り)。path には file:// URI も許容。removeFolder / writeFile の前に呼び出すことを推奨

サンプル
const result = await window.sticktv.getFolderTree('%APP%/data/file.txt');
console.log(result);

string getDirList(string path)

ファイル・フォルダ名を改行区切りで返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

ファイル・フォルダ名を改行区切りで返す。path には file:// URI も許容。removeFolder / writeFile の前に呼び出すことを推奨

サンプル
const result = await window.sticktv.getDirList('%APP%/data/file.txt');
console.log(result);

string getFilesDir()

Windows はアプリ作業ディレクトリの絶対パス。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
備考

Android はキャッシュディレクトリの絶対パス。writeFile / getUrl 等のパス取得に使うことが多い

サンプル
const result = await window.sticktv.getFilesDir();
console.log(result);

void unzipfile(string zipFilePath, string destinationPath, string password)

ZIP 解凍。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
zipFilePath string 必須 文字列。
destinationPath string 必須 文字列。
password string 必須 文字列。
前提・後続 API

ZIP 解凍。zipFilePath / destinationPath には file:// URI も許容。パスワード付き ZIP も両プラットフォームで対応。fileExists で対象 ZIP の存在を確認後に呼び出すことを推奨

サンプル
window.sticktv.unzipfile('', '', '');

string convAppUrl(string url)

%APP% / %HOME% を展開した URL を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
戻り値
型 内容
string 文字列。
前提・後続 API

%APP% / %HOME% を展開した URL を返す。getUrl / loadUrl 等の前に呼び出すことがある

サンプル
const result = await window.sticktv.convAppUrl('https://example.com/');
console.log(result);

string convAppPath(string path)

%APP% / %HOME% を展開したローカルパスを返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

%APP% / %HOME% を展開したローカルパスを返す。writeFile / getUrl 等の前に呼び出すことがある

サンプル
const result = await window.sticktv.convAppPath('%APP%/data/file.txt');
console.log(result);

void decodeLogs()

暗号化ログを復号してテキストファイルに保存(詳細は 2.25)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

暗号化ログを復号してテキストファイルに保存(詳細は 2.25)。log 出力後に呼び出す

サンプル
window.sticktv.decodeLogs();

string pickFile(string optionsJson)

ファイル選択ダイアログを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
戻り値 JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

ファイル選択ダイアログを開く。戻り値は {"uri":"...", "name":"..."}。キャンセル時は {"cancelled":true}。Windows では file:///... URI、Android では content://... URI。取得した uri は getUrl 等の前に使う

サンプル
const result = await window.sticktv.pickFile(JSON.stringify({}));
console.log(result);

void asyncPickFile(string optionsJson, string callback)

pickFile の非同期版。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
コールバック JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

pickFile の非同期版。完了時 callback(resultJson) を実行。コールバック関数名は事前に定義しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncPickFile(JSON.stringify({}), 'onResult');

string pickFiles(string optionsJson)

複数ファイル選択。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
戻り値 JSON スキーマ

成功時:

{"items":[{"uri":"...","name":"..."}]}
フィールド 型 説明
items object[] 選択されたファイルオブジェクトの配列
items[].uri string ファイル URI
items[].name string ファイル名
前提・後続 API

複数ファイル選択。戻り値は {"items":[{"uri":"...", "name":"..."}, ...]}. 取得した各 uri は getUrl 等の前に使う

サンプル
const result = await window.sticktv.pickFiles(JSON.stringify({}));
console.log(result);

void asyncPickFiles(string optionsJson, string callback)

pickFiles の非同期版。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
コールバック JSON スキーマ

成功時:

{"items":[{"uri":"...","name":"..."}]}
フィールド 型 説明
items object[] 選択されたファイルオブジェクトの配列
items[].uri string ファイル URI
items[].name string ファイル名
前提・後続 API

pickFiles の非同期版。コールバック関数名は事前に定義しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncPickFiles(JSON.stringify({}), 'onResult');

string pickFolder(string optionsJson)

フォルダ選択ダイアログを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
string 文字列。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
戻り値 JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

フォルダ選択ダイアログを開く。戻り値形式は pickFile と同じ。取得した uri は getFolderTree / writeFile 等の前に使う

サンプル
const result = await window.sticktv.pickFolder(JSON.stringify({}));
console.log(result);

void asyncPickFolder(string optionsJson, string callback)

pickFolder の非同期版。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
コールバック JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

pickFolder の非同期版。コールバック関数名は事前に定義しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncPickFolder(JSON.stringify({}), 'onResult');

string saveFile(string optionsJson)

保存先ファイル選択ダイアログを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
string 文字列。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
戻り値 JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

保存先ファイル選択ダイアログを開く。defaultFileName で初期ファイル名を指定可。戻り値の uri は writeFile の前に使う

サンプル
const result = await window.sticktv.saveFile(JSON.stringify({}));
console.log(result);

void asyncSaveFile(string optionsJson, string callback)

saveFile の非同期版。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
title string 任意 ダイアログのタイトル
filters object[] 任意 選択可能なファイル種別の配列
filters[].name string 必須 フィルターの表示名
filters[].extensions string[] 必須 拡張子の配列。["*"] ですべてのファイルを対象にする
initialDirectory string 任意 初期表示フォルダ。%APP% / %HOME% プレースホルダ可
defaultFileName string 任意 保存ダイアログ(saveFile / asyncSaveFile)の初期ファイル名
コールバック JSON スキーマ

成功時:

{"uri":"file:///C:/path/to/file.jpg","name":"file.jpg"}
フィールド 型 説明
uri string 選択/保存されたファイルの URI。Windows は file:///...、Android は content://...
name string ファイル名

キャンセル時:

{"cancelled":true}
フィールド 型 説明
cancelled boolean ユーザーがキャンセルした場合 true
前提・後続 API

saveFile の非同期版。コールバック関数名は事前に定義しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncSaveFile(JSON.stringify({}), 'onResult');

1.5. ダウンロード・HTTP

bool downloadPath(string path, string url)

同期的にダウンロードして待つ。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

同期的にダウンロードして待つ。path には file:// URI も許容。UI がブロックされることがある。ダウンロード後に getUrl / getDataBase64 等で内容を読むことが多い

サンプル
const ok = await window.sticktv.downloadPath('%APP%/data/file.txt', 'https://example.com/');
if (!ok) console.error('downloadPath 失敗');

void asyncDownloadPath(string path, string url)

Windows も真に非同期(Task.Run)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
備考

path には file:// URI も許容。完了を待たない。完了検知は個別に実装する必要がある

サンプル
window.sticktv.asyncDownloadPath('%APP%/data/file.txt', 'https://example.com/');

bool asyncDownloadPath(string path, string url, bool overwrite)

開始可否を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
overwrite bool 必須 真偽値。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

path には file:// URI も許容。ダウンロード完了は待たない。overwrite=false で既存ファイル時はスキップ

サンプル
const ok = await window.sticktv.asyncDownloadPath('%APP%/data/file.txt', 'https://example.com/', true);
if (!ok) console.error('asyncDownloadPath 失敗');

string getUrl(string url)

指定 URL / file パスの内容を文字列で取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
戻り値
型 内容
string 文字列。
前提・後続 API

指定 URL / file パスの内容を文字列で取得。file:// URI も許容。pickFile / downloadPath / convAppUrl の後に呼び出すことが多い

サンプル
const result = await window.sticktv.getUrl('https://example.com/');
console.log(result);

void asyncGetUrl(string url, string callback)

非同期取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
前提・後続 API

非同期取得。url には file:// URI も許容。callback('エスケープ済み文字列') で通知。コールバック関数名は事前に定義しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncGetUrl('https://example.com/', 'onResult');

1.6. 画像

void shrinkPhoto(string path, int width, int height, bool reverseUpDown, bool reverseLeftRight)

リサイズして JPEG 上書き保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
width int 必須 数値。
height int 必須 数値。
reverseUpDown bool 必須 真偽値。
reverseLeftRight bool 必須 真偽値。
前提・後続 API

リサイズして JPEG 上書き保存。path には file:// URI も許容。Windows 版は reverseUpDown / reverseLeftRight を無視(Android のみ反転が有効)。getDataBase64 / openaiChatImage の前に呼び出すことを推奨

サンプル
window.sticktv.shrinkPhoto('%APP%/data/file.txt', 0, 0, true, true);

string getPhotoSize(string path)

画像の実サイズを "幅x高さ" で返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

画像の実サイズを "幅x高さ" で返す。path には file:// URI も許容。shrinkPhoto / getDataBase64 の前に呼び出すことがある

サンプル
const result = await window.sticktv.getPhotoSize('%APP%/data/file.txt');
console.log(result);

void saveJpeg(string filePath, string data)

Base64 画像を JPEG として保存。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
filePath string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
data string 必須 Base64 エンコード済みデータ。
前提・後続 API

Base64 画像を JPEG として保存。filePath には file:// URI も許容。保存後に getDataBase64 / getUrl 等で読み出す

サンプル
window.sticktv.saveJpeg('%APP%/data/file.txt', 'data:image/png;base64,...');

string getDataBase64(string path)

PNG に変換した data:image/png;base64,... を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
path string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
前提・後続 API

PNG に変換した data:image/png;base64,... を返す。path には file:// URI も許容。失敗時は空文字。openaiChatImage / asyncOpenaiChatImage / getUrlBase64 の前に呼び出すことが多い

サンプル
const result = await window.sticktv.getDataBase64('%APP%/data/file.txt');
console.log(result);

string getUrlBase64(string url)

data:<mime>;base64,... または file:// URI から取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
戻り値
型 内容
string 文字列。
前提・後続 API

data:<mime>;base64,... または file:// URI から取得。失敗時は空文字。openaiChatImage の前に呼び出すことがある

サンプル
const result = await window.sticktv.getUrlBase64('https://example.com/');
console.log(result);

string getFileBytes(string filename)

ファイル内容を Base64 文字列で返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
filename string 必須 file:// URI、%APP% / %HOME% プレースホルダ、またはローカルパス。
戻り値
型 内容
string 文字列。
備考

filename には file:// URI も許容。他 API との呼び出し順序の前提はない

サンプル
const result = await window.sticktv.getFileBytes('%APP%/data/file.txt');
console.log(result);

int printPngUrl(string url)

Windows は PNG を既定プリンタへ印刷。

  • 対応プラットフォーム: Windows △ / Android △
  • 戻り値: int
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
備考

url には file:// URI も許容。戻り値は 原則 0(内部の印刷失敗は握りつぶされ、JsObject レベルで外部例外が発生した場合のみ -1)。Android は未実装で通常 固定値 -999999 を返す。許可ドメイン外では -1。他 API との呼び出し順序の前提はない

サンプル
const result = await window.sticktv.printPngUrl('https://example.com/');
console.log(result);

1.7. TWAIN スキャナー(Windows のみ)

TWAIN 対応スキャナーから画像を取得し、base64 data URL として返します。取得した画像はメモリ上で PNG に変換され、一時ファイルを作成しません。

string scanTwainListDevices()

[{"id":"...","name":"..."}] 形式。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
[{"id":"...","name":"..."}]
フィールド 型 説明
id string デバイス識別子
name string デバイス表示名
前提・後続 API

[{"id":"...","name":"..."}] 形式。失敗時は "[]"。取得後、得た id を使って scanTwainImage() / asyncScanTwainImage() を呼び出す

サンプル
const result = await window.sticktv.scanTwainListDevices();
console.log(result);

string scanTwainImage(string optionsJson)

成功時は {"success":true,"base64":"data:image/png;base64,...","width":...,"height":...,"dpi":...,"colorMode":"..."}。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: string
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
deviceId string 任意 scanTwainListDevices() で取得した id。未指定または無効な場合は TWAIN ソース選択ダイアログを表示
dpi number 任意 解像度。省略時は 200
colorMode string 任意 "color" / "gray" / "bw"。省略時は "color"。内部は PNG として base64 化
showUI boolean 任意 true の場合、スキャナー提供の UI を表示。省略時は true
戻り値 JSON スキーマ

成功時:

{"success":true,"base64":"data:image/png;base64,...","width":...,"height":...,"dpi":...,"colorMode":"..."}
フィールド 型 説明
success boolean 成功時 true
base64 string PNG 化された画像の data URL
width number 画像幅(ピクセル)
height number 画像高さ(ピクセル)
dpi number 解像度
colorMode string "color" / "gray" / "bw"

失敗時:

{"success":false,"error":"..."}
フィールド 型 説明
success boolean 失敗時 false
error string エラーメッセージ
前提・後続 API

成功時は {"success":true,"base64":"data:image/png;base64,...","width":...,"height":...,"dpi":...,"colorMode":"..."}。失敗時は {"success":false,"error":"..."}。実際にスキャンする前に scanTwainListDevices() で対象 id を取得しておくこと

サンプル
const result = await window.sticktv.scanTwainImage(JSON.stringify({}));
console.log(result);

void asyncScanTwainImage(string optionsJson, string callback)

非同期版。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: void
引数
名前 型 必須 説明
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
deviceId string 任意 scanTwainListDevices() で取得した id。未指定または無効な場合は TWAIN ソース選択ダイアログを表示
dpi number 任意 解像度。省略時は 200
colorMode string 任意 "color" / "gray" / "bw"。省略時は "color"。内部は PNG として base64 化
showUI boolean 任意 true の場合、スキャナー提供の UI を表示。省略時は true
コールバック JSON スキーマ

成功時:

{"success":true,"base64":"data:image/png;base64,...","width":...,"height":...,"dpi":...,"colorMode":"..."}
フィールド 型 説明
success boolean 成功時 true
base64 string PNG 化された画像の data URL
width number 画像幅(ピクセル)
height number 画像高さ(ピクセル)
dpi number 解像度
colorMode string "color" / "gray" / "bw"

失敗時:

{"success":false,"error":"..."}
フィールド 型 説明
success boolean 失敗時 false
error string エラーメッセージ
前提・後続 API

非同期版。完了時に callback(resultJson) を実行。呼び出し前に scanTwainListDevices() で対象 id を取得しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncScanTwainImage(JSON.stringify({}), 'onResult');

1.8. 印刷(ESC/POS サーマルプリンタ)

ネイティブ側は生バイト列の送受信(printWrite)とデバイス列挙(printListDevices)のみを担当します。
レシートマークアップから ESC/POS コマンドへの変換は、sticktv_stub.js が読み込む ReceiptLine ライブラリで行います。ネイティブ JsObject には printReceipt は存在しません。

bool printWrite(string base64Bytes, string optionsJson)

Base64 エンコードされた ESC/POS バイト列を印刷。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
base64Bytes string 必須 文字列。
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
optionsJson の JSON スキーマ

接続タイプ共通:

フィールド 型 必須 説明
type string 必須 usb-serial / usb-print / tcp / usb / bluetooth-spp

usb-serial:

フィールド 型 必須 説明
port string 必須 COM ポート名(例: "COM3")
baudRate number 任意 ボーレート。省略時はプリンタ依存(通常 115200 等)
dataBits number 任意 データビット数
parity string 任意 パリティ("none" 等)
stopBits number 任意 ストップビット数

usb-print:

フィールド 型 必須 説明
devicePath string 必須 printListDevices() で取得した Windows デバイスパス

tcp:

フィールド 型 必須 説明
host string 必須 プリンタの IP またはホスト名
port number 必須 ポート番号

usb(Android USB ホスト):

フィールド 型 必須 説明
vendorId number 必須 USB Vendor ID
productId number 必須 USB Product ID

bluetooth-spp:

フィールド 型 必須 説明
address string 必須 ペアリング済み Bluetooth デバイスの MAC アドレス
前提・後続 API

Base64 エンコードされた ESC/POS バイト列を印刷。接続は毎回オープン・書き込み・クローズ。呼び出し前に printListDevices() で対象 port / devicePath / address などを確認し、optionsJson に含めることを推奨

サンプル
const ok = await window.sticktv.printWrite('', JSON.stringify({}));
if (!ok) console.error('printWrite 失敗');

string printListDevices()

利用可能な印刷デバイスの JSON 配列。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
[
  {"type":"usb-serial","name":"COM3","port":"COM3"},
  {"type":"usb-print","name":"USB 印刷","devicePath":"\\?\usb#..."},
  {"type":"tcp","name":"192.168.1.10:9100","host":"192.168.1.10","port":9100},
  {"type":"usb","name":"USB Device","vendorId":1305,"productId":1},
  {"type":"bluetooth-spp","name":"Printer","address":"AA:BB:CC:DD:EE:FF"}
]
フィールド 型 説明
type string 接続タイプ。usb-serial / usb-print / tcp / usb / bluetooth-spp
name string デバイス表示名
port string usb-serial 時の COM ポート名
devicePath string usb-print 時の Windows デバイスパス
host string tcp 時のホスト名/IP
port number tcp 時のポート番号
vendorId number usb 時の USB Vendor ID
productId number usb 時の USB Product ID
address string bluetooth-spp 時の MAC アドレス
前提・後続 API

利用可能な印刷デバイスの JSON 配列。Windows は COM ポート、USB-Print デバイス、ペアリング済み Bluetooth SPP デバイスを列挙。Android は USB ホストデバイスとペアリング済み Bluetooth SPP デバイスを列挙。取得結果をもとに printWrite() / printReceipt() を呼び出す

サンプル
const result = await window.sticktv.printListDevices();
console.log(result);

bool printReceipt(string receiptLineMarkup, string optionsJson)

sticktv_stub.js 提供のヘルパー。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
receiptLineMarkup string 必須 文字列。
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
optionsJson の JSON スキーマ

接続タイプ共通:

フィールド 型 必須 説明
type string 必須 usb-serial / usb-print / tcp / usb / bluetooth-spp

usb-serial:

フィールド 型 必須 説明
port string 必須 COM ポート名(例: "COM3")
baudRate number 任意 ボーレート。省略時はプリンタ依存(通常 115200 等)
dataBits number 任意 データビット数
parity string 任意 パリティ("none" 等)
stopBits number 任意 ストップビット数

usb-print:

フィールド 型 必須 説明
devicePath string 必須 printListDevices() で取得した Windows デバイスパス

tcp:

フィールド 型 必須 説明
host string 必須 プリンタの IP またはホスト名
port number 必須 ポート番号

usb(Android USB ホスト):

フィールド 型 必須 説明
vendorId number 必須 USB Vendor ID
productId number 必須 USB Product ID

bluetooth-spp:

フィールド 型 必須 説明
address string 必須 ペアリング済み Bluetooth デバイスの MAC アドレス
receiptline フィールドの JSON スキーマ
{ "command": "escpos", "encoding": "shiftjis", "cpl": 32 }
フィールド 型 必須 説明
command string 任意 プリンタコマンド体系。省略時 escpos
encoding string 任意 文字エンコーディング。省略時 shiftjis
cpl number 任意 1 行の文字数。省略時 32
前提・後続 API

sticktv_stub.js 提供のヘルパー。ReceiptLine マークアップを変換して printWrite を実行。ネイティブ JsObject には存在しない。printListDevices() で対象を確認してから呼び出すことを推奨

サンプル
const ok = await window.sticktv.printReceipt('', JSON.stringify({}));
if (!ok) console.error('printReceipt 失敗');

1.9. 動画サブフレーム

メイン画面の上に動画専用サブフレームを重ねて表示します。

void openSubFrameVideo(int x, int y, int w, int h, float scale, string url)

動画サブフレームを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
x int 必須 数値。
y int 必須 数値。
w int 必須 数値。
h int 必須 数値。
scale float 必須 数値。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
前提・後続 API

動画サブフレームを開く。url には file:// URI も許容。開いた後に setSubFrameVideo() / setSubFrameVideoVisibility() を使う。終了時は closeSubFrameVideo() を呼び出すこと

サンプル
window.sticktv.openSubFrameVideo(0, 0, 0, 0, 1.0, 'https://example.com/');

void closeSubFrameVideo()

開いた動画サブフレームを閉じる。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

開いた動画サブフレームを閉じる。openSubFrameVideo() の後に対となるように呼び出すこと

サンプル
window.sticktv.closeSubFrameVideo();

void setSubFrameVideo(string url)

再生中サブフレームの URL を変更。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
前提・後続 API

再生中サブフレームの URL を変更。url には file:// URI も許容。openSubFrameVideo() 後に呼び出すこと

サンプル
window.sticktv.setSubFrameVideo('https://example.com/');

void setSubFrameVideoVisibility(bool visible)

表示/非表示を切り替える。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
visible bool 必須 真偽値。
前提・後続 API

表示/非表示を切り替える。openSubFrameVideo() 後に呼び出すこと

サンプル
window.sticktv.setSubFrameVideoVisibility(true);

備考(Windows 版): 終了時やエラー時にはリプレイ用オーバーレイ画像が表示され、動画サブフレームはマウス左クリックで先頭から再生し直せます。

1.10. サブフレームウィンドウ

メイン画面の上に子ウィンドウを重ねて表示します(Windows は子 WebView2、Android は HTML サブウィンドウ)。子側にも window.sticktv が注入されます。

void openSubFrameWindow(int x, int y, int w, int h, float scale, string url)

子ウィンドウを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
x int 必須 数値。
y int 必須 数値。
w int 必須 数値。
h int 必須 数値。
scale float 必須 数値。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
前提・後続 API

子ウィンドウを開く。url には file:// URI も許容。Windows はサイズ・倍率が有効な場合のみ開始。Android は url を指定して即座に読み込む。開いた後に evalSubFrameWindow() / setSubFrameWindowVisibility() を使う。終了時は closeSubFrameWindow() を呼び出すこと

サンプル
window.sticktv.openSubFrameWindow(0, 0, 0, 0, 1.0, 'https://example.com/');

void closeSubFrameWindow()

子ウィンドウを閉じる(動画サブフレームも同時に閉じる)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

子ウィンドウを閉じる(動画サブフレームも同時に閉じる)。openSubFrameWindow() の後に対となるように呼び出すこと

サンプル
window.sticktv.closeSubFrameWindow();

void setSubFrameWindowVisibility(bool visible)

表示/非表示を切り替える。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
visible bool 必須 真偽値。
前提・後続 API

表示/非表示を切り替える。openSubFrameWindow() 後に呼び出すこと

サンプル
window.sticktv.setSubFrameWindowVisibility(true);

void evalSubFrameWindow(string exp)

サブフレーム(本節の子ウィンドウ)内で JavaScript を評価(結果は取得できない)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
exp string 必須 文字列。
前提・後続 API

サブフレーム(本節の子ウィンドウ)内で JavaScript を評価(結果は取得できない)。openSubFrameWindow() で開いた対象に対して使用する。終了時は closeSubFrameWindow() を呼び出すこと

サンプル
window.sticktv.evalSubFrameWindow('');

1.11. 顔検出

カメラ映像から顔を検出し、callback(json) 形式で通知します。JSON 形式: [{"name":"顔検出","value":N}](N は検出顔数)。

sticktv.startFaceDetect('onFaceDetect', false);
function onFaceDetect(result) {
  const faces = JSON.parse(result); // faces[0].value が検出顔数
}

void startFaceDetect(string callback, bool isFlipY)

カメラを開始して検出。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
isFlipY bool 必須 真偽値。
前提・後続 API

カメラを開始して検出。callback は呼び出し前に定義しておくこと。停止時は対となる stopFaceDetect() を呼び出すこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.startFaceDetect('onResult', true);

void stopFaceDetect()

カメラと顔検出を停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

カメラと顔検出を停止。startFaceDetect() の後に対となるように呼び出すこと

サンプル
window.sticktv.stopFaceDetect();

bool enableFaceDetect()

設定(useFaceDetect / FACEDETECT)の値を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

機能が有効になってから startFaceDetect() を使うことを推奨

サンプル
const ok = await window.sticktv.enableFaceDetect();
if (!ok) console.error('enableFaceDetect 失敗');

1.12. 物体検出(Object Detection / ONNX)

ONNX モデルをロードし、カメラ映像または静止画像から物体を検出します。モデル種別(YOLO / Faster R-CNN / 独自モデル)は出力メタデータから自動判定します。labelsJson が空の場合は既定ラベル(YOLO 系は COCO 80 クラス、Faster R-CNN は torchvision COCO 91 クラス)を使用します。

注意: ローカル ONNX 物体検出はモデルサイズ・画像解像度に応じて処理負荷が高くなります。リアルタイム検出が必須でない場合は、画像を AI 画像解析(openaiChatImage / asyncOpenaiChatImage)に送る方が軽量かつ柔軟な判定ができます。

bool startObjectDetect(string callback, string modelPath, string labelsJson, double confidence)

Windows は起動失敗時に false。

  • 対応プラットフォーム: Windows ○ / Android △
  • 戻り値: bool
引数
名前 型 必須 説明
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
modelPath string 必須 ONNX モデルファイルのパス。
labelsJson string 必須 ラベル定義 JSON。空文字で既定ラベルを使用。
confidence double 必須 信頼度しきい値(0.0〜1.0)。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
labelsJson の JSON スキーマ

空文字の場合は既定ラベル(YOLO 系は COCO 80 クラス、Faster R-CNN は torchvision COCO 91 クラス)を使用します。カスタムラベルを指定する場合は以下のいずれかの形式を使用します。

["person", "car", "dog"]

または、クラス ID からラベル名へのマップ:

{"0":"person","1":"car","2":"dog"}
形式 型 説明
配列 string[] クラス ID 0 から順にラベル名を並べた配列
マップ object キーをクラス ID(文字列または数値)、値をラベル名とするオブジェクト
コールバック JSON スキーマ

成功時:

[{ "label": "person", "score": 0.85, "x": 10, "y": 20, "w": 100, "h": 200 }]
フィールド 型 説明
label string 検出ラベル名
score number 信頼度スコア(0.0〜1.0)
x number 検出矩形の左上 X 座標(元画像ピクセル)
y number 検出矩形の左上 Y 座標(元画像ピクセル)
w number 検出矩形の幅(元画像ピクセル)
h number 検出矩形の高さ(元画像ピクセル)

失敗時:

{"error":"エラーメッセージ"}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

Windows は起動失敗時に false。Android は受け付け次第 true を返す。callback は呼び出し前に定義しておくこと。modelPath は有効な ONNX ファイルを指定。停止時は対となる stopObjectDetect() を呼び出すこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.startObjectDetect('onResult', '%APP%/models/yolov8n.onnx', '', 0.5);
if (!ok) console.error('startObjectDetect 失敗');
備考
  • confidence: 信頼度しきい値(0.0〜1.0)。このスコア以上の検出のみ返します。
  • modelPath は ONNX モデルのパス(例: %APP%/models/model.onnx)。
  • startObjectDetect の callback(json) は 3 フレーム連続で同一物体と判定された後、かつ検出ラベル・個数のシグネチャに変化があったとき に呼ばれます(フレーム毎の連続通知ではありません)。
  • 顔検出(startFaceDetect)と同時にはカメラを共有できません(排他運用)。
  • 旧称 yoloDetect* / getYoloDeviceInfo / setYoloGpuDevice は stub 環境でのみ存在する互換エイリアスです。ネイティブ JsObject には存在しません。新規実装では objectDetect* / getObjectDetectDeviceInfo / setObjectDetectGpuDevice を使用してください。

bool stopObjectDetect()

Windows は動作中以降 true。

  • 対応プラットフォーム: Windows ○ / Android △
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Windows は動作中以降 true。**Android は常に true**。startObjectDetect()` の後に対となるように呼び出すこと

サンプル
const ok = await window.sticktv.stopObjectDetect();
if (!ok) console.error('stopObjectDetect 失敗');

string objectDetectImage(string imagePath, string modelPath, string labelsJson, double confidence)

静止画を 1 回検出。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
imagePath string 必須 文字列。
modelPath string 必須 ONNX モデルファイルのパス。
labelsJson string 必須 ラベル定義 JSON。空文字で既定ラベルを使用。
confidence double 必須 信頼度しきい値(0.0〜1.0)。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
labelsJson の JSON スキーマ

空文字の場合は既定ラベル(YOLO 系は COCO 80 クラス、Faster R-CNN は torchvision COCO 91 クラス)を使用します。カスタムラベルを指定する場合は以下のいずれかの形式を使用します。

["person", "car", "dog"]

または、クラス ID からラベル名へのマップ:

{"0":"person","1":"car","2":"dog"}
形式 型 説明
配列 string[] クラス ID 0 から順にラベル名を並べた配列
マップ object キーをクラス ID(文字列または数値)、値をラベル名とするオブジェクト
戻り値 JSON スキーマ

成功時:

[{ "label": "person", "score": 0.85, "x": 10, "y": 20, "w": 100, "h": 200 }]
フィールド 型 説明
label string 検出ラベル名
score number 信頼度スコア(0.0〜1.0)
x number 検出矩形の左上 X 座標(元画像ピクセル)
y number 検出矩形の左上 Y 座標(元画像ピクセル)
w number 検出矩形の幅(元画像ピクセル)
h number 検出矩形の高さ(元画像ピクセル)

失敗時:

{"error":"エラーメッセージ"}
フィールド 型 説明
error string エラーメッセージ
備考

imagePath には file:// URI も許容。結果 JSON を返す。getObjectDetectDeviceInfo() / setObjectDetectGpuDevice() でデバイスを確認・選択してから使うことを推奨

サンプル
const result = await window.sticktv.objectDetectImage('', '%APP%/models/yolov8n.onnx', '', 0.5);
console.log(result);

string objectDetectBase64(string base64, string modelPath, string labelsJson, double confidence)

Base64(data: URL 可)画像を 1 回検出。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
base64 string 必須 文字列。
modelPath string 必須 ONNX モデルファイルのパス。
labelsJson string 必須 ラベル定義 JSON。空文字で既定ラベルを使用。
confidence double 必須 信頼度しきい値(0.0〜1.0)。
戻り値
型 内容
string 文字列。
labelsJson の JSON スキーマ

空文字の場合は既定ラベル(YOLO 系は COCO 80 クラス、Faster R-CNN は torchvision COCO 91 クラス)を使用します。カスタムラベルを指定する場合は以下のいずれかの形式を使用します。

["person", "car", "dog"]

または、クラス ID からラベル名へのマップ:

{"0":"person","1":"car","2":"dog"}
形式 型 説明
配列 string[] クラス ID 0 から順にラベル名を並べた配列
マップ object キーをクラス ID(文字列または数値)、値をラベル名とするオブジェクト
戻り値 JSON スキーマ

成功時:

[{ "label": "person", "score": 0.85, "x": 10, "y": 20, "w": 100, "h": 200 }]
フィールド 型 説明
label string 検出ラベル名
score number 信頼度スコア(0.0〜1.0)
x number 検出矩形の左上 X 座標(元画像ピクセル)
y number 検出矩形の左上 Y 座標(元画像ピクセル)
w number 検出矩形の幅(元画像ピクセル)
h number 検出矩形の高さ(元画像ピクセル)

失敗時:

{"error":"エラーメッセージ"}
フィールド 型 説明
error string エラーメッセージ
備考

ファイル保存なし。getObjectDetectDeviceInfo() / setObjectDetectGpuDevice() でデバイスを確認・選択してから使うことを推奨

サンプル
const result = await window.sticktv.objectDetectBase64('', '%APP%/models/yolov8n.onnx', '', 0.5);
console.log(result);

string getObjectDetectDeviceInfo()

Windows はプロバイダ/GPU 一覧 JSON。

  • 対応プラットフォーム: Windows ○ / Android △
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
{ "provider": "...", "deviceId": 0, "gpu": "GPU名",
  "adapters": [{ "id": 0, "name": "GPU名", "vramMB": 8128 }] }
フィールド 型 説明
provider string 実行プロバイダー名
deviceId number 使用中のデバイス ID
gpu string 使用中の GPU 名
adapters object[] 利用可能なアダプター一覧
adapters[].id number アダプター ID
adapters[].name string アダプター名
adapters[].vramMB number 推定 VRAM(MB)

getObjectDetectDeviceInfo() は Android では CPU 固定の固定 JSON を返します。 |

前提・後続 API

Windows はプロバイダ/GPU 一覧 JSON。Android は CPU 固定の固定 JSON。objectDetectImage() / objectDetectBase64() の前に確認してから、setObjectDetectGpuDevice() を使うことを推奨

サンプル
const result = await window.sticktv.getObjectDetectDeviceInfo();
console.log(result);

bool setObjectDetectGpuDevice(int deviceId)

Android は常に false(CPU 固定)。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: bool
引数
名前 型 必須 説明
deviceId int 必須 数値。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Android は常に false(CPU 固定)。getObjectDetectDeviceInfo() 後に、objectDetectImage() / objectDetectBase64() 前に呼び出すことを推奨

サンプル
const ok = await window.sticktv.setObjectDetectGpuDevice(0);
if (!ok) console.error('setObjectDetectGpuDevice 失敗');

1.13. BLE・SwitchBot

ローカル BLE(GATT)で SwitchBot デバイスを制御します。address は aa:bb:cc:dd:ee:ff 形式の MAC アドレス。

bool bleScanStart(int seconds)

seconds 秒間スキャン。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
seconds int 必須 秒数。0 以下の場合は手動停止まで継続。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

seconds 秒間スキャン。失敗時 false。スキャン後は必ず bleScanResult() を呼び出して結果を取得すること

サンプル
const ok = await window.sticktv.bleScanStart(5);
if (!ok) console.error('bleScanStart 失敗');

bool bleScanStop()

bleScanStart() 中のスキャンを停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

bleScanStart() 中のスキャンを停止。通常はスキャン時間が経過しても結果を取るため bleScanResult() を呼び出すこと

サンプル
const ok = await window.sticktv.bleScanStop();
if (!ok) console.error('bleScanStop 失敗');

string bleScanResult()

[{"address":"...","name":"...","rssi":-52, "deviceType":"..."}, ...]。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
[{"address":"aa:bb:cc:dd:ee:ff","name":"SwitchBot","rssi":-52,"deviceType":"..."}]
フィールド 型 説明
address string デバイスの MAC アドレス
name string デバイス名(取得できない場合は空文字)
rssi number 信号強度(dBm)
deviceType string SwitchBot デバイス種別
前提・後続 API

[{"address":"...","name":"...","rssi":-52, "deviceType":"..."}, ...]。なければ "[]"。bleScanStart() 後に必ず呼び出すこと。取得した address をもとに各種 switchBot* を呼び出す。スキャン完了までに時間がかかることがあるため、bleScanStart(seconds) の完了後、1 秒程度の間隔を空けてから bleScanResult() を呼び出し、空配列の場合は数回に分けて再取得することを推奨する

サンプル
const result = await window.sticktv.bleScanResult();
console.log(result);

bool switchBotOn(string address)

Bot を ON(押し込んだ状態を保持)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Bot を ON(押し込んだ状態を保持)。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotOn('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotOn 失敗');

bool switchBotOff(string address)

Bot を OFF(押し戻しを保持)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Bot を OFF(押し戻しを保持)。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotOff('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotOff 失敗');

bool switchBotPress(string address)

押してすぐ戻す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

押してすぐ戻す。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotPress('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotPress 失敗');

bool switchBotPlugMiniOn(string address)

プラグミニ ON。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

プラグミニ ON。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotPlugMiniOn('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotPlugMiniOn 失敗');

bool switchBotPlugMiniOff(string address)

プラグミニ OFF。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

プラグミニ OFF。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotPlugMiniOff('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotPlugMiniOff 失敗');

bool switchBotPlugMiniToggle(string address)

プラグミニ トグル。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

プラグミニ トグル。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const ok = await window.sticktv.switchBotPlugMiniToggle('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('switchBotPlugMiniToggle 失敗');

bool setSwitchBotRemoteCallback(string callback)

Remote Button 等のイベントを callback(json) で通知。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{"event":"remoteButtonPressed","mac":"AA:BB:CC:DD:EE:FF","button":"upper|lower","source":"sniffer|peripheral","timestamp":"..."}
フィールド 型 説明
event string イベント名
mac string リモートボタンの MAC アドレス
button string 押されたボタン("upper" / "lower")
source string 検出ソース("sniffer" / "peripheral")
timestamp string イベント発生時刻
前提・後続 API

Remote Button 等のイベントを callback(json) で通知。callback は呼び出し前に定義しておくこと。受信を開始する前に呼び出すこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.setSwitchBotRemoteCallback('onResult');
if (!ok) console.error('setSwitchBotRemoteCallback 失敗');
備考
  • Windows は Windows 10 以降 + Bluetooth LE アダプタ、Android は Bluetooth LE 対応端末が必要。Android 12 (API 31) 以降では BLUETOOTH_SCAN / BLUETOOTH_CONNECT のランタイム権限が必要です(起動時に要求)。
  • setSwitchBotRemoteCallback のコールバックは JSON 文字列 1 引数。Remote Button 押下は {"event":"remoteButtonPressed","mac":"...","button":"upper|lower","source":"sniffer|peripheral","timestamp":"..."} 形式で通知されます。
  • switchBotGetDeviceInfo の主なフィールド: Address, Name, Rssi, DeviceType, State, PowerW, Overload。
  • 制御対象のデバイスやファームウェアによっては暗号化が必要です。

string switchBotGetDeviceInfo(string address)

デバイス詳細を JSON で返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
{"Address":"AA:BB:CC:DD:EE:FF","Name":"SwitchBot","Rssi":-52,"DeviceType":"Bot","State":true,"PowerW":0.0,"Overload":false}
フィールド 型 説明
Address string MAC アドレス
Name string デバイス名
Rssi number 信号強度
DeviceType string デバイス種別
State boolean / string デバイス状態
PowerW number 消費電力(W)
Overload boolean 過負荷状態

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

デバイス詳細を JSON で返す。失敗時は {"error":"..."}。呼び出し前に bleScanStart() → bleScanResult() で対象 address を取得しておくこと

サンプル
const result = await window.sticktv.switchBotGetDeviceInfo('AA:BB:CC:DD:EE:FF');
console.log(result);

bool usbSerialScanStart(int seconds)

NUS デバイスを seconds 秒間スキャン。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
seconds int 必須 秒数。0 以下の場合は手動停止まで継続。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

NUS デバイスを seconds 秒間スキャン。失敗時 false。スキャン後は必ず usbSerialScanResult() を呼び出して結果を取得すること

サンプル
const ok = await window.sticktv.usbSerialScanStart(5);
if (!ok) console.error('usbSerialScanStart 失敗');

bool usbSerialScanStop()

usbSerialScanStart() 中のスキャンを停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

usbSerialScanStart() 中のスキャンを停止。通常はスキャン時間が経過しても結果を取るため usbSerialScanResult() を呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialScanStop();
if (!ok) console.error('usbSerialScanStop 失敗');

string usbSerialScanResult()

[{"address":"...","name":"...","rssi":-52}, ...]。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ

usbSerialScanResult() の配列要素:

フィールド 型 説明
address string MAC アドレス
name string デバイス名
rssi number 信号強度
前提・後続 API

[{"address":"...","name":"...","rssi":-52}, ...]。なければ "[]"。usbSerialScanStart() 後に必ず呼び出すこと。取得した address をもとに usbSerialConnect() を行う

サンプル
const result = await window.sticktv.usbSerialScanResult();
console.log(result);

bool usbSerialConnect(string address)

NUS デバイスに接続。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

NUS デバイスに接続。呼び出し前に usbSerialScanStart() → usbSerialScanResult() で対象 address を取得しておくこと。接続後に usbSerialWrite() / usbSerialSetReadCallback() / usbSerialSetEventCallback() を使う

サンプル
const ok = await window.sticktv.usbSerialConnect('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('usbSerialConnect 失敗');
備考
  • NUS Service UUID: 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
  • RX Characteristic UUID(送信先): 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
  • TX Characteristic UUID(受信元): 6E400003-B5A3-F393-E0A9-E50E24DCCA9E
  • usbSerialConnect で接続を確立し、明示的に usbSerialDisconnect を呼ぶまで維持します。

bool usbSerialDisconnect(string address)

接続を切断。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

接続を切断。usbSerialConnect() の後に対となるように呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialDisconnect('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('usbSerialDisconnect 失敗');

bool usbSerialWrite(string address, string base64Data)

Base64 データを RX characteristic へ Write。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
base64Data string 必須 Base64 エンコード済みデータ。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Base64 データを RX characteristic へ Write。usbSerialConnect() 成功後に呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialWrite('AA:BB:CC:DD:EE:FF', btoa('hello'));
if (!ok) console.error('usbSerialWrite 失敗');

bool usbSerialSetReadCallback(string address, string callback)

TX Notify 受信時に callback(json) を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{"address":"...","base64":"..."}
フィールド 型 説明
address string 送信元セントラルの MAC アドレス
base64 string 受信データ(Base64 エンコード)
前提・後続 API

TX Notify 受信時に callback(json) を実行。callback は呼び出し前に定義しておくこと。usbSerialConnect() 後に呼び出すことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.usbSerialSetReadCallback('AA:BB:CC:DD:EE:FF', 'onResult');
if (!ok) console.error('usbSerialSetReadCallback 失敗');

bool usbSerialSetEventCallback(string address, string callback)

接続/切断/エラー時に callback(json) を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{"address":"...","event":"connected|disconnected|error","message":"..."}
フィールド 型 説明
address string 対象デバイスの MAC アドレス
event string "connected" / "disconnected" / "error"
message string イベント詳細メッセージ
前提・後続 API

接続/切断/エラー時に callback(json) を実行。callback は呼び出し前に定義しておくこと。usbSerialConnect() 前または直後に設定しておくことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.usbSerialSetEventCallback('AA:BB:CC:DD:EE:FF', 'onResult');
if (!ok) console.error('usbSerialSetEventCallback 失敗');

bool usbSerialIsConnected(string address)

接続状態を確認。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

接続状態を確認。usbSerialConnect() 後に usbSerialWrite() 等を呼び出す前に確認することが多い

サンプル
const ok = await window.sticktv.usbSerialIsConnected('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('usbSerialIsConnected 失敗');

備考:

  • NUS Service UUID: 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
  • RX Characteristic UUID(送信先): 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
  • TX Characteristic UUID(受信元): 6E400003-B5A3-F393-E0A9-E50E24DCCA9E

bool usbSerialStartPeripheral()

NUS サービスを登録し BLE アドバタイズを開始。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

NUS サービスを登録し BLE アドバタイズを開始。既に開始済みの場合は false。開始後に usbSerialGetPeripheralInfo() / usbSerialSetPeripheralReadCallback() / usbSerialSetPeripheralEventCallback() を使い、通信開始後は usbSerialPeripheralWrite() を使う。停止時は usbSerialStopPeripheral() を呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialStartPeripheral();
if (!ok) console.error('usbSerialStartPeripheral 失敗');
備考
  • 使用する UUID は Central(セントラル)側と同じ NUS UUID です。
  • Android では BLUETOOTH_ADVERTISE 権限(Android 12 以降はランタイム権限)が必要です。
  • Windows では Bluetooth LE アダプタが必要です。アドバタイズ名は PC 名(Environment.MachineName)を使用します。

bool usbSerialStopPeripheral()

ペリフェラル停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

ペリフェラル停止。接続中のセントラルも切断する。usbSerialStartPeripheral() の後に対となるように呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialStopPeripheral();
if (!ok) console.error('usbSerialStopPeripheral 失敗');

string usbSerialGetPeripheralInfo()

{"address":"...","name":"...","advertising":true/false,"serviceUuid":"..."} 形式。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
{"address":"...","name":"...","advertising":true,"serviceUuid":"..."}
フィールド 型 説明
address string 自機 MAC アドレス。取得できない場合は空文字
name string アドバタイズ名
advertising boolean アドバタイズ中の場合 true
serviceUuid string NUS サービス UUID
前提・後続 API

{"address":"...","name":"...","advertising":true/false,"serviceUuid":"..."} 形式。MAC アドレス取得できない場合は "address":""。usbSerialStartPeripheral() 後に呼び出して自機の MAC やアドバタイズ状態を確認すること

サンプル
const result = await window.sticktv.usbSerialGetPeripheralInfo();
console.log(result);

bool usbSerialIsPeripheralConnected(string address)

指定 MAC のセントラルが接続中か確認。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

指定 MAC のセントラルが接続中か確認。空文字なら接続中があれば true。usbSerialStartPeripheral() 後に usbSerialPeripheralWrite() の前に確認することが多い

サンプル
const ok = await window.sticktv.usbSerialIsPeripheralConnected('AA:BB:CC:DD:EE:FF');
if (!ok) console.error('usbSerialIsPeripheralConnected 失敗');

bool usbSerialPeripheralWrite(string address, string base64Data)

指定セントラルへ TX Notify で Base64 データを送信。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
base64Data string 必須 Base64 エンコード済みデータ。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

指定セントラルへ TX Notify で Base64 データを送信。空文字なら最初に見つかった接続先へ送信。usbSerialStartPeripheral() 実行後、セントラルから接続された状態で呼び出すこと

サンプル
const ok = await window.sticktv.usbSerialPeripheralWrite('AA:BB:CC:DD:EE:FF', btoa('hello'));
if (!ok) console.error('usbSerialPeripheralWrite 失敗');

bool usbSerialSetPeripheralReadCallback(string address, string callback)

RX 受信時に callback(json) を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{"address":"...","base64":"..."}
フィールド 型 説明
address string 送信元セントラルの MAC アドレス
base64 string 受信データ(Base64 エンコード)
前提・後続 API

RX 受信時に callback(json) を実行。address は無視され全セントラルで共有。callback は呼び出し前に定義しておくこと。usbSerialStartPeripheral() 後に設定しておくことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.usbSerialSetPeripheralReadCallback('AA:BB:CC:DD:EE:FF', 'onResult');
if (!ok) console.error('usbSerialSetPeripheralReadCallback 失敗');

bool usbSerialSetPeripheralEventCallback(string address, string callback)

接続/切断/エラー時に callback(json) を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
address string 必須 MAC アドレス(aa:bb:cc:dd:ee:ff 形式)またはデバイス識別子。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{"address":"...","event":"connected|disconnected|error","message":"..."}
フィールド 型 説明
address string 対象デバイスの MAC アドレス
event string "connected" / "disconnected" / "error"
message string イベント詳細メッセージ
前提・後続 API

接続/切断/エラー時に callback(json) を実行。address は無視され全セントラルで共有。callback は呼び出し前に定義しておくこと。usbSerialStartPeripheral() 後に設定しておくことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.usbSerialSetPeripheralEventCallback('AA:BB:CC:DD:EE:FF', 'onResult');
if (!ok) console.error('usbSerialSetPeripheralEventCallback 失敗');

1.14. プロセス間コマンド通信(Windows / Android 版)

同一 PC / 同一 LAN 内の複数 sticktv.exe プロセス間、同一 LAN 内の複数 Android 端末間、または BLE UART(NUS)接続先間で、一対一コマンド通信を行います。
メッセージは「4 バイト長さプレフィックス(little-endian)+ UTF-8 JSON 本文」でやり取りされます。
BLE UART を使う場合は、事前に usbSerialConnect(mac) で接続しておき、target に "ble:<MAC>" を指定します。
また、ローカル端末を NUS ペリフェラルとして動作させ(usbSerialStartPeripheral())、リモートのセントラルから接続してもらうことでも通信できます。この場合も target に "ble:<MAC>" を指定すると、ネイティブ側でセントラル側接続とペリフェラル側接続のどちらかを自動的に選択して送信します。

void startCommandServer(int port, string callback)

指定ポートで待ち受け開始。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
port int 必須 数値。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
コールバック JSON スキーマ
{ "id": "...", "cmd": "foo", "payload": "...", "from": "192.168.1.10:52345" }
フィールド 型 説明
id string 送信側のコマンド ID
cmd string コマンド名
payload any ペイロード
from string 送信元の "ip:port" または "ble:<MAC>"
前提・後続 API

指定ポートで待ち受け開始。受信時 callback(commandJson) を実行。callback は呼び出し前に定義しておくこと。受信・応答を行うには先に呼び出すこと。停止時は stopCommandServer() を使うこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.startCommandServer(0, 'onResult');

void stopCommandServer()

待ち受けを停止し、接続を解放。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

待ち受けを停止し、接続を解放。startCommandServer() の後に対となるように呼び出すこと

サンプル
window.sticktv.stopCommandServer();

string sendCommand(string target, string commandJson, int timeoutMs)

target は "ip:port" または "ble:<MAC>" 形式。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
target string 必須 接続先。"ip:port" または "ble:<MAC>" 形式。
commandJson string 必須 コマンド JSON 文字列。
timeoutMs int 必須 タイムアウト時間(ミリ秒)。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
commandJson の JSON スキーマ
{ "id": "...", "cmd": "foo", "payload": "..." }
フィールド 型 必須 説明
id string 必須 コマンドを一意に識別する ID。応答紐付けに使用
cmd string 必須 コマンド名
payload any 任意 コマンドに付随するデータ。文字列、オブジェクト、JSON 文字列等
responseJson の JSON スキーマ
{ "id": "...", "replyTo": "受信コマンドのid", "payload": "..." }
フィールド 型 必須 説明
id string 必須 この応答を一意に識別する ID
replyTo string 必須 受信コマンドの id
payload any 任意 応答データ
前提・後続 API

target は "ip:port" または "ble:<MAC>" 形式。応答 JSON を返す。Windows 版は Task<string> なので JS 側で await が必要。BLE 経由で送信する場合は事前に usbSerialConnect(mac) または usbSerialStartPeripheral() で接続しておくこと

サンプル
const result = await window.sticktv.sendCommand('192.168.1.5:9001', JSON.stringify({ cmd: 'ping' }), 5000);
console.log(result);

void asyncSendCommand(string target, string commandJson, string callback, int timeoutMs)

非同期版。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
target string 必須 接続先。"ip:port" または "ble:<MAC>" 形式。
commandJson string 必須 コマンド JSON 文字列。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
timeoutMs int 必須 タイムアウト時間(ミリ秒)。
commandJson の JSON スキーマ
{ "id": "...", "cmd": "foo", "payload": "..." }
フィールド 型 必須 説明
id string 必須 コマンドを一意に識別する ID。応答紐付けに使用
cmd string 必須 コマンド名
payload any 任意 コマンドに付随するデータ。文字列、オブジェクト、JSON 文字列等
コールバック JSON スキーマ
{ "id": "...", "replyTo": "受信コマンドのid", "payload": "..." }
フィールド 型 必須 説明
id string 必須 この応答を一意に識別する ID
replyTo string 必須 受信コマンドの id
payload any 任意 応答データ
前提・後続 API

非同期版。完了時 callback(responseJson) を実行。callback は呼び出し前に定義しておくこと。BLE 経由の場合は事前に usbSerialConnect(mac) / usbSerialStartPeripheral() で接続しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncSendCommand('192.168.1.5:9001', JSON.stringify({ cmd: 'ping' }), 'onResult', 5000);

void sendCommandReply(string replyTo, string responseJson)

受信コマンドの id を replyTo に指定して応答を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
replyTo string 必須 受信コマンドの id。
responseJson string 必須 文字列。
responseJson の JSON スキーマ
{ "id": "...", "replyTo": "受信コマンドのid", "payload": "..." }
フィールド 型 必須 説明
id string 必須 この応答を一意に識別する ID
replyTo string 必須 受信コマンドの id
payload any 任意 応答データ
前提・後続 API

受信コマンドの id を replyTo に指定して応答を返す。startCommandServer() でコマンドを受信した後に呼び出すこと

サンプル
window.sticktv.sendCommandReply(cmd.id, '');

1.15. 音量・画面・システム

void setVolume(int volume)

0〜100。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
volume int 必須 数値。
前提・後続 API

0〜100。必要に応じて getVolume() / getDefaultVolume() 後に呼び出すこと

サンプル
window.sticktv.setVolume(0);

int getVolume()

現在の音量を取得(取得失敗時 -1)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: int
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
前提・後続 API

現在の音量を取得(取得失敗時 -1)。取得後に setVolume() を調整することが多い

サンプル
const result = await window.sticktv.getVolume();
console.log(result);

int getDefaultVolume()

既定音量を取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: int
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
前提・後続 API

既定音量を取得。取得後に setVolume() を調整することがある

サンプル
const result = await window.sticktv.getDefaultVolume();
console.log(result);

int getCallVolume()

Windows は常に 0(未対応)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: int
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
備考

Windows は常に 0(未対応)

サンプル
const result = await window.sticktv.getCallVolume();
console.log(result);

int getTalkVolume()

Windows は常に 0(未対応)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: int
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
備考

Windows は常に 0(未対応)

サンプル
const result = await window.sticktv.getTalkVolume();
console.log(result);

void setSpeakerPhone(bool mode)

Windows 未対応。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
mode bool 必須 真偽値。
備考

Android では通話音声のスピーカー出力を切り替える

サンプル
window.sticktv.setSpeakerPhone(true);

void setKeepScreen(bool on)

画面の常時点灯を有効/無効にする。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
on bool 必須 真偽値。
備考

解除時は false を指定するか、setKeepScreenBacklight(false) を使う

サンプル
window.sticktv.setKeepScreen(true);

void setKeepScreenBacklight(bool onOff)

setKeepScreen と同等。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
onOff bool 必須 真偽値。
備考

常時点灯を有効/無効にする

サンプル
window.sticktv.setKeepScreenBacklight(true);

void setBacklight(float value)

Windows は未実装(何もしない)。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
value float 必須 数値。
前提・後続 API

Windows は未実装(何もしない)。Android は輝度 0.0〜1.0 を設定。設定前に getBacklight() / getScreenBrightness() で現在値を確認することがある

サンプル
window.sticktv.setBacklight(1.0);

float getBacklight()

Windows は未対応で常に 0(ドメイン拒否時も 0)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: float
戻り値
型 内容
float 浮動小数点数。Windows 未対応 API では 0。
前提・後続 API

Windows は未対応で常に 0(ドメイン拒否時も 0)。Android は現在の輝度(0.0〜1.0)。取得後に setBacklight() を使うことがある

サンプル
const value = await window.sticktv.getBacklight();

float getScreenBrightness()

Windows は未対応で常に 0(ドメイン拒否時も 0)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: float
戻り値
型 内容
float 浮動小数点数。Windows 未対応 API では 0。
前提・後続 API

Windows は未対応で常に 0(ドメイン拒否時も 0)。Android は現在の輝度。取得後に setScreenBrightness() を使うことがある

サンプル
const value = await window.sticktv.getScreenBrightness();

void setScreenBrightness(float val)

Windows 未実装。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
val float 必須 数値。
前提・後続 API

Windows 未実装。Android は輝度を設定。getScreenBrightness() 後に呼び出すことがある

サンプル
window.sticktv.setScreenBrightness(1.0);

void showLoading()

ローディング表示を開始。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

ローディング表示を開始。長時間処理の前に呼び出し、完了後に hideLoading() を呼び出すこと

サンプル
window.sticktv.showLoading();

void hideLoading()

ローディング非表示。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

ローディング非表示。showLoading() の後に対となるように呼び出すこと

サンプル
window.sticktv.hideLoading();

void setZoomEnable(bool enable)

false でズーム解除(Windows は ZoomFactor を 1.0 にリセット)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
enable bool 必須 真偽値。
前提・後続 API

false でズーム解除(Windows は ZoomFactor を 1.0 にリセット)。通常はページ読み込み後に呼び出す

サンプル
window.sticktv.setZoomEnable(true);

void showTaskbar(bool show)

Windows 専用。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: void
引数
名前 型 必須 説明
show bool 必須 真偽値。
備考

タスクバー表示/非表示を切り替える

サンプル
window.sticktv.showTaskbar(true);

void showTopmost(bool topmost)

Windows 専用。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: void
引数
名前 型 必須 説明
topmost bool 必須 真偽値。
備考

最前面表示の切り替え

サンプル
window.sticktv.showTopmost(true);

void startLockTask()

キオスク(ロックタスク)開始。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
前提・後続 API

キオスク(ロックタスク)開始。Windows 未対応。終了時は stopLockTask() を呼び出すこと

サンプル
window.sticktv.startLockTask();

void stopLockTask()

キオスク解除。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
前提・後続 API

キオスク解除。Windows 未対応。startLockTask() の後に対となるように呼び出すこと

サンプル
window.sticktv.stopLockTask();

1.16. IME・キーボード・プロセス(Windows 専用)

関数名 シグネチャ 戻り値 備考
sendKey void sendKey(int code) void 仮想キーコードを送信。アクティブな入力先がある状態で呼び出すこと
showIme void showIme(bool mode) void Windows タッチキーボードの表示/非表示を切り替える。表示後は showIme(false) で閉じることが多い
setKeyboardLayout void setKeyboardLayout(string locale) void カルチャ名(例: "ja-JP")から KLID を取得してレイアウト変更。切り替え後にキー入力する場合は、入力先がアクティブになってから呼び出すこと
killProcess void killProcess(string processName) void 指定プロセス名のプロセスを終了。影響範囲を確認してから呼び出すこと

これらは Windows 版のみの API です(Android 版には存在しません)。


1.17. TTS / STT

void startTTS(string talktext)

Windows は System.Speech(日本語音声を優先選択)、Android は TTS エンジンで発話を開始。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
talktext string 必須 文字列。
前提・後続 API

Windows は System.Speech(日本語音声を優先選択)、Android は TTS エンジンで発話を開始。連続して発話する場合は stopTTS() 後に次の startTTS() を呼び出すことを推奨

サンプル
window.sticktv.startTTS('');

void stopTTS()

発話を停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

発話を停止。startTTS() の後に対となるように呼び出すこと

サンプル
window.sticktv.stopTTS();

void startSTT(string sttCallback, int interval)

音声認識を開始。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
sttCallback string 必須 文字列。
interval int 必須 数値。
前提・後続 API

音声認識を開始。認識結果は sttCallback('音声認識:...')、エラーは sttCallback('音声認識エラー:...') で通知。sttCallback は呼び出し前に定義しておくこと。Windows は System.Speech.Recognition を使用。停止時は stopSTT() を呼び出すこと

サンプル
window.sticktv.startSTT('', 0);

void stopSTT()

音声認識を停止。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

音声認識を停止。startSTT() の後に対となるように呼び出すこと

サンプル
window.sticktv.stopSTT();

備考:

  • Windows 版は System.Speech.Recognition.SpeechRecognitionEngine を使用し、マイク入力を既定音声入力デバイスから取得します。日本語認識を行うには、Windows に日本語音声認識言語パックがインストールされている必要があります。
  • Windows 版は DictationGrammar を使用した自由文認識です。特定コマンドに絞りたい場合は、JavaScript 側で認識結果をフィルタリングしてください。

1.18. デバイス情報

string getIMEI()

Windows は MAC アドレスを返す(IMEI の代替)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
備考

Android は端末識別子、IMEI が取得できない場合は MAC アドレス等の代替値。端末識別が必要な場合は getMacAddress() / getDeviceId() と併用して確認することがある

サンプル
const result = await window.sticktv.getIMEI();
console.log(result);

string getMacAddress()

無線 LAN 優先、次に有線 LAN。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
備考

端末識別に使用されることが多い

サンプル
const result = await window.sticktv.getMacAddress();
console.log(result);

string getUniqid()

Windows は MAC アドレス。

  • 対応プラットフォーム: Windows △ / Android △
  • 戻り値: string
戻り値
型 内容
string 文字列。
備考

Android は端末固有のデバイス ID。端末識別に使用されることが多い

サンプル
const result = await window.sticktv.getUniqid();
console.log(result);

string getDeviceId()

端末識別子を返す(Windows は MAC アドレス)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
備考

端末を一意に特定する際に getMacAddress() や getIMEI() と併用されることがある

サンプル
const result = await window.sticktv.getDeviceId();
console.log(result);

string getWebViewSize()

WebView の実サイズを "幅x高さ" で返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
前提・後続 API

WebView の実サイズを "幅x高さ" で返す。UI レイアウト調整の前に確認することがある

サンプル
const result = await window.sticktv.getWebViewSize();
console.log(result);

string getWebviewName()

固定値 "WebView2"。

  • 対応プラットフォーム: Windows ○ / Android ×
  • 戻り値: string
戻り値
型 内容
string 文字列。
前提・後続 API

固定値 "WebView2"。Windows 専用(Android に存在しない)。プラットフォーム判定の前に呼び出すことがある

サンプル
const result = await window.sticktv.getWebviewName();
console.log(result);

string getFcmToken()

Windows は空文字(未対応)。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
前提・後続 API

Windows は空文字(未対応)。Android は FCM トークンを返す。プッシュ通知連携の前に取得しておくこと

サンプル
const result = await window.sticktv.getFcmToken();
console.log(result);

bool useBackKey()

Windows は常に false。

  • 対応プラットフォーム: Windows △ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
備考

Android のハードウェアバックキー制御に関連する設定値を返す

サンプル
const ok = await window.sticktv.useBackKey();
if (!ok) console.error('useBackKey 失敗');

1.19. その他・互換 API

void showToast(string mes)

Windows はコンソールに出力、Android はトースト表示。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
mes string 必須 文字列。
備考

ユーザーへの軽微な通知用途

サンプル
window.sticktv.showToast('');

void callbackTest(string mes, string callback)

両プラットフォームとも callback を実行せず、ログやコンソールに mes / callback を出力するデバッグ用 API。

  • 対応プラットフォーム: Windows ○ / Android △
  • 戻り値: void
引数
名前 型 必須 説明
mes string 必須 文字列。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
備考

本番ロジックでは使用しないこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.callbackTest('', 'onResult');

int execPackage(string packageName, string className, string action, string uri, string extra, bool newTask)

Windows は uri を Process.Start で開く(0)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: int
引数
名前 型 必須 説明
packageName string 必須 文字列。
className string 必須 文字列。
action string 必須 文字列。
uri string 必須 文字列。
extra string 必須 文字列。
newTask bool 必須 真偽値。
戻り値
型 内容
int 整数値。失敗時 -1(但し printPngUrl 等の例外あり)。
備考

Android はインテントでアプリを起動。newTask で新しいタスク起動を制御。起動したアプリの結果を後続処理で使う場合は、別途そのアプリからのコールバックやファイル連携を検討すること

サンプル
const result = await window.sticktv.execPackage('', '', '', '', '', true);
console.log(result);

string execBin(string cmd)

コマンドを実行して標準出力または標準エラーを返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
cmd string 必須 文字列。
戻り値
型 内容
string 文字列。
備考

Windows はタイムアウト 30 秒。実行結果を後続で処理する場合は戻り値を確認すること

サンプル
const result = await window.sticktv.execBin('');
console.log(result);

備考:

  • Windows 版は cmd を先頭トークン(実行ファイル)と残り(引数)に分割して直接起動します。cmd.exe /c "dir /b" のように明示的にシェルを指定することも可能です。
  • タイムアウトは 30 秒です。長時間コマンドは execPackage で別プロセスを起動するか、別途検討してください。
  • 任意コマンド実行 API は強力なため、許可ドメインの管理と実行環境のアクセス制御に注意してください。
  • 命名の注意: 歴史的経緯で evalSubFrameWindow(サブフレーム / オーバーレイ)と evalSubWindow(独立ウィンドウ)という似た名前の API が存在します。対象を開いた API と対になる eval API を使用してください。

void setLanguage(string lang)

Windows のみ存在し未実装(何もしない)。

  • 対応プラットフォーム: Windows × / Android ×
  • 戻り値: void
引数
名前 型 必須 説明
lang string 必須 文字列。
備考

後続の多言語処理には影響しない

サンプル
window.sticktv.setLanguage('');

void optionsMenu()

Windows のみ存在し未実装。

  • 対応プラットフォーム: Windows × / Android ×
  • 戻り値: void
備考

呼び出しても何も起きない

サンプル
window.sticktv.optionsMenu();

void hideNavigationBar()

Windows のみ存在し未実装。

  • 対応プラットフォーム: Windows × / Android ×
  • 戻り値: void
備考

呼び出しても何も起きない

サンプル
window.sticktv.hideNavigationBar();

void setHandSignCallback(string callback)

Android のみ。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
前提・後続 API

Android のみ。ハンドサイン検出結果を callback(json) で通知。callback は呼び出し前に定義しておくこと。openHandSignWindow() 前に設定しておくことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.setHandSignCallback('onResult');

void openHandsignWindow(object activity)

Android のみ。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
activity object 必須 オブジェクト。JS からは文字列/オブジェクトを渡す。
備考

ハンドサイン用サブウィンドウを表示。ただし JavaScript 側から MainActivity インスタンスを渡せないため、実質 openHandSignWindow() を使ってください

サンプル
window.sticktv.openHandsignWindow('');

void closeHandsignWindow()

Android のみ。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
備考

openHandsignWindow() / openHandSignWindow() で開いたハンドサイン用ウィンドウを閉じる

サンプル
window.sticktv.closeHandsignWindow();

void openHandSignWindow()

Android のみ。

  • 対応プラットフォーム: Windows × / Android ○
  • 戻り値: void
前提・後続 API

Android のみ。ハンドサイン用サブウィンドウを表示(MainActivity 自身を渡して開く実用版)。必要に応じて事前に setHandSignCallback() を呼び出しておくこと。終了時は closeHandsignWindow() を呼び出すこと

サンプル
window.sticktv.openHandSignWindow();

void openSubWindow(int x, int y, int w, int h, float scale, string url)

独立した新規ウィンドウを開く。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
x int 必須 数値。
y int 必須 数値。
w int 必須 数値。
h int 必須 数値。
scale float 必須 数値。
url string 必須 file:// URI、%APP% / %HOME% プレースホルダ、または http URL。
前提・後続 API

独立した新規ウィンドウを開く。url には file:// URI も許容。Windows はタイトルバー・ステータスバー付きの SubWindowForm、Android はオーバーレイ HTML ウィンドウ。scale は将来の ZoomFactor 用に予約され、現状は未使用。openSubFrameWindow() とは別の API なので混同しないこと。開いた後に evalSubWindow() を使う。終了時は closeSubWindow() を呼び出すこと

サンプル
window.sticktv.openSubWindow(0, 0, 0, 0, 1.0, 'https://example.com/');

void closeSubWindow()

openSubWindow() で開いたウィンドウを閉じる。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

openSubWindow() で開いたウィンドウを閉じる。openSubWindow() の後に対となるように呼び出すこと

サンプル
window.sticktv.closeSubWindow();

void evalSubWindow(string exp)

openSubWindow() で開いた独立サブウィンドウ内で JavaScript を評価(結果は取得できない)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
exp string 必須 文字列。
前提・後続 API

openSubWindow() で開いた独立サブウィンドウ内で JavaScript を評価(結果は取得できない)。evalSubFrameWindow() とは対象が異なるので混同しないこと。openSubWindow() 後に呼び出すこと

サンプル
window.sticktv.evalSubWindow('');

1.20. 更新・ウォッチドッグ・アプリ管理

void updateCheck()

Windows はダウンロード・解凍後に終了(確認ダイアログあり)。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

Windows はダウンロード・解凍後に終了(確認ダイアログあり)。Android はサーバーから最新版を確認してダウンロード。実行前に getAppVersion() 等で現在のバージョンを確認することがある

サンプル
window.sticktv.updateCheck();

void initUpdate()

更新用フォルダ構成の初期化。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

更新用フォルダ構成の初期化。updateCheck() 等の前に呼び出すことがある

サンプル
window.sticktv.initUpdate();

string getAppVersion()

バージョン文字列を返す。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
戻り値
型 内容
string 文字列。
前提・後続 API

バージョン文字列を返す。Windows は "<バージョン>,---" 形式。更新確認や互換性判定の前に呼び出すことが多い

サンプル
const result = await window.sticktv.getAppVersion();
console.log(result);

void startWatchDog(int minutes)

minutes 分ごとにアプリを再起動。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
minutes int 必須 数値。
備考

0 以下で停止。継続的な監視を行う場合は、kickWatchDog() との組み合わせで運用する

サンプル
window.sticktv.startWatchDog(0);

void kickWatchDog()

ウォッチドッグカウントをリセット。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

ウォッチドッグカウントをリセット。startWatchDog() 実行中に定期的に呼び出すことで再起動を抑制する

サンプル
window.sticktv.kickWatchDog();

void restartApplication()

アプリを再起動。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
前提・後続 API

アプリを再起動。データ保存などの後始末を終えてから呼び出すこと

サンプル
window.sticktv.restartApplication();

1.21. デモ版ライセンス

string requestDemoExtension(string message)

デモライセンスの延長をサーバーに要求。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
message string 必須 文字列。
戻り値
型 内容
string 文字列。
前提・後続 API

デモライセンスの延長をサーバーに要求。延長リクエスト前に getAppVersion() などでアプリ情報を確認することがある

サンプル
const result = await window.sticktv.requestDemoExtension('');
console.log(result);
  • message が空・未指定の場合は OS の入力ダイアログを表示し、氏名・メールアドレスを必ず含めた上で理由を入力します。Android 版は最大 5 分間ネイティブで待ち合わせます。
  • 戻り値パターン:
    • 成功時: サーバーからの応答文字列
    • キャンセル時: "error: cancelled"
    • タイムアウト時(Android): "error: timeout"
    • 空入力時(Android): "error: message is empty"
    • 中断時(Android): "error: interrupted"
    • Activity 非利用時(Android): "error: activity not available"
    • ドメイン拒否時: "error: invalid domain"

1.22. AI / OpenAI 互換 API(Ollama 等)

OpenAI 互換 API をネイティブ側から呼び出します。baseUrl を変更すれば任意の OpenAI 互換サーバーを利用できます。空文字の場合は製品既定のエンドポイント(Windows/Android とも http://localhost:11434)を使用します。タイムアウトは 120 秒。

注意: openaiModels / openaiChat / openaiChatImage / webSearch の同期版は内部で Task.Run(...).Result で待ち合わせるため、Windows 版では UI スレッドを長時間ブロックします。長時間・確実な応答が必要な場合は asyncOpenaiChat / asyncOpenaiChatImage / asyncWebSearch を使用してください。

string openaiModels(string baseUrl, string apiKey)

GET {baseUrl}/v1/models。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
baseUrl string 必須 文字列。
apiKey string 必須 文字列。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ
{"data":[{"id":"qwen3:8b","object":"model"}]}
フィールド 型 説明
data object[] モデル一覧
data[].id string モデル ID
data[].object string "model" 固定
前提・後続 API

GET {baseUrl}/v1/models。モデル一覧 JSON。openaiChat() / openaiChatImage() の前に利用可能モデルを確認するために使うことが多い

サンプル
const result = await window.sticktv.openaiModels('', '');
console.log(result);

string openaiChat(string baseUrl, string apiKey, string model, string messagesJson, string searchApiKey)

POST {baseUrl}/v1/chat/completions。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
baseUrl string 必須 文字列。
apiKey string 必須 文字列。
model string 必須 文字列。
messagesJson string 必須 文字列。
searchApiKey string 必須 文字列。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
messagesJson の JSON スキーマ

OpenAI Chat Completions API の messages 配列と同形式です。

[
  {"role":"system","content":"..."},
  {"role":"user","content":"こんにちは"},
  {"role":"assistant","content":"..."}
]
フィールド 型 必須 説明
role string 必須 "system" / "user" / "assistant" / "tool"
content string / array 必須 テキストメッセージ。vision モデル使用時は画像 URL オブジェクトを含む配列も可
content[].type string 必須(配列要素) "text" または "image_url"
content[].text string 必須(type:text 時) テキスト内容
content[].image_url object 必須(type:image_url 時) 画像 URL オブジェクト
content[].image_url.url string 必須 data:image/png;base64,... 形式のデータ URL
tool_calls object[] 任意 モデルが要求した tool call 一覧(通常は応答側に含まれる)
戻り値 JSON スキーマ

成功時:

{"choices":[{"message":{"role":"assistant","content":"..."}}]}
フィールド 型 説明
choices object[] 生成結果の配列
choices[].message object 応答メッセージ
choices[].message.role string "assistant"
choices[].message.content string 応答テキスト
choices[].message.tool_calls object[] モデルが要求した tool call(通常は最終応答では省略される)

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

POST {baseUrl}/v1/chat/completions。tools 形式で web_search を登録し、モデルが必要と判断した場合のみ検索し最終回答を返す。使用する model は事前に openaiModels() で確認しておくことを推奨

サンプル
const result = await window.sticktv.openaiChat('', '', '', '', '');
console.log(result);

void asyncOpenaiChat(string baseUrl, string apiKey, string model, string messagesJson, string callback, string searchApiKey)

非同期実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
baseUrl string 必須 文字列。
apiKey string 必須 文字列。
model string 必須 文字列。
messagesJson string 必須 文字列。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
searchApiKey string 必須 文字列。
messagesJson の JSON スキーマ

OpenAI Chat Completions API の messages 配列と同形式です。

[
  {"role":"system","content":"..."},
  {"role":"user","content":"こんにちは"},
  {"role":"assistant","content":"..."}
]
フィールド 型 必須 説明
role string 必須 "system" / "user" / "assistant" / "tool"
content string / array 必須 テキストメッセージ。vision モデル使用時は画像 URL オブジェクトを含む配列も可
content[].type string 必須(配列要素) "text" または "image_url"
content[].text string 必須(type:text 時) テキスト内容
content[].image_url object 必須(type:image_url 時) 画像 URL オブジェクト
content[].image_url.url string 必須 data:image/png;base64,... 形式のデータ URL
tool_calls object[] 任意 モデルが要求した tool call 一覧(通常は応答側に含まれる)
コールバック JSON スキーマ

成功時:

{"choices":[{"message":{"role":"assistant","content":"..."}}]}
フィールド 型 説明
choices object[] 生成結果の配列
choices[].message object 応答メッセージ
choices[].message.role string "assistant"
choices[].message.content string 応答テキスト
choices[].message.tool_calls object[] モデルが要求した tool call(通常は最終応答では省略される)

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

非同期実行。完了時に callback(responseJson) を実行。callback は呼び出し前に定義しておくこと。長時間応答の前に openaiModels() でモデル確認を推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncOpenaiChat('', '', '', '', 'onResult', '');

string openaiChatImage(string baseUrl, string apiKey, string model, string searchApiKey, string imageDataUrl, string query)

画像付きメッセージで web_search tool を登録。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
baseUrl string 必須 文字列。
apiKey string 必須 文字列。
model string 必須 文字列。
searchApiKey string 必須 文字列。
imageDataUrl string 必須 文字列。
query string 必須 文字列。
戻り値
型 内容
string 文字列。
戻り値 JSON スキーマ

成功時:

{"choices":[{"message":{"role":"assistant","content":"..."}}]}
フィールド 型 説明
choices object[] 生成結果の配列
choices[].message object 応答メッセージ
choices[].message.role string "assistant"
choices[].message.content string 応答テキスト
choices[].message.tool_calls object[] モデルが要求した tool call(通常は最終応答では省略される)

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

画像付きメッセージで web_search tool を登録。モデルが必要と判断した場合のみ検索し、画像 + 検索結果で最終回答を返す。imageDataUrl は事前に getDataBase64() / shrinkPhoto() / scanTwainImage() などで生成しておくこと

サンプル
const result = await window.sticktv.openaiChatImage('', '', '', '', '', '');
console.log(result);

void asyncOpenaiChatImage(string baseUrl, string apiKey, string model, string searchApiKey, string imageDataUrl, string query, string callback)

非同期実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
baseUrl string 必須 文字列。
apiKey string 必須 文字列。
model string 必須 文字列。
searchApiKey string 必須 文字列。
imageDataUrl string 必須 文字列。
query string 必須 文字列。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
コールバック JSON スキーマ

成功時:

{"choices":[{"message":{"role":"assistant","content":"..."}}]}
フィールド 型 説明
choices object[] 生成結果の配列
choices[].message object 応答メッセージ
choices[].message.role string "assistant"
choices[].message.content string 応答テキスト
choices[].message.tool_calls object[] モデルが要求した tool call(通常は最終応答では省略される)

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

非同期実行。完了時に callback(responseJson) を実行。callback は呼び出し前に定義しておくこと。imageDataUrl は事前に getDataBase64() / shrinkPhoto() / scanTwainImage() などで生成しておくこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncOpenaiChatImage('', '', '', '', '', '', 'onResult');
  • apiKey: Authorization: Bearer ヘッダに設定される。Ollama ではダミー値(例: "ollama")で構いません。
  • searchApiKey: Ollama Web Search API の API キー。openaiChat 系は常に Web 検索を内蔵しており、空文字を渡すと検索を実行せず通常回答を返します。
  • 画像の base64 は大きいため、ネイティブ側ログには先頭 200 文字のみ出力されます。
  • モデル未ダウンロード時は先に ollama pull で取得してください。

1.23. Web 検索

ネイティブ側から Web 検索 API を呼び出します。Windows/Android ともに Ollama Web Search API(https://ollama.com/api/web_search)を使用します。apiKey は Ollama で発行した API キー。検索結果は固定で最大 5 件です。

string webSearch(string apiKey, string query)

[{"title":"...","url":"...","snippet":"...","displayUrl":"..."}, ...]。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: string
引数
名前 型 必須 説明
apiKey string 必須 文字列。
query string 必須 文字列。
戻り値
型 内容
string JSON 文字列。JSON.parse() して利用。
戻り値 JSON スキーマ

成功時:

[{"title":"...","url":"...","snippet":"...","displayUrl":"..."}]
フィールド 型 説明
title string ページタイトル
url string 実際の URL
snippet string 検索結果のスニペット
displayUrl string 表示用 URL

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
備考

失敗時は {"error":"..."}。検索結果は最大 5 件。取得した URL を getUrl() / getUrlBase64() で読み込むことも多い

サンプル
const result = await window.sticktv.webSearch('', '');
console.log(result);
備考
  • callback: 結果を受け取る JavaScript 関数名。レスポンス文字列は JS 文字列リテラルとして安全に埋め込めるようエスケープされて渡されます。
  • 注意: API キーはクライアント側に露出するため、社内限定・PoC・一時的な用途向けです。公開キオスク等では自社プロキシ方式への移行を推奨します。

void asyncWebSearch(string apiKey, string query, string callback)

完了時に callback(responseJson) を実行。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
apiKey string 必須 文字列。
query string 必須 文字列。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
コールバック JSON スキーマ

成功時:

[{"title":"...","url":"...","snippet":"...","displayUrl":"..."}]
フィールド 型 説明
title string ページタイトル
url string 実際の URL
snippet string 検索結果のスニペット
displayUrl string 表示用 URL

失敗時:

{"error":"..."}
フィールド 型 説明
error string エラーメッセージ
前提・後続 API

完了時に callback(responseJson) を実行。callback は呼び出し前に定義しておくこと。結果を受け取った後に getUrl() / getUrlBase64() でページ内容を取得することが多い

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.asyncWebSearch('', '', 'onResult');

1.24. MQTT クライアント

MQTT ブローカーとの pub/sub 通信を行います。Windows 版は MQTTnet、Android 版は HiveMQ MQTT Client を使用しています。

bool mqttConnect(string brokerUrl, string clientId, string optionsJson)

brokerUrl は mqtt:// / mqtts:// / tcp:// / ssl:// をサポート。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
brokerUrl string 必須 文字列。
clientId string 必須 文字列。
optionsJson string 必須 JSON 文字列で指定するオプション。詳細は同カード内の「optionsJson の JSON スキーマ」を参照。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
optionsJson の JSON スキーマ
フィールド 型 必須 説明
username string 任意 ユーザー名
password string 任意 パスワード
cleanSession boolean 任意 クリーンセッション開始
keepAlive number 任意 keepAlive 間隔(秒)
sessionExpiry number 任意 接続断開後のセッション有効期間(秒)。Windows 版のみ有効
tls object 任意 TLS 設定
tls.enabled boolean 任意 TLS を有効化。mqtts:// / ssl:// では暗黙的に有効
tls.allowUntrusted boolean 任意 信頼できない証明書を許可
tls.ignoreChainErrors boolean 任意 証明書チェーンエラーを無視
tls.ignoreRevocationErrors boolean 任意 失効確認エラーを無視
will object 任意 ラストウィル設定
will.topic string 必須 ウィルメッセージのトピック
will.payload string 必須 ウィルメッセージのペイロード
will.qos number 任意 QoS レベル
will.retain boolean 任意 Retain フラグ
  • Windows 版の TLS オプションでは caFile / clientCertFile / clientKeyFile は現在未対応。 |
前提・後続 API

brokerUrl は mqtt:// / mqtts:// / tcp:// / ssl:// をサポート。clientId が空の場合は自動生成。Windows 版は Task<bool> なので JS 側では await が必要。mqttPublish() / mqttSubscribe() / mqttIsConnected() の前に必ず呼び出すこと。必要に応じて事前に mqttSetEventCallback() を設定しておくこと

サンプル
const ok = await window.sticktv.mqttConnect('', '', JSON.stringify({}));
if (!ok) console.error('mqttConnect 失敗');

bool mqttDisconnect()

Windows 版は Task<bool> なので JS 側では await が必要。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Windows 版は Task<bool> なので JS 側では await が必要。mqttConnect() の後に対となるように呼び出すこと

サンプル
const ok = await window.sticktv.mqttDisconnect();
if (!ok) console.error('mqttDisconnect 失敗');

bool mqttSubscribe(string topic, int qos, string callback)

callback(json) で受信メッセージを通知。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
topic string 必須 MQTT トピック名。
qos int 必須 QoS レベル(0 / 1 / 2)。
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
コールバック JSON スキーマ
{ "topic": "sticktv/test", "payload": "{\"hello\":\"sticktv\"}", "qos": 0, "retain": false }
フィールド 型 説明
topic string 受信トピック
payload string 生のペイロード文字列。JSON として解析したい場合は JS 側で JSON.parse() する
qos number 受信 QoS レベル
retain boolean Retain フラグ
前提・後続 API

callback(json) で受信メッセージを通知。Windows 版は Task<bool> なので JS 側では await が必要。callback は呼び出し前に定義しておくこと。mqttConnect() 成功後に呼び出すこと

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

const ok = await window.sticktv.mqttSubscribe('sticktv/test', 0, 'onResult');
if (!ok) console.error('mqttSubscribe 失敗');

bool mqttUnsubscribe(string topic)

Windows 版は Task<bool> なので JS 側では await が必要。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
topic string 必須 MQTT トピック名。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

Windows 版は Task<bool> なので JS 側では await が必要。mqttSubscribe() の後に対となるように呼び出すこと

サンプル
const ok = await window.sticktv.mqttUnsubscribe('sticktv/test');
if (!ok) console.error('mqttUnsubscribe 失敗');

bool mqttPublish(string topic, string payloadJson, int qos, bool retain)

payloadJson は JSON 文字列をそのまま送信。 Windows 版は Task<T> のため JS 側で await が必要。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
引数
名前 型 必須 説明
topic string 必須 MQTT トピック名。
payloadJson string 必須 送信する JSON 文字列。
qos int 必須 QoS レベル(0 / 1 / 2)。
retain bool 必須 真偽値。
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

payloadJson は JSON 文字列をそのまま送信。JSON として解析できない場合は生文字列を送信。Windows 版は Task<bool> なので JS 側では await が必要。mqttConnect() 成功後に呼び出すこと

サンプル
const ok = await window.sticktv.mqttPublish('sticktv/test', JSON.stringify({ hello: 'sticktv' }), 0, true);
if (!ok) console.error('mqttPublish 失敗');

bool mqttIsConnected()

接続状態を取得。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: bool
戻り値
型 内容
bool 成功時 true、失敗・ドメイン拒否時 false。
前提・後続 API

接続状態を取得。mqttConnect() 後に mqttPublish() / mqttSubscribe() を呼び出す前に確認することが多い

サンプル
const ok = await window.sticktv.mqttIsConnected();
if (!ok) console.error('mqttIsConnected 失敗');

void mqttSetEventCallback(string callback)

接続/切断/エラー時に callback(json) を通知。

  • 対応プラットフォーム: Windows ○ / Android ○
  • 戻り値: void
引数
名前 型 必須 説明
callback string 必須 JavaScript 側で事前に定義したコールバック関数名を文字列で指定。
コールバック JSON スキーマ
{ "event": "connected|disconnected|error", "message": "..." }
フィールド 型 説明
event string "connected" / "disconnected" / "error"
message string イベント詳細メッセージ
前提・後続 API

接続/切断/エラー時に callback(json) を通知。Windows は void、Android は bool だが両方とも呼び出し可能。callback は呼び出し前に定義しておくこと。mqttConnect() 前または直後に設定しておくことを推奨

サンプル
function onResult(json) {
  const data = JSON.parse(json);
  console.log(data);
}

window.sticktv.mqttSetEventCallback('onResult');

ソース: ./sticktv.md