如何找出APP的URL Scheme

已遷移平臺(tái):segmentfault,搜索 erma0
換平臺(tái)了,簡(jiǎn)書(shū)發(fā)什么都鎖定,廣告一堆,趁早倒閉吧。

今日壁紙

溫馨提示:先看文末<a href="#總結(jié)">總結(jié)</a>或先看(3)WEB端


<a href="#第一段的錨點(diǎn)名稱">第一段標(biāo)題</a>

<a name="第一段的錨點(diǎn)名稱">第一段標(biāo)題</a>

什么是APP URL scheme

玩手機(jī)經(jīng)常會(huì)碰到瀏覽器里提示即將跳轉(zhuǎn)到某APP,或者微信里提醒即將打開(kāi)某APP,這其中的原理,一般就是通過(guò)URL scheme實(shí)現(xiàn)的。
具體可以看一下這篇文章的詳細(xì)介紹:傳送門

如何查找某一APP的URL scheme

(1) iPhone

  1. 將下載下來(lái)的ipa文件(可以用愛(ài)思助手下載)直接解壓
  2. 以抖音為例,進(jìn)入目錄\抖音短視頻_7.7.0(正版)\Payload\Aweme.app\
  3. 打開(kāi)Info.plist文件
  4. 搜索CFBundleURLName,其中<string>里就是對(duì)應(yīng)的scheme,比如抖音的就是snssdk1128://
  <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLName</key>
    <string>com.ss.iphone.ugc.Aweme</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>snssdk1128</string>
    </array>
  </dict>

(2)安卓

  1. 反編譯apk
  2. 打開(kāi)AndroidManifest.xml,搜索scheme或者android.intent.action.VIEW
  3. 根據(jù)對(duì)應(yīng)的Activity名稱aweme,可以定位到:
<activity android:launchMode="singleTask" android:name="com.ss.android.ugc.aweme.app.DeepLinkHandlerActivity" android:noHistory="true" android:screenOrientation="portrait" android:theme="@style/t">
    <intent-filter>
        <action android:name="com.ss.android.sdk.snssdk1128"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="snssdk1128"/>
    </intent-filter>
</activity>
  1. 這里已經(jīng)知道scheme是snssdk1128://了,就在反編譯的內(nèi)容里搜一下這個(gè)就能搜到所有的URL scheme了(帶參數(shù)的哦)
    搜索結(jié)果

(3)WEB端

最簡(jiǎn)單、粗暴的方法就是,拿到你發(fā)現(xiàn)的會(huì)提示“即將打開(kāi)某APP”的頁(yè)面(一般就是個(gè)普通URL),檢查頁(yè)面源代碼,里面就有scheme://,比如下面找抖音的一下URL scheme。

  1. 打開(kāi)分享頁(yè)面
  2. 設(shè)置手機(jī)端UA,,勾選Preserve log(保留日志),再點(diǎn)擊【關(guān)注】
    截圖示例
  3. 可以看到,Network欄出現(xiàn)了一個(gè)紅色的請(qǐng)求,這個(gè)就是URL scheme的請(qǐng)求,是要打開(kāi)抖音APP并且關(guān)注該用戶
  4. 點(diǎn)進(jìn)去看,得到全部URL是snssdk1128://user/profile/98726798113?refer=web&gd_label=click_wap_profile_follow&type=need_follow&needlaunchlog=1
  5. 然后就可以搜索這個(gè)URL了,先在左側(cè)點(diǎn)擊一下那個(gè)紅色URL,然后Ctrl+F,搜一下snssdk1128://(不能搜整條URL,因?yàn)閁RL里參數(shù)都是前端處理之后加上去的)
  6. 搜到兩個(gè)結(jié)果,第一個(gè)是之前看到的紅色URL,那應(yīng)該就是另一個(gè),雙擊進(jìn)入
  7. 點(diǎn)一下花括號(hào){ }進(jìn)行格式化,再點(diǎn)一下右側(cè)代碼區(qū),才能Ctrl+F,一樣的搜索snssdk1128://
  8. 結(jié)果如圖:
    搜索結(jié)果

<a name="總結(jié)">總結(jié)</a>

總的來(lái)說(shuō),要找一個(gè)APP的URL scheme,可以按一下順序嘗試:

  1. 先看有沒(méi)有什么分享鏈接是會(huì)喚起App的,如果有,直接參照(3)來(lái)查找暴露的scheme(一般都會(huì)帶拼接好的參數(shù));
  2. 如果沒(méi)有WEB端,就參考(2)進(jìn)行反編譯來(lái)查找scheme(參數(shù)要自己拼湊嘗試了)
  3. 如果上面兩步?jīng)]有成功,只能通過(guò)iOS端進(jìn)行查找scheme(只要一個(gè)開(kāi)頭,也就是只能喚醒APP)

補(bǔ)充

  1. 隱式啟動(dòng)APP
  2. intent記錄APP
  3. Intent攔截者APP
    原理是通過(guò)xposed框架查找intent及參數(shù),未測(cè)試。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容