在IOS上,Safari可以通過網頁跳轉到snssdk141://detail?id=123456789拉起指定應用並展示內容,但是Safari並不顯示此鏈接。通過添加註冊表和Python可以實現在PC上獲取到這個自定義的協議鏈接。
首先添加註冊表來監聽這種協議,保存下面文本為p.reg運行即可導入:
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內容如下,把鏈接複製到剪切版:
###!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渲染頁面,及跟蹤網頁跳轉,但是文檔似乎還不完整。