TP 钱包无法通过分享链接无法绑定团队邀请关系怎么办?
分析发现,造成这个问题的原因是TP钱包会自动修改你的分享链接,添加 UTM 来源参数。如何避免 UTM 来源参数影响?或者说怎么修改代码来忽略这些参数?
举个例子:
带utm参数的链接:https://xxx.com/?utm_source=tokenpocket#/?code=12345
不带utm参数的链接:https://xxx.com/#/?code=12345
其实,可以使用JavaScript代码来去掉URL中的utm参数,具体步骤如下:
-
解析URL对象:首先,我们需要使用
new URL(url)
方法解析URL对象。这个方法可以把一个URL字符串解析成一个URL对象,我们可以从这个对象中获取到URL的各个部分。 -
获取查询参数:URL对象有一个
searchParams
属性,这个属性是一个URLSearchParams对象,用于获取URL中的查询参数。我们需要从这个对象中获取所有的参数。 -
删除utm参数:我们可以使用
searchParams.delete(key)
方法删除查询参数中所有以"utm_"开头的参数。其中,key
是参数名,表示要删除的参数名。 -
重新构建URL:最后,我们使用
toString()
方法重新构建URL对象,并返回这个新的URL字符串。
下面是完整的JavaScript代码,我添加了注释来帮助理解:
function removeUtmParamsFromUrl(url) {
// 创建URL对象
var urlObject = new URL(url);
// 获取查询参数
var searchParams = urlObject.searchParams;
// 遍历所有参数,删除以"utm_"开头的参数
for (var key of searchParams.keys()) {
if (key.startsWith('utm_')) {
searchParams.delete(key);
}
}
// 重新构建URL,并返回
return urlObject.toString();
}
使用时,直接调用这个函数即可,例如:
var urlWithUtm = "https://xxx.com/?utm_source=tokenpocket#/?code=12345";
var urlWithoutUtm = removeUtmParamsFromUrl(urlWithUtm);
console.log(urlWithoutUtm); // 输出:https://xxx.com/#/?code=12345
以上代码会将urlWithUtm
中的utm参数去掉,生成新的URL字符串urlWithoutUtm
,并打印输出。