Ionic:安卓上的代理服务器



我有一个项目设置,可以在端口 3000 上访问也在开发中的本地服务器。在开发中,我在ionic.config.json的代理设置中使用以下配置以避免 CORS 问题:

"proxies": [
    {
      "path": "/api",
      "proxyUrl": "http://192.168.1.14:3000/api"
    },
    {
      "path": "/auth",
      "proxyUrl": "http://192.168.1.14:3000/auth"
    }
  ]

但是,当我在 android 设备上运行它时,它似乎坚持忽略这些设置并调用file:///auth/...而不是真正的 URL。通过手动输入 IP 地址可以解决此问题。有没有办法简化流程并在ionic serve和本机应用程序上都有一组固定的工作 URL?

我遇到了同样的问题,并使用Platform.is()方法解决了它。当设备是安卓设备时,我会更改网址以包含我的 API 的 IP 地址。

ionic.config.json

"proxies": [
  {
    "path": "/api",
    "proxyUrl": "http://192.168.80.10:3000/api"
  }
]

我的示例服务:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Platform } from 'ionic-angular';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class MemberService {
  private url = 'api/members';
  constructor(
    private http: Http,
    private platform: Platform
  ) {
    if(this.platform.is('android')) {
      this.url = 'http://192.168.80.10:3000/' + this.url;
    }
  }
  getMembers(): Promise<any> {
    return this.http.get(`${this.url}.json`)
      .toPromise()
      .then(result => result.json())
      .catch(error => console.log(error));
  }
}

可能this.platform.is('mobile')也会很好。

相关内容

  • 没有找到相关文章

最新更新