在TP 钱包中DApp 绑定团队邀请关系不生效,技术如何解决?


TP 钱包无法通过分享链接无法绑定团队邀请关系怎么办?

分析发现,造成这个问题的原因是TP钱包会自动修改你的分享链接,添加 UTM 来源参数。如何避免 UTM 来源参数影响?或者说怎么修改代码来忽略这些参数?

举个例子:
带utm参数的链接:https://xxx.com/?utm_source=tokenpocket#/?code=12345
不带utm参数的链接:https://xxx.com/#/?code=12345

其实,可以使用JavaScript代码来去掉URL中的utm参数,具体步骤如下:

  1. 解析URL对象:首先,我们需要使用new URL(url)方法解析URL对象。这个方法可以把一个URL字符串解析成一个URL对象,我们可以从这个对象中获取到URL的各个部分。

  2. 获取查询参数:URL对象有一个searchParams属性,这个属性是一个URLSearchParams对象,用于获取URL中的查询参数。我们需要从这个对象中获取所有的参数。

  3. 删除utm参数:我们可以使用searchParams.delete(key)方法删除查询参数中所有以"utm_"开头的参数。其中,key是参数名,表示要删除的参数名。

  4. 重新构建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,并打印输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值