HarmonyOS 鸿蒙Next中网址参数拼接方法,支持各种对象类型
HarmonyOS 鸿蒙Next中网址参数拼接方法,支持各种对象类型
/**
* 将参数对象拼接到URL上
* @param url 原始URL
* @param params 参数对象,键为string,值为string或number,支持任意类型
* @returns 拼接后的完整URL
*/
export function appendParamsToUrl(url: string, params: Record<string, string | number>): string {
// 1. 检查是否有参数
if (!params || Object.keys(params).length === 0) {
return url;
}
// 2. 手动拼接查询字符串(避免 map 和解构参数)
let queryString = "";
const paramKeys = Object.keys(params);
for (let i = 0; i < paramKeys.length; i++) {
const key = paramKeys[i];
const value = params[key];
// 拼接 key=value,并处理 URL 编码
queryString += `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`;
// 如果不是最后一个参数,添加 &
if (i < paramKeys.length - 1) {
queryString += "&";
}
}
// 3. 返回完整 URL(自动判断是否已有 '?')
return url.includes('?') ? `${url}&${queryString}` : `${url}?${queryString}`;
}
//使用方法
/**
* url : https://baidu.com
* params: {}
*/
const h5Params: Record<string, string | number> = {
"orderId": orderId,
"type": type,
}
const url = appendParamsToUrl(H5Link.partRefundPage, h5Params)
// url --> https://baidu.com?orderId=1&type=1
更多关于HarmonyOS 鸿蒙Next中网址参数拼接方法,支持各种对象类型的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
在HarmonyOS Next中,使用URLSearchParams
对象进行网址参数拼接。支持字符串、数值、布尔值等多种对象类型。通过append
方法添加参数,自动处理编码和格式。例如:
let params = new URLSearchParams();
params.append('key1', 'value1');
params.append('key2', 123);
let url = 'https://example.com?' + params.toString();
生成URL为:https://example.com?key1=value1&key2=123
。
更多关于HarmonyOS 鸿蒙Next中网址参数拼接方法,支持各种对象类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,可以通过URLSearchParams类实现更简洁的URL参数拼接,支持多种对象类型。以下是一个优化的实现方式:
export function appendParamsToUrl(url: string, params: Record<string, any>): string {
if (!params || Object.keys(params).length === 0) {
return url;
}
const searchParams = new URLSearchParams();
Object.entries(params).forEach(([key, value]) => {
if (value !== null && value !== undefined) {
searchParams.append(key, String(value));
}
});
const queryString = searchParams.toString();
if (!queryString) return url;
const separator = url.includes('?') ? '&' : '?';
return `${url}${separator}${queryString}`;
}
这个实现:
- 使用内置的URLSearchParams处理编码和拼接
- 支持任意类型参数(自动转换为字符串)
- 自动处理null和undefined值
- 保持URL格式正确性
适用于字符串、数字、布尔值等基本类型,符合HarmonyOS Next的开发规范。