用于在测试环境中配置端点的 PhoneGap/Cordova 隐藏选项
Posted
技术标签:
【中文标题】用于在测试环境中配置端点的 PhoneGap/Cordova 隐藏选项【英文标题】:PhoneGap/Cordova hidden option to configure endpoints in test environments 【发布时间】:2014-05-14 10:48:10 【问题描述】:当您的要求是签署并发送同一个包时,您如何测试混合应用程序?您的 AJAX 调用将转到一个硬编码的 URL,但实际上该端点在测试和生产环境中需要不同。
覆盖主机文件不是一个选项,因为它需要 root 所有测试设备。 提供和托管自定义 DNS 服务器或 HTTP 代理有点过头了。 有一个应用程序选项是违反要求的,最终用户不能接触到这样的设置。 有一个 cookie 来选择性地覆盖 URL 会起作用,但是如何手动将 cookie 添加到在平板电脑上运行的混合应用程序中? 有一个本地存储设置可以选择性地覆盖 URL,但如何手动更改本地存储?有没有办法让最终用户设置但隐藏应用程序配置选项?
测试是在运行原生应用包的 ios 平板电脑上进行的。
【问题讨论】:
【参考方案1】:如果您真的真的想始终发送完全相同的代码,您可以轻松使用本地存储。在您的应用中:
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 中打开控制台,但如果您真的需要:请重新考虑“相同的包”。我想不出您不想进行不同的测试和生产构建的任何正当理由。
【讨论】:
我已经多次看到“微不足道的更改”、“仅配置更改”、“无法破坏任何更改”在 prod 中引入了致命问题。强制签署和发布完全相同的资产非常有意义。您的里程可能会有所不同,具体取决于您的主题对业务的关键程度(考虑金钱和客户)。我正在研究如何在 iOS 平板电脑上打开控制台...github.com/phonegap/phonegap/wiki/Debugging-in-PhoneGap 您建议将 localstorage 与远程控制台结合使用可以得到解决方案:***.com/questions/4022152/…以上是关于用于在测试环境中配置端点的 PhoneGap/Cordova 隐藏选项的主要内容,如果未能解决你的问题,请参考以下文章