在电话间隙中使用本地存储
Posted
技术标签:
【中文标题】在电话间隙中使用本地存储【英文标题】:Using Local storage in phone gap 【发布时间】:2013-04-12 10:19:33 【问题描述】:我想为我的网络项目创建一个移动应用程序。我找到了phonegap。它说使用 html、CSS 和 javascript 轻松创建应用程序。我以前没有使用电话间隙创建移动应用程序。共有三个存储选项 memory-store.js (MemoryStore)、ls-store.js (LocalStorageStore) 和 websql-store.js (WebSqlStore)。我只想保存一个令牌来识别用户。哪种存储最适合。有没有更好的方法来构建移动应用程序。
感谢您的帮助。
【问题讨论】:
【参考方案1】:使用本地存储可能最容易满足您的需求。
从根本上说,PhoneGap 应用是原生应用(因此它们可以通过应用商店分发),它们只运行一个或多个网页。然后,PhoneGap API 将 JavaScript 挂钩提供到相机等设备功能中。还有更多内容,但现在这就是背景。
因此,由于该应用本质上是一个网页(HTML5、CSS、JS),因此您可以使用 LocalStorage(HTML5 的一部分)。
本地存储使用示例:
设定值:
localStorage.myname = "Greg";
获取值:
localStorage.myname; // returns "Greg"
更多关于本地存储的信息:http://diveintohtml5.info/storage.html
对于 Windows Phone 7:http://docs.phonegap.com/en/3.4.0/cordova_storage_storage.md.html#Storage
语法如下
localStorage.setItem("name", "Alen");
localStorage.getItem("name"); //will return Alen
【讨论】:
如果应用程序关闭并重新打开,则执行本地存储存储值。感谢您的帮助。 是的。即使手机关机。请记住,LocalStorage 只有 5mb 的限制。更多关于底部的链接...... 哦,很棒的解决方案老兄... Cheerzzz 我有一个问题。本地存储是否适用于 Windows Phone 设备? @RenatoRamosNascimento 我编辑了 Gregs 答案以反映您的需求!【参考方案2】:关于使用 localStorage 的补充一点是,它仅受 HTML5 兼容设备支持。对于较早的设备(对于新设备也是一个不错的选择),选项是使用 phonegap 的 SQLite 实现。 See here...
【讨论】:
Phonegap 的 SQLite 实现是否适用于 Cordova?【参考方案3】:我建议您也研究一下 Lawnchair 持久存储解决方案。它采用移动优先的方法构建。我在一些项目中使用过它;效果很好。
示例代码
var store = new lawnchair(name:'testing', function(store)
// create an object
var me = key:'brian';
// save it
store.save(me);
// access it later... yes even after a page refresh!
store.get('brian', function(me)
console.log(me);
);
);
您可以在http://brian.io/lawnchair/阅读更多信息
【讨论】:
【参考方案4】:朋友,我也尝试过使用带有 phonegap 的 cookie,但没有成功。解决方案是使用 localStorage。
关键快速示例:
var keyName = window.localStorage.key(0);
设置项目快速示例:
window.localStorage.setItem("key", "value");
获取项目快速示例
var value = window.localStorage.getItem("key");
// value is now equal to "value"
删除项目快速示例:
window.localStorage.removeItem("key");
清除快速示例:
window.localStorage.clear();
如果您将 javascript 用于移动设备和网络,则可以使用此代码来检测该环境:
var wl = window.location.href;
var mob = (wl.indexOf("android")>0);
参考资料: http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html#localStorage http://cordova.apache.org/docs/en/6.x/cordova/storage/storage.html#page-toc-source
注意:在 ios 上使用匿名导航可能会使本地存储无法正常工作。一个对我来说很好的简单测试:
$(document).ready(function ()
try
localStorage.setItem('test', '1');
catch (Err)
if (Err.message.indexOf('QuotaExceededError') > -1)
// Tell the user they are in anonymous mode
// Sugest it to go to https://support.apple.com/pt-br/HT203036 to get help to disable it
);
【讨论】:
以上是关于在电话间隙中使用本地存储的主要内容,如果未能解决你的问题,请参考以下文章