如何在cordova应用程序中为ajax调用配置服务器主机IP地址和端口

时间:2016-03-17 11:34:02

标签: cordova polymer-1.0

我正在尝试使用cordova将我的一个网络应用转换为混合移动应用。 我正在使用聚合物和网络组件。我也可以在ios设备中渲染UI。但是我想知道如何在构建或应用应用程序时动态配置我的服务器的IP地址和端口(在这种情况下我的笔记本电脑)。可能是一些cordova设置(如env变量或构建参数)

我的HTML

<html lang="en">

<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="styles/app-theme.html">
<link rel="import" href="bower_components/paper-toolbar/paper-toolbar.html">
<link rel="import" href="bower_components/paper-drawer-panel/paper-drawer-panel.html">

一些ajax电话。

<iron-ajax id="resetValidate" **url="/api/appusers/reset"** method="post" content-type="application/json" on-response="handleResponse" on-error="handleError"></iron-ajax>
....

所以实际上我想在这种情况下调用http :: / 192.168.1.39:3000//api/appusers/reset,但更改代码不是一个好的解决方案,因为我有超过100个地方甚至超过这个ip所有开发人员都会有所不同,而且每次都会改变。 当应用程序准备就绪时,我还需要为所有api配置一些baseurl,所以我想知道cordova的用途是什么。

这适用于Web应用程序/浏览器,因为我从同一个快速服务器渲染html和js文件以及api。因此,静态和动态内容的主机名和端口是相同的,在开发过程中是localhost。

1 个答案:

答案 0 :(得分:-1)

只需使用javascript global variable即可。然后,不要对网址进行硬编码,只需使用与路径其余部分连接的全局变量。这样,您只需要为每个开发人员计算机在一个位置设置URL。

YourCustomConfig.js
var globalServerUrl = "http://localhost:3000";这是每台开发机器更改的部分。

AllOtherFilesNeedingToUseTheUrl.js globalServerUrl + "/the/rest/of/your/path"到处为http请求构建路径。这些都不需要再次更新。

确保将该全局变量的值设置为源代码管理中的生产服务器位置,并且您可以继续使用。