/**
* NFC On Browserのメインクラス
*/
class NFCReader {
/**
* @param {String} serveraddress NFCプロキシのサーバーアドレス
* @example const ncob = new NFCReader("http://localhost:9235")
*/
constructor(serveraddress) {
this.serveraddress = serveraddress;
}
/**
* スキャンを実行するメソッド
* @return {string} NFCタグに書き込まれたレコードを返す
* @example ncob.scan();
*/
async scan() {
return await this.scanaccesst();
}
/**
* NFCタグへの書き込みを行うメソッド
* @param {String} content 書き込む内容
* @return {string} NFCタグに書き込まれたレコードを返す
* @example ncob.write("Hello World!");
*/
async write(content) {
return await this.writerequest(content);
}
/**
* サーバーが動いているかの確認を行うメソッド
* @return {boolean} サーバーに到達可能か、True/Falseを返す
* @example ncob.accessible();
*/
accessible() {
return new Promise((resolve, reject) => {
fetch(this.serveraddress, {
method: "GET",
mode: "cors",
})
.then((response) => {
if (response.ok) {
console.log("Response OK");
resolve(true);
}
resolve(false);
})
.catch((error) => {
// ネットワークエラーの場合はここに到達する
console.error(error);
});
});
}
async scanaccesst() {
const accessaddress = this.serveraddress + "scan";
return await (await fetch(accessaddress)).json();
}
async writerequest(content) {
const writeaddress = this.serveraddress + "write";
return await (
await fetch(writeaddress, {
method: "POST",
mode: "cors",
body: content,
})
).json();
}
}