PhoneGap / Cordova隐藏选项,用于在测试环境中配置端点

时间:2014-05-14 10:48:11

标签: html5 cordova configuration-management hybrid-mobile-app

当您要求签署并运送相同的包裹时,如何测试混合应用程序?您有一个AJAX调用的硬编码URL,但实际上这个端点在测试和生产环境中需要有所不同。

  • 覆盖hosts文件不是一个选项,因为它需要root所有测试设备。
  • 服务和托管自定义DNS服务器或HTTP代理是一种矫枉过正的行为。
  • 有一个应用程序选项符合要求,最终用户不能接受这样的设置。
  • 有一个cookie可选择覆盖URL会起作用,但如何手动将cookie添加到平板电脑上运行的混合应用程序?
  • 是否有本地存储设置可选择覆盖URL,但如何手动更改本地存储?

有没有办法隐藏应用程序配置选项,从最终用户设置?

在运行本机应用程序包的iOS平板电脑上执行测试。

1 个答案:

答案 0 :(得分:2)

如果您确实希望始终发送完全相同的代码,则可以轻松使用本地存储。在您的应用中:

if(!localStorage.getItem('env')) localStorage.setItem('env', 'production');
switch(localStorage.getItem('env') {
    case 'testing': endpoint = 'http://testserver'; break;
    case 'production': endpoint = 'http://productionserver'; break;
}

然后只需打开浏览器控制台并输入:

localStorage.setItem('env', 'testing');

您可能无法在移动浏览器或Cordova内部打开控制台,但如果您确实需要:重新考虑“相同包”的事情。我想不出你为什么不想做不同的测试和生产构建的任何正当理由。