C'est comment je l'ai résolu. D'abord définir les chemins d'accès aux fichiers, qui sont différents pour Android et iOS
var file_path;
function setFilePath() {
if(detectAndroid()) {
file_path = "file:///android_asset/www/res/db/";
//4 Android
} else {
file_path = "res//db//";
//4 apache//iOS/desktop
}
}
Puis-je charger mes fichiers JSON, qui sont préemballés avec l'application, dans le navigateur local de stockage. Comme ceci:
localStorage["my_json_data"] = loadJSON(file_path + "my_json_data.json");
function loadJSON(url) {
return jQuery.ajax({
url : url,
async : false,
dataType : 'json'
}).responseText;
}
Si je veux mettre à jour mes données. Je reçois les nouvelles Données JSON à partir du serveur et le pousser dans le local de stockage. Si le serveur est sur un autre domaine, ce qui est le cas la plupart du temps, vous devez faire un JSONP appel (vérifiez jQuery docs sur JSONP).
J'ai fait ça un peu comme ceci:
$.getJSON(my_host + 'json.php?function=' + my_json_function + '&callback=?', function (json_data) {
//write to local storage
localStorage["my_json_data"] = JSON.stringify(json_data);
});