微信小程序跳轉(zhuǎn)iOS App時(shí)调炬,app-parameter信息的傳遞研究

問題描述

微信的小程序在跳轉(zhuǎn)App時(shí)刀荒,是可用通過app-parameter來傳遞一些額外信息

<button open-type="launchApp" app-parameter="additionalInfoxxxxx" binderror="launchAppError">打開APP</button>

但我們?cè)?AppDelegate 中的 - (BOOL)application:openURL:sourceApplication:annotation: 中打斷點(diǎn)后代嗤,可以看到,只有沒什么信息量的url和為nil的annotation:

15535935678385.jpg

url的scheme為App注冊(cè)的固定的微信scheme缠借,annotation為nil干毅,可見沒有任何其他消息

接下來,我們按照微信的文檔來實(shí)現(xiàn)獲取參數(shù):

BOOL result = [WXApi handleOpenURL:url delegate:[WechatSDKDelegate sharedInstance]];
// WechatSDKDelegate

- (void)onReq:(BaseReq*)req
{
    if ([req isKindOfClass:[LaunchFromWXReq class]]) {
        LaunchFromWXReq *launchReq = req;
        NSString *appParameter = launchReq.message.messageExt;
        // do sth bellow
    }
}

可以看到泼返,在 onReq: 竟然能取到結(jié)構(gòu)很復(fù)雜的 req硝逢,而 req.message.messageExt 就是我們從小程序中傳過來的 app-parameter。那么問題來了绅喉,我們?cè)谏厦婵梢钥吹角耄艘粋€(gè)很簡短的url,沒有任何其他信息了柴罐,這個(gè) messageExt 的內(nèi)容是從哪里獲取的呢徽缚?

猜測

經(jīng)過和同事討論,猜測了幾種可能性:

  1. 可能是微信SDK發(fā)了個(gè)網(wǎng)絡(luò)請(qǐng)求來處理這個(gè)事情革屠。但抓包后并沒有
  2. 微信向目標(biāo)App中的進(jìn)程做了什么事情那婉。但iOS的保護(hù)機(jī)制應(yīng)該沒那么容易做到,起碼目前沒想到可以繞開權(quán)限的
  3. App間進(jìn)行socket通信,但考慮到需要起服務(wù)呻率、保活等因素感覺也不是太可能

調(diào)查

沒辦法了,只能去調(diào)查下SDK的靜態(tài)庫了单旁,用Hopper打開后蔫饰,看了幾個(gè)類的方法后,終于找到了一個(gè)方法感覺很像,并且給人豁然開朗的感覺盛嘿。

15535958910573.jpg

就是這個(gè) [WXOMTAOpenUDID _getDictFromPasteboard:] 方法!

有意思城须,猜測可以通過剪切板將需要的信息傳遞過來,在App中獲取后再做好處理就OK了。那么褥蚯,接下來就是驗(yàn)證了。

我將 app-parameter 中線傳數(shù)據(jù)A兩次,然后傳一次數(shù)據(jù)B摊册,最后再傳一次A忘分,然后我在App中可以從剪切板中獲取到以下的數(shù)據(jù):

15535967774203.jpg

可以看出熬荆,第 1、2若债、4的剪切板數(shù)據(jù)是一樣的傲须,第3次不一樣。這里就可以猜測出來的確是用的剪切板了??

下面將數(shù)據(jù)轉(zhuǎn)換一下:

15535965424547.jpg

被圈出來的地方就是我之前小程序中 app-parameter 中傳過來的值硼一。

OK,破案翅雏。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末靴迫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌参淫,老刑警劉巖帅韧,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舒萎,死亡現(xiàn)場離奇詭異,居然都是意外死亡咆贬,警方通過查閱死者的電腦和手機(jī)煤杀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忌怎,“玉大人勋功,你說我怎么就攤上這事辅甥∈韪溃” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谢谦。 經(jīng)常有香客問我释牺,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮锯梁,結(jié)果婚禮上初橘,老公的妹妹穿的比我還像新娘崔梗。我一直安慰自己,他們只是感情好榔昔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布默穴。 她就那樣靜靜地躺著怔檩,像睡著了一般褪秀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薛训,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天媒吗,我揣著相機(jī)與錄音,去河邊找鬼乙埃。 笑死闸英,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的介袜。 我是一名探鬼主播甫何,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼遇伞!你這毒婦竟也來了辙喂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤赃额,失蹤者是張志新(化名)和其女友劉穎加派,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跳芳,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芍锦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飞盆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娄琉。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吓歇,靈堂內(nèi)的尸體忽然破棺而出孽水,到底是詐尸還是另有隱情,我是刑警寧澤城看,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布女气,位于F島的核電站,受9級(jí)特大地震影響测柠,放射性物質(zhì)發(fā)生泄漏炼鞠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一轰胁、第九天 我趴在偏房一處隱蔽的房頂上張望谒主。 院中可真熱鬧,春花似錦赃阀、人聲如沸霎肯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽观游。三九已至搂捧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間备典,已是汗流浹背异旧。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留提佣,地道東北人吮蛹。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像拌屏,于是被迫代替她去往敵國和親潮针。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

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