2

我正在尝试加载 xml 数据并且一切正常,但我想在设备恢复时重新加载 xml 数据。

这是我的代码,我不知道在哪里粘贴函数以加载简历。感谢您的建议;-)

var TITLE = "Example";
var XMLsoubor = "example.xml";
var entries = [];
var selectedEntry = "";


//listen for detail links
$(".contentLink").live("click", function () {
    selectedEntry = $(this).data("entryid");
});

//Listen for main page


$("#mainPage").live("pageinit", function () {
    //Set the title
    $("h1", this).text(TITLE);

    $.ajax({
        url: XMLsoubor,
        success: function (res, code) {
            entries = [];
            var xml = $(res);
            var items = xml.find("event");
            $.each(items, function (i, v) {
                entry = {
                    title: $(v).find("id").text(),
                    link: $(v).find("begin").text(),
                    description: $.trim($(v).find("description").text())
                };
                entries.push(entry);
            });
            //store entries
            localStorage["entries"] = JSON.stringify(entries);
            renderEntries(entries);
        },
        error: function (jqXHR, status, error) {
            //try to use cache
            if (localStorage["entries"]) {
                $("#status").html("Error");
                entries = JSON.parse(localStorage["entries"])
                renderEntries(entries);
            } else {
                $("#status").html("Error");
            }
        }
    });

});



$("#mainPage").live("pagebeforeshow", function (event, data) {
    if (data.prevPage.length) {
        $("h1", data.prevPage).text("");
        $("#entryText", data.prevPage).html("");
    };
});

//Listen for the content page to load
$("#contentPage").live("pageshow", function (prepage) {
    //Set the title
    $("h1", this).text(entries[selectedEntry].title);
    var contentHTML = "";
    contentHTML += entries[selectedEntry].description;
    contentHTML += '<p/><a href="' + entries[selectedEntry].link + '"></a><br><br><br>text';
    $("#entryText", this).html(contentHTML);
});


function renderEntries(entries) {
    var s = '';
    $.each(entries, function (i, v) {
        s += '<li><a href="#contentPage" class="contentLink" data-transition="slide" data-entryid="' + i + '">' + v.title + '<br>text</a></li>';
    });
    $("#linksList").html(s);
    $("#linksList").listview("refresh");
}
4

1 回答 1

4

将事件监听器用于“恢复”。它应该在 deviceready 触发后立即进行。

http://docs.phonegap.com/en/2.9.0/cordova_events_events.md.html#resume

脚本中的第一件事应该是 deviceready 事件,因为在触发 deviceready 事件之前,很多 Cordova 的东西还没有准备好,所以你需要监听 deviceready,如下所示:

document.addEventListener("deviceready", onDeviceReady, false);

然后在 onDeviceReady 函数中添加其他侦听器并从那里开始应用程序的其余部分:

function onDeviceReady() {
    //The device is ready when this function is called
    document.addEventListener("resume", appReturnedFromBackground, false);
}

function appReturnedFromBackground() {
    //This function is called when the app has returned from the background
    alert("The app has returned from the background");
}
于 2013-08-12T23:01:59.723 回答