1.先新建乙個nfc.js檔案。
let context = plus.android.importclass("android.content.context");let nfcmanager = plus.android.importclass("android.nfc.nfcmanager");
let nfcadapter = plus.android.importclass("android.nfc.nfcadapter");
let settings= plus.android.importclass("android.provider.settings");
let intent = plus.android.importclass("android.content.intent");
let parcelable = plus.android.importclass("android.os.parcelable");
let intentfilter = plus.android.importclass('android.content.intentfilter');
let ndefrecord = plus.android.importclass("android.nfc.ndefrecord");
let ndefmessage = plus.android.importclass("android.nfc.ndefmessage");
let tag = plus.android.importclass("android.nfc.tag");
let mifareclassic = plus.android.importclass("android.nfc.tech.mifareclassic");
let invoke = plus.android.invoke;
const nfc=,
//初始化
into:function ()
var intent = new intent(this.data.main, this.data.main.getclass());
intent.addflags(intent.flag_activity_single_top);
var pendingintent = pendingintent.getactivity(this.data.main, 0, intent, 0);
var ndef = new intentfilter("android.nfc.action.tech_discovered");
ndef.adddatatype("*/*");
var intentfiltersarray = [ndef];
nfcadapter.enableforegrounddispatch(this.data.main, pendingintent, intentfiltersarray, this.data.techlistsarray);
this.data.nfcadapter=nfcadapter;
},//取消操作
nfcclose:function(),
//輪詢獲取當前nfc裝置觸發的事件
handle_nfc_data:function()
else}},
//讀取裝置
_readdata:function(intent), 2000);
var tag = intent.getparcelableextra(nfcadapter.extra_tag);
var techlist = tag.gettechlist();
var bismfc=false;
for(var i=0;i
<
techlist
.length;i++)
}if(!bismfc));
return;
}var mfc=mifareclassic.get(tag);
if(!mfc));
return;
}mfc.settimeout(3000);
if(!mfc.isconnected())catch(e));
return;}}
tryelse
if(!auth));
return;
}var arr=
for (var i = 0; i
<
4; i++)
mfc.close();
uni.showmodal();
this.data.callback(arr)
}catch(e)finally
},//寫入資料
_writedata:function(intent));
var tag
= intent.getparcelableextra(nfcadapter.extra_tag);
var techlist
= tag.gettechlist();
var bismfc
=false;
for(var i
=0;iif(techlist[i].indexof('mifareclassic')
>
=0) }
if(!bismfc));
return;
}var mfc=mifareclassic.get(tag);
if(!mfc));
return;
}mfc.settimeout(3000);
if(!mfc.isconnected())catch(e));
return;}}
tryelse
if(!auth));
return;
}//開始寫入指定塊
"11111111100000000000000000000000"));
mfc.writeblock(this.data.block,this.hexstringtobytearray(this.data.writedata));
//驗證是否寫入成功
var data = mfc.readblock(this.data.block);
console.log(this.bytearraytohexstring(data))
console.log(this.data.writedata)
if(this.bytearraytohexstring(data)===this.data.writedata)
);this.data.callback()
}else)
}}catch(e)finally
},bytearraytohexstring:function(inarray)
return out;
},hexstringtobytearray:function(instr)
return hexa;
},//對外開放的讀取事件
readdata:function());
this.data.status="read"
var that=this
this.data.intervalid = setinterval(function(),1000);
},//對外開放的寫入事件
//傳乙個需要寫入的資料
writedata:function(value));
if(value.length>32));}
for(var i=value.length;i
<
32;i++)
console.log(value);
console.log(value.length)
this.data.writedata
=value
var that
=this
this.data.intervalid
= setinterval(function(),1000);
}}export default nfc
2.呼叫demo
讀卡操作輸入需要寫入的內容
寫卡操作}
NFC標籤的讀寫
最近公司要求完成乙個利用nfc標籤管理倉庫庫存的乙個iot專案,要求手機從伺服器獲取的資料後,將資料寫入nfc標籤中。其實主要的核心還是利用讀卡器模式對nfc標籤的讀寫。具體如下 1.許可權的配置 android name android.permission.nfc android name an...
uni app 呼叫訊飛語音。
訊飛語音輸入介面 voice options.engine ifly options.punctuation false 是否需要標點符號 options.timeout 10 1000 plus.speech.startrecognize options,function s 普通瀏覽器裡沒有pl...
uni app使用DES加密解密資料
1 開啟hbuilderx的檢視 顯示終端 cd 切換到你專案的根目錄 執行命令 npm install crypto js 安裝成功後你的專案根目錄會生成node modules資料夾,裡面有crypto js就說明成功了 2 接下來在哪使用就直接import cryptojs from node...