在IOS上,Safari可以通過網頁跳轉到snssdk141://detail?id=123456789拉起指定應用並展示內容,但是Safari並不顯示此鏈接。通過添加註冊表和Python可以實現在PC上獲取到這個自定義的協議鏈接。
首先添加註冊表來監聽這種協議,保存下面文本為p.reg運行即可導入:
1 2 3 4 5 6 7 8 9 10 11 12 | Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\snssdk141] @= "\"URL:My Protocol\"" "URL Protocol" = "" [HKEY_CLASSES_ROOT\snssdk141\shell] [HKEY_CLASSES_ROOT\snssdk141\shell\ open ] [HKEY_CLASSES_ROOT\snssdk141\shell\ open \ command ] @= "\"C:\\Users\\42\\AppData\\Local\\Programs\\Python\\Python35\\python.exe\" \"F:\\scripts\\tt.py\" %1" |
然後新建F:\\scripts\tt.py內容如下,把鏈接複製到剪切版:
1 2 3 4 5 6 7 8 9 10 | ###!C:\Users\42\AppData\Local\Programs\Python\Python35 # coding:utf-8 #snssdk141://detail/?id=123456789 import sys,pyperclip if __name__ = = '__main__' : if str (sys.argv[ 1 ]) : pyperclip.copy(sys.argv[ 1 ]) else : pyperclip.copy( 'fail' ) |
在火狐打開會自動跳轉的網頁,就會彈出選擇框,選擇python運行後就在剪切板里獲取到了snssdk141://detail/?id=123456789。
彎路:火狐並不能添加處理自定義協議的設置。Chrome 58版本在網絡面板可以看到snssdk141://detail/?id=123456789這個鏈接,但是新版Chrome、Chronium和Firefox ESR均無法顯示出網頁中試圖訪問自定義鏈接的請求。requests的作者新開發了個工具叫requests-html,可以支持js和用chrome渲染頁面,及跟蹤網頁跳轉,但是文檔似乎還不完整。