我正在使用ionic / cordova构建应用程序。我需要能够扫描条形码,然后将时间戳(实现此目的)添加到设备本机存储。
我尝试将扫描数据添加到本机存储,但发现它只是覆盖了现有的扫描数据。然后我使用数组尝试了这个,但是再次注意到如果我更改页面,当页面再次加载时,数组为空,这样它就会用新的空数组替换现有数据。
我“想”我需要做的是 - 创建一个空数组 获取现有数据本机存储并添加到此阵列 将新扫描数据添加到此阵列 然后将数组添加回本机存储。
我目前所坚持的是将数据从本机存储中取出并添加到阵列中。 我的代码是 -
export class ScanSession {
scans: any [];
constructor(private barcodeScanner: BarcodeScanner, private
nativeStorage: NativeStorage) {
this.scans = [];
}
ScanCode() : any{
this.barcodeScanner.scan().then((barcodeData) => {
this.nativeStorage.getItem('scans')
.then(
data => console.log(data),
error => console.error(error)
);
this.scans.push(data);
let inputString = "testData";
//let ts = new Date();
if( barcodeData.text == inputString){
//this.scans.push(ts);
this.nativeStorage.setItem('scans', (JSON.stringify(this.scans)))
//(JSON.stringify(this.scans)
.then(
() => console.log('Stored item!'),
error => console.error('Error storing item', error)
);
//console.log("Success");
//console.log(this.scans);
//this.nativeStorage.getItem('scans')
//.then(
// data => console.log(data),
// error => console.error(error)
// );
} else {
console.log("Doesnt Match");
}
}, (err) => {
});
};
}
答案 0 :(得分:0)
你缺少的JSON.parse作为你使用的JSON.stringify,如果你理解我的意思,你需要解组。
更改
this.nativeStorage.getItem('scans')
要
JSON.parse(this.nativeStorage.getItem('scans'))