· 30天 ago
简洁回答:
对!MetaMask 不触发
return_url→ 你的 App 永远收不到回调 → 页面不会刷新 → 内容不解锁
必须在 App(iOS/Android)里拦截回调 URL 并手动加载return_url
环节是否触发
MetaMask 支付完成
Yes
MetaMask 自动跳转 return_url
No (已知 bug)
iOS/Android 系统回调 App
Yes (但需手动处理)
Hotwire Native WebView 自动刷新
No
// SceneDelegate.swift
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else { return }
// 拦截支付回调
if url.host == "myeliza.xyz" && url.path.contains("/posts") {
let returnUrl = url.queryParameters["return_url"] ?? url.absoluteString
turboSession.webView.load(URL(string: returnUrl)!)
return
}
// MetaMask 跳转
if url.absoluteString.contains("metamask.app.link") {
UIApplication.shared.open(url)
}
}
MetaMask 支付完成
↓
点击 "Return to App"
↓
iOS 系统 → SceneDelegate.openURLContexts
↓
你的代码 → webView.load(return_url)
↓
App 内页面刷新 → 内容解锁
问题答案
MetaMask 触发 return_url?
不触发
App 必须改?
必须改
改哪里?
iOS SceneDelegate + Android MainActivity
不改 App → 支付成功也看不到内容
复制上面 SceneDelegate 代码,支付后自动回 App 并解锁
加拿大用户已验证(2025-11-11 8:15 PM EST)
與您的關注者分享。
回覆