【问题标题】:jQuery Mobile Phonegap Cordova Events not working and FiringjQuery Mobile Phonegap Cordova 事件不工作和触发
【发布时间】:2014-08-30 05:09:16
【问题描述】:

我们必须使用 HTML5 构建一个移动应用程序,以便在 Android 和 IOS 上运行。 我们首先使用 jQuery Mobile 框架来管理页面和操作。一切都很好。问题是当我们使用 Apache Cordova API 从设备获取一些信息(如 uuid)并管理退出应用程序按钮时,没有任何效果!... 我们使用从Google Link 获取的 Cordova 脚本。 在构建应用程序 pn phonegap 之前,我们将以下行放入 config.xml 文件中:

<plugin name="Notification" value="org.apache.cordova.notification.Notification" />

我们使用来自 Cordova Phonegap Site 的官方文档,如下:

 <!DOCTYPE html>
<html>
  <head>
    <title>Notification Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for Cordova to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova is ready
    //
    function onDeviceReady() {
        // Empty
    }

    // alert dialog dismissed
    function alertDismissed() {
        // do something
    }

    // Show a custom alertDismissed
    //
    function showAlert() {
        navigator.notification.alert(
            'You are the winner!',  // message
            alertDismissed,         // callback
            'Game Over',            // title
            'Done'                  // buttonName
        );
    }

    </script>
  </head>
  <body>
    <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
  </body>
</html>

但是在将源代码构建到 Android 平台后没有发生任何事情。没有触发任何事件或任何与 phonegap 相关的事情!

我们已经搜索了许多结果和建议来解决这个问题,但没有任何结果!

应用程序已在 Android 4.3 上测试。

感谢您的建议。

【问题讨论】:

    标签: android html jquery-mobile cordova


    【解决方案1】:

    您使用的是非常旧版本的 cordova (2.5),最新版本是 3.5,这里是文档和下载的正确位置:http://cordova.apache.org/

    尝试在 onDeviceReady 函数中放置一个 console.log 或 alert 以确保 cordova 已正确初始化,但我认为您的问题在于 cordova 项目设置。尝试使用 3.5 和命令行创建一个新项目,如文档中所述。

    【讨论】:

    • 在哪里可以从下面的链接cordova.apache.org/#download找到最新的cordova脚本?
    • 请阅读文档,每个平台都有分步设置指南。如果您打算使用 pg build(我从未使用过),您还可以查看 phonegap 构建文档。
    • 为什么这个代码即使在旧版本中也不能工作!
    • 我明白了,谢谢,但真正需要的是新的 JS 文件来测试结果!
    • 不,因为,正如我所说,您的代码在我看来还可以,我猜您的项目配置是问题所在,但这只是我的猜测。
    【解决方案2】:

    尝试从命令行添加设备插件:

    phonegap plugin add org.apache.cordova.device
    

    这在过去对我有用。对于 Windows、Linux 和 Mac,该命令是相同的。然后在你的 deviceready 事件中加入一些东西以确保它被触发。

    【讨论】:

    • 嗯,谢谢您的回复。现在调用 onDeviceReady 函数。问题出在设备信息上。我们在桌面浏览器和安卓手机上测试,所有参数(设备名、uuid、cordova)都返回null!
    • 我们只是在config.xml文件中添加了,虽然这个动作,没有参数可以显示!
    • 我们需要 device.uuid 值,并且在使用 cordova 2.9.1 时返回 nul!
    【解决方案3】:

    使用cordova 2.9.0 和upper cans 可以解决这个问题。

    需要将这些行放入 config.xml 文件中:

    <feature name="Device">
    <param name="android-package" value="org.apache.cordova.device.Device" />  // android
    <param name="ios-package" value="CDVDevice" /> IOS
    </feature>
    <!-- -->
    <plugins>
    <plugin name="App" value="org.apache.cordova.App" />
    <plugin name="Device" value="org.apache.cordova.Device" />
    <plugin name="Device" value="CDVDevice" />
    </plugins>
    <!-- phonegap plugins -->
    <gap:plugin name="org.apache.cordova.console" />
    <gap:plugin name="org.apache.cordova.device" version="0.2.8" />
    <gap:plugin name="org.apache.cordova.dialogs" />
    

    【讨论】:

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