Command-C 最打動我的是對少數需求的支持。它的各個功能都可以用 x-callback-URL 來做到,Mac 上有全面可自定義的快捷鍵,甚至支持了 AppleScript。最近入了 iPad Pro 後,我又發現這個小衆工具竟然這麼快就支持了最大的 iOS 尺寸……
Command-C 很容易上手,我已經在上一篇介紹了它的基本功能,這篇文章主要講解的是它在 iOS 和 Mac 上的進階功能——如何使用它的 URl Schemes 和 AppleScript——從而讓你在此類工具的選擇和使用方面一步到位,不再存疑。順利的話,你應該還能學會一些關于制作 Popclip 插件的東西。
首先說下 Command-C 的基本 URL Schemes1:command-c:
其次,Command-C 已經在 2.0 版本中使用 UUID2代替了之前通過設備名或者設備的匹配順序來定位設備,所以之前的 URL Schemes 已經都不能用了。現在想用 Command-C 的 URL Schemes,就需要用到自己的設備在 Command-C 中的 UUID。
在 Command-C 的設置界面的設備列表中,進入各個設備的界面就能複制該設備的 UUID。
以上兩步是準備工作,下面正式開始折騰。
Command-C 的 x-callback-URL 分為以下三個類别:直接發送剪貼闆内容、直接發送文本和發送鍊接并在目标設備打開該鍊接。
這是最常用的動作:
command-c://x-callback-url/share?deviceUUID=
你設備的 UUID
上面這條 URL 做到的事是:把目前的剪貼闆内容直接發送到另一台裝有并運行3了 Command-C 的設備。這時候,目标設備的剪貼闆會直接被替換,你隻要在你想粘貼的地方執行粘貼的操作即可。如果你有多個設備,還有 Launch Center Pro,那麼你可以使用 List 來制作列表,在使用的時候通過列表選擇目标設備。
這個動作的制作很簡單:
假設你有一台 iPhone 和一台 iPad(任意型号),那麼在 Launch Center Pro 中,使用 List 的這個動作的 URL 應該是這樣:
command-c://x-callback-url/share?deviceUUID=[list: Choose a device|iPhone=UUID|iPad=UUID]
如果再多的話就按照格式,在最後的中括号前面添加 |Macbook Pro=UUID
即可。注意不同的設備要用不同的 UUID。
如果,你想在發送完剪貼闆内容後自動回到上一個 App 或者接下一個動作,可以用:
command-c://x-callback-url/share?x-source=
SourceApp
&x-success={{sourceapp
://}}&x-error={{sourceapp
://}}&deviceUUID=你設備的 UUID
這裡面有三個 sourceapp
,你可以直接把第一個替換為你想跳轉的 App 的 App 名,比如Launch Center Pro
。後面的兩個sourceapp
你要将它們替換為對應的 App 的基本 URL,Launch Center Pro
的基本 URL 是launch:
。
這個并不常用,我也想不出使用情境。除非你有一些字符需要經常在各個設備間傳輸,但這個功能用系統的文本替換
也完全可以做到。它的 URL Schemes 是這樣:
command-c://x-callback-url/shareText?text=
文本
&deviceUUID=你設備的 UUID
文本的部分需要編碼,當然,你也可以用 Launch Center Pro 來臨時輸入文本,因為 Launch Center Pro 會自動為編碼,你會省下編碼這一步。
和直接發送剪貼闆内容一樣,直接發送文本的操作也有相應的 x-callback-URL:
command-c://x-callback-url/shareText?x-source=
SourceApp
&x-success={{sourceapp
://}}&x-error={{sourceapp
://}}&deviceUUID=你設備的 UUID
&text=文本
兩者的讀法也沒有什麼區别。
這一步可以用 Handsoff 完成,所以我也并不使用,硬要用的話,可以把一些其它 App 的 URL Schemes 發送到其他設備,然後直接在目标設備執行操作。所以你甚至可以通過 Command-C,用 Mac 發送一些 URL Schemes 到 iOS 設備上,直接讓相應的 App 執行動作。
發送鍊接并在目标設備打開的 URL Schemes 是:
command-c://x-callback-url/shareAndOpenURL?url=
鍊接
&deviceUUID=你設備的 UUID
按照慣例,這裡也有一個 x-callback-URL:
command-c://x-callback-url/shareAndOpenURL?x-source=
SourceApp
&x-success={{sourceapp
://}}&x-error={{sourceapp
://}}&deviceUUID=你設備的 UUID
&url={{http://}}
同樣格式的 URL 看三遍應該就看得懂了,如果看不懂,用最簡單的那個試一下就能搞清楚。URL Schemes 這樣的東西,都是跑一下就知道能不能行。不行了就排錯,排完了就全明白了。
以上就是 Command-C 在 iOS 上的進階用法,簡單來說,就是活用幾段格式一樣的 URL Schemes,結合 Launch Center Pro 的 List 來做一個動作會更加高效。
Command-C 在 Mac 上的進階用法是利用對 AppleScript 和 x-callback-URL 的支持做一些東西,比如 Popclip 的插件、Alfred 的 Workflow 或是 Launcher 的 Action。但是如果是以效率而不是以折騰為目的的話,Alfred 的 Workflow 和 Launcher 的 Action 在這裡是不必要的。因為 Command-C 的快捷鍵系統非常全面,可以先整體設置一個快捷鍵,然後用方向鍵選擇設備:
也可以直接給單個設備設置快捷鍵。
所以已經不需要再耗費時間專門為 Alfred 和 Launchbar 再做動作。這裡主要介紹一下 Popclip 的插件,這個是與快捷鍵不同甚至比快捷鍵更快的方法。因為無論是快捷鍵還是 Alfred 和 Launchbar 的方法,都要先選中文字,再用快捷鍵複制,再用快捷鍵發送。但是,通過Command-C 的 Popclip 的插件可以做到選中一段文字,在彈出的菜單中選擇自己的設備,然後直接發送出去。省去了複制這一步,并且考慮到你鼠标光标的位置離彈出菜單并不會太遠,所以這個方法應該是最快的。
@餃子如何是好曾經寫了 Command-C 的 Popclip 的插件,并且寫了。但是如前文所說,2.0 改變了定位設備的方法,所以原來的教程和插件需要進行稍微的修改才能使用。
首先先下載我做好的插件模闆。你要知道這個插件你是肯定要手動修改的,因為我們的設備數量未必相同,UUID 必定不同。所以這裡沒有近路了,下載完壓縮文件,先不要安裝,耐心地折騰一會兒,如果想隻做到功能而不求甚解,那一點兒不難。想即弄清楚功能又搞懂原理,也不難。
這個插件模闆對應了我的四個設備(如前文中的圖例所示,有 iPhone, iPad Mini, iPad Pro 和 iMac),但一般來說大家設備不會這麼多,所以我們先從修改設備數量說起。
第一步:解壓縮文件,然後右鍵後綴名為popclipext
的文件,選擇「顯示包内容」,再用Xcode
打開Config.plist
文件,展開所有層級,你應該看到的是:
第二步:不需要懂裡面都是什麼,先把你沒有的設備所在的item
都删除了,比如你隻有 iPhone,那你就把除了item 0
以外的所有其它item
都删了:
如果你隻有一台設備,任務就算基本完成了,你現在可以雙擊 popclipext
文件安裝插件,然後會看到這樣的情況:
你隻需要把你的 UUID 粘貼進去,下次再選中文字,就會直接彈出一個 iPhone 的标志:
選擇這個 iPhone 标志,就能把内容發送到你的設備上啦。
總結起來總共隻有兩步:第一步,用 Xcode 打開文件;第二步,删了不帶 iPhone 的 item
。然後你就可以安裝了,安裝以後修改一下 UUID 就可以,就這麼簡單。
現在讓我們回到第二步,你發現了一個問題:你隻有一個設備,但不是 iPhone,比如說是個 iPod Touch,咋辦?
也不難。
這時候你要做的第一步:是把Config.plist
裡的iphone
全改成ipodtouch
,而iPhone
你可以改為iPod Touch
,注意兩者有什麼區别,改完以後大概是這樣:
第二步:回到Config.plist
所在的文件夾,你要把iphone.png
改成ipodtouch.png
。
第三步:回到Config.plist
所在的文件夾,把iphone.applescript
改成ipodtouch.applescript
。
第四步:打開ipodtouch.applescript
,把裡面的iphoneuuid
改成ipodtouchuuid
。
然後你就可以關閉文件夾,雙擊 popclipext
文件安裝插件,然後會看到熟悉的讓你替換 UUID 的界面。
前面是為了讓大家減少壓力,快速上手,所以沒有講清楚。我覺得這種東西都是 Learning by doing, 一定要做,做着做着就明白了。在這一步我準備詳細講一下這個 Popclip 的插件是怎麼做的,讓大家對這個插件知其所以然。
第一步還是要下載模闆壓縮文件、解壓縮然後右鍵「顯示包内容」,但是現在我們要觀察這個文件夾裡的東西了:
.png
格式的,因為它們将會是每一個動作的圖标,.png
格式的圖片的特性是可以背景留白,你可以在Noun Project 的網站上找到高質量的圖标。你也可以不用圖片,這樣動作将沒有圖标,相應位置會是個黑塊兒。我們從 Config.plist 開始:
以發送剪貼闆到 iPhone 的插件為例,我們需要在乎部分的有圖上三個。
Extension Name
: 這是這個插件的名字,最終會顯示在Popclip 的下拉菜單裡。Extension Image File
: 這是這個插件的圖标,圖标文件放在插件文件夾中,最終顯示在Popclip 的下拉菜單裡。AppleScript File
: 這項用于關聯插件文件夾中的 Applescript 的文件,所以這裡的名字和文件夾中相關的 Applescript 文件名一定要一緻。Image File
: 這是此動作在彈出菜單中顯示的動作圖标,就是在選中文字後顯示的設備圖标,跟上面的插件圖标不同。它後面的字符關聯了文件夾中的圖片文件,所以名字同樣不能出錯。Title
: 這是動作名稱,在彈出菜單中,鼠标懸停在動作上就會看到看到該動作的名稱。顯示出來的就是後面的字符,以圖中動作為例,顯示出的将是Send to iPhone
。Option Default Value
: 這後面的字符儲存的是該設備 UUID,但是這是可以在安裝後随時改動的,所以并不用太介意。當然,在這裡都改好的話,安裝插件的時候比較省心。Option Identifier
: 這是這個動作的身份,和外面的 Applescript 文件相關。在藍色部分指定的 Applescript 文件,在動作運行時會獲取這個身份,然後再讀取上面的Option Default Value
。Option Label
:這個是你在安裝過動作後,讓你修改 UUID 時顯示出來的文字。
然後再看 Applescript 文件,以 iphone.applescirpt
為例,你如果打開它,會發現它非常簡單,就是一句 Command-C 默認的:
tell application "Command-C"
shareClipboard to "{popclip option iphoneuuid}"
end tell
關鍵在于花括号中的 {popclip option iphoneuuid}
,這裡面的這個iphoneuuid
,就是我們前面在紅色部分中設定好的Option Identifier
的字符。而它的默認值,Option Default Value
,也就是63BDD57E-5F25-4C97-83F8-F4BB80FF0CD2
這一串字符。
它工作的方式就是,每當運行這個動作,iphone.applescript
文件會先去找Option Identifier
的字符,找到是iphoneuuid
以後,會繼續找它的默認值Option Default Value
,最後讀取出63BDD57E-5F25-4C97-83F8-F4BB80FF0CD2
,也就是我 iPhone 的 UUID。
所以這裡可以解釋前面為什麼說紅色的部分不是必要的了,因為這個部分整個是為了你日後便于修改設備的 UUID 的,所以它把 UUID 設為了一個變量,你随時可以修改:
尤其是當你要把設備分享給别人的時候,為了方便,可以讓對方直接在安裝後就修改 UUID 來使用。
但如果你是自用,那麼完全可以把紅色部分全部删除,然後在 AppleScirpt
文件中,把 UUID 寫死,給對應的設備寫上對應的 UUID,比如我的 iPhone,就可以寫成:
tell application "Command-C"
shareClipboard to "63BDD57E-5F25-4C97-83F8-F4BB80FF0CD2"
end tell
那麼整個動作就會簡單一大半兒了。
現在,你應該會讀模闆了,也應該知道要修改模闆的哪裡來制作自己的動作了,相信不管是一個還是多個設備,做 Command-C 的 Popclip 的插件從此就難不住你了。
你可以在 App Store 下載 Command-C:
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!