【问题标题】:Why is cordova.exec() running in my Android PhoneGap (1.7) app before "deviceready"?为什么 cordova.exec() 在“deviceready”之前在我的 Android PhoneGap (1.7) 应用程序中运行?
【发布时间】:2012-05-11 20:07:45
【问题描述】:

我正在尝试“PhoneGap”(1.7.0) 一个 jQuery Mobile 应用程序 (1.1.0) 我必须创建一个 Android 应用程序。但是,我不断收到以下警报消息。

ERROR: Attempting to call cordova.exec() before 'deviceready'. Ignoring.

出现好像这可能发生在 $.ajax 调用期间,但很难确定。

我没有在我的应用程序中调用 Cordova 函数 - 它是纯 JQM。

任何想法是什么问题。或者,如果做不到这一点,有人知道为什么在 $.ajax 请求期间可能会调用 cordova.exec() 吗?

我正在 Android 4.0.3 下的虚拟设备/模拟器中运行该应用程序。

【问题讨论】:

  • 您是否在 HTML 中加载了 cordova-ver.js?
  • 你的意思是'',还是有一个名为“cordova-ver.js”的文件,在某处?如果是前者,那么是的 - 它已加载到我的 HTML 中。
  • 你能分享一个演示问题的源sn-p吗?
  • 是的,您正在正确加载脚本。正如保罗所说,展示一些代码。

标签: android jquery-mobile cordova


【解决方案1】:

我花了几个小时后遇到了类似的问题,我意识到 cordova-1.7.0.js(或你的情况下的 phonegap-1.7.0.js)是 iOS 的,因为我最初为我替换的 iOS 创建项目这个文件与相关的 android JS 文件一起开始工作。

cordova-1.7.0.js 对于不同的移动平台是不同的,针对特定平台使用正确的 JS 文件。

【讨论】:

  • 噢!这就是问题所在。当我从 iPhone 测试转到 Android 时忘记更新它。
  • 解决我的问题!谢谢!
  • 优格什!!!我的救星!! :D 非常感谢你!如果你在纽约,我会给你买啤酒!
【解决方案2】:

在我的情况下,这是因为

$(document).ready()...

函数没有正确触发,所以我只是将其更改为 javascript 版本

<body onload="init();">

在html中 并定义了一个函数

function init(){ 
     document.addEventListener("deviceready", onDeviceReady, true);
}

在我的 javascript 文件中,它解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多