我开发了一个带有phonegap的Android应用程序,我的应用程序需要在切换按钮上切换,然后用户可以关闭应用程序并在后台服务中运行它。我的问题是当我关闭应用程序并再次返回应用程序时,它会切换到关闭切换按钮的初始状态。 所以,我的问题是如何在android和phonegap上保存/重新调整app状态?
我已阅读此Save & restoring WebView in an embedded PhoneGap app,但我仍然不了解 restoreFromPreferences()和 saveToPreferences(out)任何人都可以提供帮助吗?
*抱歉英文不好
答案 0 :(得分:5)
正如@geet所说,localStorage是您存储数据并在以后检索数据所需的。 根据Phonegap网站,localstorage提供对W3C存储界面的访问。你可以在这里阅读:http://dev.w3.org/html5/webstorage/#the-localstorage-attribute。
要保存切换按钮位置,我就是这样做的:
<script>
function onDeviceReady() {
// Set togglebutton to false default
var togglebutton = window.localStorage.getItem("togglebutton");
if (togglebutton==null) window.localStorage.setItem("togglebutton", 'false');
// Set default state
if (window.localStorage.getItem("togglebutton")=='true') {
$('#onoffswitch').attr("checked", "checked");
}
// Switch onoffswitch event
$('#onoffswitch').on('change', function(){
if ($(this).prop('checked')) {
window.localStorage.setItem("togglebutton", 'true');
} else {
window.localStorage.setItem("togglebutton", 'false');
}
});
}
</script>
在HTML中确保默认情况下不会检查您的切换元素(形成一个复选框):
<input type="checkbox" name="onoffswitch" id="onoffswitch">
关于暂停和恢复,您可以在调用这些事件时执行操作。要做到这一点:
<script>
document.addEventListener("resume", yourCallbackFunction, false);
document.addEventListener("pause", yourCallbackFunction, false);
</script>
答案 1 :(得分:0)
你可以在JS中的localstorage中存储任何数据。
e.g
保存var username
的价值。
localStorage.setItem("username",edited_name);
要追溯
var getUser=localStorage.getItem("username");
希望它对你有帮助!!
答案 2 :(得分:0)
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("pause", onPause, false);
function onDeviceReady() {
var pageNow = document.getElementsByTagName(body);
var currentPage = JSON.stringify(pageNow);
localStorage.setItem("uiState", currentPage);
}
function onPause() {
//retrieve info here
var pageShow = document.getElementsByTagName(body);
let techStack = localStorage.getItem("uiState");
// JSON.parse(techStack); //unnecessary because the parser will detect HTML
pageShow.innerHTML(techStack);
}
}
您可以在任何元素中获取 UI 的当前状态,只需使用不同的选择器即可。
稍后将更新此答案以合并 SQL