使用WalletConnectSwiftV2 調(diào)用 MetaMask Sign 后不會跳回App 的解決方案

這個一個困擾了我這邊許久的一個問題,在社區(qū)也沒有人去解答這個問題哆料。 下面說一下這個問題出現(xiàn)的情形和我的結局方案。

問題描述

  • 首先不論在使用 WalletConnectSwiftV2 或者是 WalletConnectSwiftV1 ,我們需要在向中繼層發(fā)完消息后都需要自動去跳轉Wallet App芬探,然后Wallet App在前臺狀態(tài)處理完Dapp的消息后就會主動跳回到Dapp
  • 跳轉Wallet App 方式一般是通過 DeepLink 或者是 Universal Link
  • 跳回是Wallet App控制的
  • 建立連接 的跳轉時需要攜帶 WCUrl 參數(shù)捏肢,例如是 使用DeepLinkMetaMask 建立連接時會用類似下面的鏈接奈籽,metamask://wc?uri=wc%3Aff2f0fc993764a90f3ac47028d344cdd5dedb8257c680%402%3Frelay-protocol%3Dirn%26symKey%3Dbdb0d378c9727a1a8d50099fc1bd3e7dcd
  • 在v1 我們向錢包發(fā)送Sign請求后,可以通過不攜帶參數(shù)的 DeepLink 或者是 Universal Link 跳轉到MetaMask 鸵赫,例如這樣:metamask://衣屏, 然后在MetaMask 確定交易后會自動跳回Dapp。
  • 在v2 我們同樣的跳轉行為辩棒,MetaMask 只會跳回一次狼忱。然而其他 WalletApp 沒有同樣的問題膨疏。

解決方案

  • 我發(fā)現(xiàn)在iOS瀏覽器使用Web端的 WalletConnectModal 在v2下跳轉到MetaMask是沒有這個問題
  • 因為跳轉方法在iOS都是使用 DeepLink 或者是 Universal Link是沒區(qū)別的,所以我通過在App中使用 WebView 加載 Web端 WalletConnectSDK钻弄,然后在WebView 的加載URL 的 Delegate 中發(fā)現(xiàn)了其中的一些不同佃却,Web端 WalletConnectSDK在調(diào)用完Sign請求向MetaMask發(fā)起跳轉行為時,使用的鏈接是類似這樣的:metamask://wc?requestId=undefined&sessionTopic=0f0a8661f4636ee5f060358dbf74e6db69a91f299fa4
  • 可以看到使用的是DeepLink 模式的跳轉窘俺,但是攜帶了關鍵的 sessionTopic 參數(shù)饲帅,這個參數(shù)是啥,相信使用過WalletConnectSwiftV2都很清楚瘤泪,就不多解釋洒闸。后面我通過帶上sessionTopic這個參數(shù)也解決了這個問題。
  • 其中還有requestId這個參數(shù)均芽,但是看到是undefined的丘逸,所以說明這個參數(shù)暫時不重要,可傳可不傳掀宋。

總結

  • WalletConnectSwiftV2的SDK 落后Web版本太多了深纲,實際上Web端WalletConnectModal 把上面說的細節(jié)都處理,但是WalletConnectSwiftV2現(xiàn)在還是未提供類似WalletConnectModal這樣的實現(xiàn)劲妙,所以需要開發(fā)者自行處理很多細節(jié)湃鹊,例如上面的跳轉WalletApp,還有 chainId 镣奋、account 的切換等等
  • 如果發(fā)現(xiàn)有Web端SDK能實現(xiàn)币呵,WalletConnectSwiftV2 未提供的實現(xiàn),不妨研究下Wed端SDK的源碼侨颈。因為在WalletConnect 這方面 Web端的用戶會更多余赢,所以Web端SDK也是對開發(fā)者最友好的,最方便的哈垢。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妻柒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子耘分,更是在濱河造成了極大的恐慌举塔,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件求泰,死亡現(xiàn)場離奇詭異央渣,居然都是意外死亡,警方通過查閱死者的電腦和手機渴频,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門芽丹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人枉氮,你說我怎么就攤上這事志衍∨” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵楼肪,是天一觀的道長培廓。 經(jīng)常有香客問我,道長春叫,這世上最難降的妖魔是什么肩钠? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮暂殖,結果婚禮上价匠,老公的妹妹穿的比我還像新娘。我一直安慰自己呛每,他們只是感情好踩窖,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晨横,像睡著了一般洋腮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上手形,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天啥供,我揣著相機與錄音,去河邊找鬼库糠。 笑死伙狐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瞬欧。 我是一名探鬼主播贷屎,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黍判!你這毒婦竟也來了豫尽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顷帖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后渤滞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贬墩,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年妄呕,在試婚紗的時候發(fā)現(xiàn)自己被綠了陶舞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡绪励,死狀恐怖肿孵,靈堂內(nèi)的尸體忽然破棺而出唠粥,到底是詐尸還是另有隱情,我是刑警寧澤停做,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布晤愧,位于F島的核電站,受9級特大地震影響蛉腌,放射性物質(zhì)發(fā)生泄漏官份。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一烙丛、第九天 我趴在偏房一處隱蔽的房頂上張望舅巷。 院中可真熱鬧,春花似錦河咽、人聲如沸钠右。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爬舰。三九已至,卻和暖如春寒瓦,著一層夾襖步出監(jiān)牢的瞬間情屹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工杂腰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垃你,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓喂很,卻偏偏與公主長得像惜颇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子少辣,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容