Wallet_switchethereumchain does not exist/is not available

我们开发了一条自定义的公链, 当从BSC链进入到我们的Dapp里 点击按钮切换到我们链时出现了一个错误提示

我们开发用提示框在用户界面上提示了 error.message 是 the method wallet_switchethereumchain does not exist/is not available

-------------代码片段--------------

window.ethereum.request({
method: ‘wallet_switchEthereumChain’,
params: [{chainId: chainIdToHex}],
}).then(() => {
resolve()
}).catch(e => {
console.log(e)
console.log(‘switchNetwork error’)
if (e.code === 4902 || e.code === -32603) {
// 用户没有添加这个链, 在这里去添加
}
// 用户取消
if (e === ‘rejected’ || e.code === 4001) {
Toast.clear()
reject(e)
return
}
Toast.fail(e.message) // 上面的错误 应该是这里提示的
reject(e)
})

-------------代码片段--------------

之前一直没有出现过这种问题, 我不知道是否是用户的TP钱包 更新了新版本所导致的

出现这个问题的用户是使用ios新版吗,能否提供一下版本号

这个是 用户的 手机, 我看发过来的截图 应该是安卓机 具体型号和 TP钱包版本号 不清楚, 这个问题 是今天第一次碰到, 以前没碰到过

新用户出现了这个问题, 我觉得是TP提供的 ethereum 对象 方法 wallet_switchEthereumChain 在这个新用户没有添加该 链时 返回了我意想不到的 code 正常情况下, 如果没有添加该链 应该返回 code === 4902 时去添加链

或者你们查一下 这种意外的 message 是个什么code

建议找用户确认一下TP钱包的版本号,或者提醒用户升级到最新版本,再试试;

wallet_switchEthereumChain 这个方法是后面新增的,过于老旧的TP钱包是可能没有支持这个方法的