gpt4 book ai didi

cordova - 如何使用 Ripple Emulator for Windows 测试 PhoneGap 应用程序?

转载 作者:行者123 更新时间:2023-12-03 11:39:46 25 4
gpt4 key购买 nike

可以用Ripple模拟器在Windows下测试PhoneGap应用吗?

要么我在做一些非常糟糕的事情,要么 Ripple 在这样的环境中根本无法工作。

我已经从 Chrome 商店安装了适用于 Chrome 的 Ripple Emulator 扩展程序。我将 Chrome 导航到我的移动应用程序(通过 XAMPP 在本地提供)。我单击了 Chrome 多功能栏旁边的 Ripple 图标,然后单击了 Enable在打开的窗口中。我选择了合适的平台(Cordova 2.0)。

我的应用程序以类似移动设备的外观重新加载,模拟移动设备。 Ripple 无法从 config.xml 读取我的配置文件,但这是一个众所周知的错误(报告了 herehere )。我希望,这不是阻止我使用 Ripple 的问题吗?

我选择了我的设备 (Samsung Nexus) 并开始测试我的移动设备。即使是第一次调用 PhoneGap API 也失败了。我试过指南针,但我得到的只是Cannot call method 'watchHeading' of undefined .

基本的 PhoneGap 对象如何未定义?我错过了什么?我可以使用 Ripple Emulator 在 Chrome 中的 Windows 下测试 PhoneGap 应用程序吗?或者我错过了关于 Ripple 是什么的整个想法?

我试图帮助自己编写 Ripple 文档,但“Enable the Ripple emulator”一章完全是垃圾。我什至没有 Start Ripple Services 的迹象波纹图标中的选项(仅 EnableDisable )以及当我单击 Enable 时没有许可协议(protocol)的迹象,我可以查看并接受。我感觉这个文档谈论的东西与我使用的完全不同。

如何在 Chrome 中使用 Ripple 来测试 PhoneGap 应用程序?我错过了什么?

最佳答案

tl;dr: 与 PGB 文档中所说的相反,您 必须 在应用的根目录中保留 cordova.js 文件的副本,并且该文件必须取自确切的版本PhoneGap 2.0,因为最新版本的 Ripple Emulator 不适用于其他版本或没有此文件。

解决方案

我正在使用 PhoneGap Build 开发我的 PhoneGap 应用程序,而不是本地 PhoneGap 环境。所以——按照我的指示——我已经从我的应用程序的 webroot 中删除了 phonegap.js 文件,并且只在 index.html 中留下了对它的引用。这对于 PhoneGap Build 来说很好,但对于 Ripple Emulator 来说绝对不是 好。

自从我把那个文件放回去(实际上是 cordova.js 中的 lib\android\example\assets\www\ 文件夹中的 phonegap-2.0.0.zip 后,我设法查看了许可证,启动了 Ripple Services 并在本地测试了正在运行的 PhoneGap 应用程序。

遇到类似问题的人的注意事项:当前版本的 Ripple Emulator 使用 Cordova 2.0 。确保您下载 正确版本的 PhoneGap 并从中获取 cordova.js!不要尝试使用较新版本(当前为 cordova.js )的 3.0.0 ,因为您可能会遇到无法检测到的情况,包括看到许多奇怪的 alert() 甚至挂断过载的 Chrome。

始终确保您使用的是 PhoneGap 的 JS 文件版本,它与 Ripple 背后的版本相匹配。

一步步

使用 Chrome 和 Ripple Emulator 在 Windows 下测试 PhoneGap 应用程序的关键步骤:

  • cordova.js 文件放回您的文件夹根目录并检查对它的引用。您可以从任何可下载的 PhoneGap 版本的 lib\android\example\assets\www\ 文件夹中获取它(不过,您应该使用 phonegap-2.0.0.zip,见上文)。
  • 使用 Chrome 商店为您的 Chrome 浏览器安装 Ripple Emulator 扩展程序。启用它。
  • 启动您的本地网络服务器并通过它运行您的移动应用程序的 HTML 代码(在 Ripple Emulator 中主要可以通过直接文件访问进行测试,但非常不建议这样做,并且可能会产生不可预测的结果)。
  • 点击 Chrome 多功能栏右侧的 Ripple Emulator 图标,然后点击 Enable(或从上下文菜单中选择适当的选项,右键点击页面)。
  • 接受许可协议(protocol)并选择合适的平台 (Cordova 2.0.0)。
  • 再次单击 Ripple Emulator 图标,如果它们未自动启动,请单击 Start Ripple Services
  • 设置目标平台(设备)并享受在本地工作的 PhoneGap 应用程序。

  • 版本和 API 差异

    您还必须密切注意 PhoneGap API 并仔细检查 PhoneGap 2.0.0 中可用的内容以及如何访问它?例如,从那时起,简单的连接类型检查就发生了变化。在 2.9.0 API 它是通过 navigator.connection 完成的,而在 2.0.0 API 它是在 navigator.network 接口(interface)下访问的。

    由于 Ripple Emulator 使用 PhoneGap 2.0.0,目前支持调用此对象的方式:
    var networkState = navigator.connection.type;

    将失败。您必须以这种方式使用它:
    var networkState = navigator.network.connection.type;

    虽然您可以选择 PhoneGap 版本,但在 PhoneGap Build 中编译时(您可以强制它使用 2.0.0 版本,尽管以不变的方式编译此代码),您很可能希望使用最新版本的 PhoneGap 开发您的应用程序。

    在这种情况下,您必须使用一种“安全”的方法,该方法适用于 Ripple 和 PhoneGap:
    var networkState = ((navigator.connection) ? navigator.connection.type : ((navigator.network && navigator.network.connection) ? navigator.network.connection.type : 'unknown'));

    或者你可以声明一些特殊的变量:
    var debugMode = typeof(window.tinyHippos) !== 'undefined';

    并将其用作开关:
    var networkState = (debugMode) ? navigator.network.connection.type : navigator.connection.type;

    希望 Ripple 很快会更新到最新的 PhoneGap,这样我们就可以放弃这些东西。

    关于cordova - 如何使用 Ripple Emulator for Windows 测试 PhoneGap 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695875/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com