移动端Chrome中Phantom App已安装却跳转至安装页的修复咨询
Phantom移动端Chrome Deeplink偶尔跳转安装页的修复方案
修复方案
1. 切换为App Scheme唤起(优先推荐)
Phantom支持phantom://专属协议,相比HTTPS通用链接,Scheme的唤起逻辑更稳定,不容易被Chrome拦截或误跳安装页。修改代码如下:
function build_url(path: string, params: URLSearchParams) { // 把https替换成phantom:// return `phantom://ul/v1/${path}?${params.toString()}`; } const params = new URLSearchParams({ dapp_encryption_public_key, cluster: "devnet", app_url: "https://phantom.app", redirect_link, // 你的服务器跳转地址 }); const uri = build_url("signTransaction", params); const startTime = Date.now(); window.open(uri); // 增加唤起失败检测,引导用户手动操作 setTimeout(() => { if (Date.now() - startTime < 3500) { alert("请手动打开Phantom App完成签名操作"); } }, 3000);
2. 优化通用链接的唤起逻辑(若坚持用HTTPS链接)
如果必须使用https://phantom.app的通用链接,可以增加唤起后的有效性检测,避免停留在安装页:
const uri = build_url("signTransaction", params); const win = window.open(uri); setTimeout(() => { // 如果窗口未关闭,说明跳转到了网页(安装页),关闭窗口并提示用户 if (win && !win.closed) { win.close(); alert("请确认已安装Phantom App,或手动打开App完成操作"); } }, 2000);
3. 检查Chrome关联设置
引导用户打开Chrome的「设置 → 应用 → 关联网站」,确认Phantom已成功关联phantom.app域名,防止Chrome拦截App唤起请求。
4. 升级软件版本
建议用户将Chrome浏览器、Phantom App都升级到最新版本,新版本通常会修复唤起逻辑的兼容性bug。
问题相关信息
- 调用代码:
function build_url(path: string, params: URLSearchParams) { return `https://phantom.app/ul/v1/${path}?${params.toString()}`; } const params = new URLSearchParams({ dapp_encryption_public_key, cluster: "devnet", app_url: "https://phantom.app", redirect_link, // redirect to my server }); const uri = build_url("signTransaction", params); window.open(uri);
- 设备信息:
- Galaxy21 5G SM-G991N(固件版本G991NKSS3CVI3 / G991NOKR3CVI3 / G991NKOU3CVH1)
- Android版本:12
- Phantom App版本:22.09.06
- Chrome版本:105.0.5195.136
内容的提问来源于stack exchange,提问作者DoHan_Kim
相关产品推荐
相关产品推荐

