Languages

Menu
Sites
Language
window.localStorage data is cleared after app re-installation via Tizen Studio

I'm trying to use Javascript localStorage to store and retrieve data, but everytime I reinstall my application via Tizen Studio, that data is cleared.

Should I be using a different method of data storage that will persist even after re-installation?

Thanks.

Responses

3 Replies
Jeremy Daley

With some digging, it seems

tizen.filesystem

read()/write() storage is persistent after reinstallation

Jeremy Daley

Here's a way with ES6 syntax to mimic `localStorage`

`tizen-storage.js`

/**
* Default storage directory on tizen file system
*/
const storageDir = 'documents'
 
/**
* Uses the `tizen.filesystem` API to store and get data
*/
export default {
set: (key, value, dir = storageDir) => {
if (!window.tizen || !window.tizen.filesystem){
localStorage.setItem(key, value)
return
}
const handle = window.tizen.filesystem.openFile(`${dir}/${key}`, 'w')
handle.writeString(value)
handle.close()
},
 
get: (key, dir = storageDir) => {
if (!window.tizen || !window.tizen.filesystem){
return localStorage.getItem(key)
}
let handle
let content
try {
handle = window.tizen.filesystem.openFile(`${dir}/${key}`, 'r')
} catch (err) {
return null
}
content = handle.readString()
handle.close()
return content
}
}

`consumer.js`

import tizenStorage from '.tizen-storage'
 
export const updateHasPlayed = (url, currentTime) => dispatch => {
const key = 'hasPlayed'
const currentHasPlayed = tizenStorage.get(key)
const json = currentHasPlayed === null
? {}
: JSON.parse(currentHasPlayed)
 
json[url] = currentTime
tizenStorage.set(key, JSON.stringify(json))
}
Marco Buettner

Try to enable Rapid Development System, then it should only replace the changed file instead of complete uninstall/reinstall.