UNPKG

imobile_for_reactnative

Version:

iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

79 lines (63 loc) 1.65 kB
import { HttpRequest, HttpRequestParam, HttpRequestFailed } from "imobile_for_reactnative" import { Fetch } from '../utils/HttpRequest/Fetch' /** 资源不存在时的返回 */ interface ResourceNotFound { succeed: false, error: { code: 404, errorMsg: string } } // TODO 具体需要时再补全此接口 interface SceneInfo { name: string layers: any[] camera:any } export class IServerService { /** 网络请求类,单独设置方便替换 */ httpRequest: HttpRequest = new Fetch() cookie?: string constructor(httpRequest?: HttpRequest) { if(httpRequest) { this.httpRequest = httpRequest } } getCookie = (): string | undefined => { return this.cookie } setCookie = (cookie?: string): void => { this.cookie = cookie } /** 获取iserver发布的场景服务信息 */ getSceneInfo = async(datasetUrl: string): Promise<SceneInfo | HttpRequestFailed> => { try { if(!datasetUrl.endsWith('json')) { datasetUrl = datasetUrl + '.json' } const headers: HttpRequestParam['headers'] = {} if(this.cookie) { headers.cookie = this.cookie } const response = await this.httpRequest.request({ url: datasetUrl, method: 'GET', headers, }) if('error' in response) { return response } else { const result: SceneInfo | ResourceNotFound = await response.json() if('error' in result) { return { error: '404' } } else { return result } } } catch(e) { return { error: 'error'} } } }