想把用户从任意移动浏览器直接送进你的 去中心化应用 并让 TA 秒开 OKX 钱包?
本文手把手教你仅用 JavaScript 就能生成一套安全、稳定、可被各种移动浏览器识别的 deeplink。
关键词:移动端 DApp、deeplink、深度链接、OKX App、JavaScript、Web3 流量、去中心化应用、钱包发现页
为什么要为移动端 DApp 做深度链接?
- 降低用户 跳出率:从浏览器到钱包的跳转一步到位,减少手动搜索 DApp。
- 提升 转化率:直接进入 OKX 的「发现」页面,可获得天然流量加持。
- 便于社交裂变:分享出去的链接立刻可用,而不再是“复制链接-打开钱包-粘贴”。
前置检查清单
- 你已拥有一个 部署到公网 的 DApp(ENS 域名或常规 HTTPS 皆可)。
- 你拥有在 HTML/JS 中插入脚本 的编辑权限。
- 用户已安装 OKX App(Android / iOS)。
👉 第一步就点击查看如何确认 OKX App 是否已安装,减少 70% 跳转失败
步骤 1:提取 DApp 实际链接
在 <script> 标签顶部声明变量:
// 把下面示例换成你的 DApp 域名+路径
const dappUrl = 'https://your-dapp.com';确保前缀为 https://,否则 iOS 会识别失败。
步骤 2:URL 编码防止特殊字符
const encodedDappUrl = encodeURIComponent(dappUrl);这一步可以防止 ?、&、# 等特殊字符在拼接链接时产生解析错误。
步骤 3:拼接成 OKX 专属 deeplink
// OKX iOS/Android 统一格式
const deeplink = `okx://wallet/dapp/url?url=${encodedDappUrl}`;- 开头
okx://已注册为 OKX App 私有协议,iOS 与 Android 双端可用。 - 片段
wallet/dapp/url?url=直接定位到「发现页」并加载目标页面。
步骤 4:为浏览器访问做二次编码
网页中的 <a> 标签需要把整段 deeplink 当作 query 传给 Universal Link:
const finalURL = `https://okxdog.com/download?deeplink=${encodeURIComponent(deeplink)}`;这样解决 2 个问题
- 如果用户未安装 OKX,会跳转到下载页。
- 已安装则通过 Universal Link 唤醒 App。
步骤 5:在用户点击时触发
<button id="openDApp">打开我的 DApp</button>
<script>
document.getElementById('openDApp').addEventListener('click', () => {
// 给 Safari 有 2s 响应时间
const timeout = setTimeout(() => {
location.href = 'https://okxdog.com/download';
}, 2000);
// 尝试唤醒钱包
location.href = finalURL;
// 如果钱包被唤起成功,浏览器会被切到后台,定时器暂停
window.addEventListener('visibilitychange', () => {
clearTimeout(timeout);
}, { once: true });
});
</script>完整可复用代码片段
<!DOCTYPE html>
<html>
<head>
<title>打开我的 DApp in OKX</title>
</head>
<body>
<h1>点击按钮,立即体验链游</h1>
<button id="open">立即打开</button>
<script>
const dappUrl = 'https://your-dapp.com';
const deeplink = `okx://wallet/dapp/url?url=${encodeURIComponent(dappUrl)}`;
const finalURL = `https://okxdog.com/download?deeplink=${encodeURIComponent(deeplink)}`;
document.getElementById('open').addEventListener('click', () => {
const fallback = setTimeout(() => {
location.href = 'https://okxdog.com/download';
}, 2000);
location.href = finalURL;
window.addEventListener('visibilitychange', () => clearTimeout(fallback), { once: true });
});
</script>
</body>
</html>FAQ:常见疑问一次解决
Q1:Android 原生浏览器不识别 okx:// 怎么办?
A:部分国产浏览器会拦截私有协议,使用 OKX 提供的 Universal Link: https://okxdog.com/download?deeplink=XXXX 双重兜底即可。
Q2:用户用手机微信扫码打开为什么直接进下载页?
A:微信限制私有协议,可在二维码页面里加一行提示:
“请在手机浏览器或系统自带扫码工具中打开”。
Q3:能否一次携带多个参数,如邀请码、链 ID?
A:可以,将参数追加到 dappUrl 中: https://your-dapp.com?ref=123123&chain=56,下一页通过 URLSearchParams 读取。
Q4:为什么我点击没反应?
A:八成是 open.button 事件没绑成功或 dappUrl 少了 encodeURIComponent。
重新复制“完整可复用代码片段”测试即可。
Q5:PC 端用户怎么处理?
A:检测 navigator.userAgent,如果是桌面端,直接弹出二维码或给出浏览器插件安装指引,避免尴尬 404。
Q6:如何查看跳转数据?
A:在 finalURL 后面再加官方自动绑定的 utm_source=mobile&campaign=demo,到 OKX 控制台-流量报表 即可查看实时数据。
踩坑提醒 & 优化小技巧
- 参数长度限制:大多数浏览器对 deeplink 长度要求在 2048 Bit 以内,复杂参数用 Base64 压缩 再编码即可。
- SEO Meta:网页头部别忘了设置
og:url、twitter:url,防爬虫延迟跳转。 - 灰度登陆:将脚本暴露在 CDN 边缘节点(如 CF Worker),记录来源、设备、成功率,早发现问题。
- 一键分享:替换
window.open(finalURL)使其在 iOS Safari/WebView 上保持同屏跳转,体验更顺。
👉 想用 3 分钟测试脚本?点我即刻跳转真实环境,一键验证!(零配置)
总结
完成以上 5 步,你就拥有了一条跨端可用的 移动端 DApp 深度链接。
它从任意移动浏览器出发,在用户预算最小操作情况下 直奔 OKX 发现页,让你瞬间获得高净值的 Web3 真实流量。
“0 广告预算”也能起量,从现在开始搬砖写脚本吧!