UNPKG

imobile_for_reactnative

Version:

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

53 lines (51 loc) 1.6 kB
import { Params } from '../../../types/interface/iserver/types' /** * url路径参数,例如:'?name=xx&age=10' * @param params Params * @param params hasQuestionMark 返回结果是否以?开头 */ export function QueryParamToStr(params: Params | Array<String>, hasQuestionMark?: boolean): string { if (!params) return '' if (hasQuestionMark === undefined) { hasQuestionMark = true } let QueryParam = hasQuestionMark ? '?' : '' if (params instanceof Array) { // return QueryParam + `[${JSON.stringify(params)}]` return QueryParam + `${JSON.stringify(params)}` } let keys = Object.keys(params) for (let i = 0; i < keys.length; i++) { const key = keys[i] // tslint-disable-next-line let str if (params[key] instanceof Array || params[key] instanceof Object) { // str = `[${params[key].toString()}]` // str = `[${JSON.stringify(params[key])}]` str = `${JSON.stringify(params[key])}` } else { str = params[key] } if (str != undefined) { QueryParam += `${key}=${str}${i < keys.length - 1 ? '&' : ''}` } } return encodeURI(QueryParam) } /** * 替换url中的%@ * @param url 带 %@ 的url * @param params 按顺序替换url中 %@ 的参数 */ export function SetUrlParams(url: string, params: Array<string | number | boolean | Array<any>>): string { if (params?.length < 0) return url for (let param of params) { if (param instanceof Array) { param = `[${param.toString()}]` } else { param = param.toString() } url = url.replace('%@', param) } return encodeURI(url) }