【问题标题】:Issue on page loading with pagecreate event with phonegap使用 phonegap 的 pagecreate 事件加载页面时出现问题
【发布时间】:2012-12-19 06:42:37
【问题描述】:

在我的应用程序“index.page”中,我在标签内加载 phonegap 和 jqm 脚本。我的索引页面中有一个链接,如下所示

<div>
    <a href="page2.html" data-ajax=false;>Click here</a>
</div>

如果我在我的索引页面中单击上面的 url,它会重定向到该页面中的“page2.html”,我正在完全加载从上到下的 html。在“page2.html”head 标记内有相同的脚本 phonegap 和 JQM js 文件。但是当页面在 pagecreate 事件中加载时它不起作用。找到我正在拥有的以下 pagecreate 事件。

$("#page2").live('pagecreate', function(event){
     console.log("Inside page create", device.platform);
});

从 pagecreate 加载页面时出现以下错误。

device is not defined
console.log("Inside page create", device.platform);

如何在 pagecreate 中完全加载页面并希望在此 pagecreate 中调用一些函数。

【问题讨论】:

    标签: jquery html cordova jquery-mobile


    【解决方案1】:

    如果可能,不要将 jQuery 移动事件与 phonegap 混合。

    改用这个:

    document.addEventListener("deviceready", onDeviceReady, false);
    
    // PhoneGap is ready
    function onDeviceReady() {
        alert(device.version);
    }
    

    【讨论】:

    • 每次我不能正确调用 deviceready,它在 deviceready 内部工作,但在 pagecreate 内部不工作。不支持 pagecreate 事件?
    • PhoneGap 由两个代码库组成:native 和 JavaScript。在加载本机代码时,会显示自定义加载图像。但是,只有在 DOM 加载后才会加载 JavaScript。这意味着您的 Web 应用程序可能会在加载之前调用 PhoneGap/jQM JavaScript 函数。因此,您将需要创建某种解决方法。因此,设备对象只有在触发 deviceready 事件时才可用。您可以在 pagecreate 事件上显示 ajax 加载器并等待设备就绪。当 deviceready 被触发时,移除 ajyx loader 并显示 nedded 设备信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2012-09-02
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多