3

我已经开发了一个带有 phonegap 的 Android 应用程序,我的应用程序需要在切换按钮上进行切换,然后用户可以关闭应用程序并在后台服务中运行它。我的问题是当我关闭应用程序并再次返回应用程序时,它会回到初始状态并关闭切换按钮。所以,我的问题是我们如何在 android 和 phonegap 上保存/恢复应用程序状态?

我已经在嵌入式 PhoneGap 应用程序中阅读了此 Save & restore WebView,但我仍然不了解restoreFromPreferences()saveToPreferences(out)有人可以帮忙吗?

*抱歉英语不好

4

3 回答 3

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>
于 2013-07-31T08:07:22.403 回答
1

你可以将任何数据存储在你的 JS 中的本地存储中。

例如

保存价值var username

localStorage.setItem("username",edited_name);

检索

var getUser=localStorage.getItem("username");

希望对你有帮助!!

于 2013-07-31T05:21:55.577 回答
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

于 2021-06-23T19:39:32.277 回答