TP-Lab / tp-wallet-sdk

TP钱包协议文档
23 stars 8 forks source link

手机浏览器,拉起钱包用Dapp浏览器并打开链接时。如果没有安装app,如何自动跳转到官网或者下载页 #9

Closed lucian55 closed 7 months ago

lucian55 commented 7 months ago

代码如下:

// 创建参数对象,参数配置请根据实际情况修改
let params = {
    url: "https://dapp.mytokenpocket.vip/referendum/index.html#/",
    chain: "EOS", 
    source: "xxx"
};

// 将参数对象转化为 json 字符串并进行 URL 编码
let encodedParams = encodeURIComponent(JSON.stringify(params));

// 添加到连接中
window.open(`tpdapp://open?params=${encodedParams}`)

如果没有安装app,会提示链接无效。如果安装了app没有问题

或者如何先判断是否安装app,如果没有安装跳转到官网

Developmc commented 7 months ago

这种情况下,建议”先判断是否安装app“,具体实现可以自行google一下,下面是一个示例:

function checkAppInstalled(deepLink) {
    var iframe = document.createElement("iframe");
    iframe.style.display = "none";
    iframe.src = deepLink;
    document.body.appendChild(iframe);

    setTimeout(function() {
        document.body.removeChild(iframe);
        console.log("App is installed");
    }, 2000); // 设置超时时间,2秒后检查是否成功打开 deep link
}

// 调用检测函数,传入应用的 deep link
checkAppInstalled("yourapp://deeplink");

在这个示例中,我们创建了一个隐藏的 iframe,并设置其 src 属性为应用的 deep link。如果应用已安装,则应该能够成功打开 deep link;如果应用未安装,则打开 deep link 会失败。我们使用了一个 2 秒的超时时间,如果在超时时间内成功打开了 deep link,则可以确定应用已安装