tft每日頭條

 > 科技

 > 剪切闆的管理

剪切闆的管理

科技 更新时间:2024-11-20 16:44:11

Command-C 最打動我的是對少數需求的支持。它的各個功能都可以用 x-callback-URL 來做到,Mac 上有全面可自定義的快捷鍵,甚至支持了 AppleScript。最近入了 iPad Pro 後,我又發現這個小衆工具竟然這麼快就支持了最大的 iOS 尺寸……

Command-C 很容易上手,我已經在上一篇介紹了它的基本功能,這篇文章主要講解的是它在 iOS 和 Mac 上的進階功能——如何使用它的 URl Schemes 和 AppleScript——從而讓你在此類工具的選擇和使用方面一步到位,不再存疑。順利的話,你應該還能學會一些關于制作 Popclip 插件的東西。

iOS 上的進階用法

首先說下 Command-C 的基本 URL Schemes1:command-c:

其次,Command-C 已經在 2.0 版本中使用 UUID2代替了之前通過設備名或者設備的匹配順序來定位設備,所以之前的 URL Schemes 已經都不能用了。現在想用 Command-C 的 URL Schemes,就需要用到自己的設備在 Command-C 中的 UUID。

剪切闆的管理(剪貼闆傳輸工具)1

在 Command-C 的設置界面的設備列表中,進入各個設備的界面就能複制該設備的 UUID。

以上兩步是準備工作,下面正式開始折騰。

Command-C 的 x-callback-URL 分為以下三個類别:直接發送剪貼闆内容、直接發送文本和發送鍊接并在目标設備打開該鍊接。

1. 直接發送剪貼闆内容

這是最常用的動作:

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:

2. 直接發送文本

這個并不常用,我也想不出使用情境。除非你有一些字符需要經常在各個設備間傳輸,但這個功能用系統的文本替換也完全可以做到。它的 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=文本

兩者的讀法也沒有什麼區别。

3. 發送鍊接并在目标設備打開

這一步可以用 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 來做一個動作會更加高效。

Mac 上的進階用法

Command-C 在 Mac 上的進階用法是利用對 AppleScript 和 x-callback-URL 的支持做一些東西,比如 Popclip 的插件、Alfred 的 Workflow 或是 Launcher 的 Action。但是如果是以效率而不是以折騰為目的的話,Alfred 的 Workflow 和 Launcher 的 Action 在這裡是不必要的。因為 Command-C 的快捷鍵系統非常全面,可以先整體設置一個快捷鍵,然後用方向鍵選擇設備:

剪切闆的管理(剪貼闆傳輸工具)2

也可以直接給單個設備設置快捷鍵。

剪切闆的管理(剪貼闆傳輸工具)3

所以已經不需要再耗費時間專門為 Alfred 和 Launchbar 再做動作。這裡主要介紹一下 Popclip 的插件,這個是與快捷鍵不同甚至比快捷鍵更快的方法。因為無論是快捷鍵還是 Alfred 和 Launchbar 的方法,都要先選中文字,再用快捷鍵複制,再用快捷鍵發送。但是,通過Command-C 的 Popclip 的插件可以做到選中一段文字,在彈出的菜單中選擇自己的設備,然後直接發送出去。省去了複制這一步,并且考慮到你鼠标光标的位置離彈出菜單并不會太遠,所以這個方法應該是最快的。

剪切闆的管理(剪貼闆傳輸工具)4

@餃子如何是好曾經寫了 Command-C 的 Popclip 的插件,并且寫了。但是如前文所說,2.0 改變了定位設備的方法,所以原來的教程和插件需要進行稍微的修改才能使用。

自制 Popclip 插件

首先先下載我做好的插件模闆。你要知道這個插件你是肯定要手動修改的,因為我們的設備數量未必相同,UUID 必定不同。所以這裡沒有近路了,下載完壓縮文件,先不要安裝,耐心地折騰一會兒,如果想隻做到功能而不求甚解,那一點兒不難。想即弄清楚功能又搞懂原理,也不難。

這個插件模闆對應了我的四個設備(如前文中的圖例所示,有 iPhone, iPad Mini, iPad Pro 和 iMac),但一般來說大家設備不會這麼多,所以我們先從修改設備數量說起。

1. 單設備為 iPhone 的情況

第一步:解壓縮文件,然後右鍵後綴名為popclipext的文件,選擇「顯示包内容」,再用Xcode打開Config.plist文件,展開所有層級,你應該看到的是:

剪切闆的管理(剪貼闆傳輸工具)5

第二步:不需要懂裡面都是什麼,先把你沒有的設備所在的item都删除了,比如你隻有 iPhone,那你就把除了item 0以外的所有其它item都删了:

剪切闆的管理(剪貼闆傳輸工具)6

如果你隻有一台設備,任務就算基本完成了,你現在可以雙擊 popclipext文件安裝插件,然後會看到這樣的情況:

剪切闆的管理(剪貼闆傳輸工具)7

你隻需要把你的 UUID 粘貼進去,下次再選中文字,就會直接彈出一個 iPhone 的标志:

剪切闆的管理(剪貼闆傳輸工具)8

選擇這個 iPhone 标志,就能把内容發送到你的設備上啦。

總結起來總共隻有兩步:第一步,用 Xcode 打開文件;第二步,删了不帶 iPhone 的 item。然後你就可以安裝了,安裝以後修改一下 UUID 就可以,就這麼簡單。

2. 單設備,且模闆裡沒有你的設備

現在讓我們回到第二步,你發現了一個問題:你隻有一個設備,但不是 iPhone,比如說是個 iPod Touch,咋辦?

也不難。

這時候你要做的第一步:是把Config.plist裡的iphone全改成ipodtouch,而iPhone你可以改為iPod Touch,注意兩者有什麼區别,改完以後大概是這樣:

剪切闆的管理(剪貼闆傳輸工具)9

第二步:回到Config.plist所在的文件夾,你要把iphone.png改成ipodtouch.png

第三步:回到Config.plist所在的文件夾,把iphone.applescript改成ipodtouch.applescript

第四步:打開ipodtouch.applescript,把裡面的iphoneuuid改成ipodtouchuuid

然後你就可以關閉文件夾,雙擊 popclipext文件安裝插件,然後會看到熟悉的讓你替換 UUID 的界面。

3. 多設備,想搞懂原理

前面是為了讓大家減少壓力,快速上手,所以沒有講清楚。我覺得這種東西都是 Learning by doing, 一定要做,做着做着就明白了。在這一步我準備詳細講一下這個 Popclip 的插件是怎麼做的,讓大家對這個插件知其所以然。

第一步還是要下載模闆壓縮文件、解壓縮然後右鍵「顯示包内容」,但是現在我們要觀察這個文件夾裡的東西了:

剪切闆的管理(剪貼闆傳輸工具)10

  1. 圖片:這些圖片要是 .png格式的,因為它們将會是每一個動作的圖标,.png格式的圖片的特性是可以背景留白,你可以在Noun Project 的網站上找到高質量的圖标。你也可以不用圖片,這樣動作将沒有圖标,相應位置會是個黑塊兒。
  2. AppleScript 文件:這裡面就是一句 Command-C 的 Applescript 命令。
  3. Config.plist 文件:它是 Popclip 插件的核心文件,事情都是在這裡做的。

我們從 Config.plist 開始:

剪切闆的管理(剪貼闆傳輸工具)11

以發送剪貼闆到 iPhone 的插件為例,我們需要在乎部分的有圖上三個。

  • 橙色部分有兩個選項:
    • Extension Name: 這是這個插件的名字,最終會顯示在Popclip 的下拉菜單裡。
    • Extension Image File: 這是這個插件的圖标,圖标文件放在插件文件夾中,最終顯示在Popclip 的下拉菜單裡
    • 這兩個部分用我的模闆就可以,不用折騰
  • 藍色部分中,我們要在乎的有以下三個選項:
    • AppleScript File: 這項用于關聯插件文件夾中的 Applescript 的文件,所以這裡的名字和文件夾中相關的 Applescript 文件名一定要一緻。
    • Image File: 這是此動作在彈出菜單中顯示的動作圖标,就是在選中文字後顯示的設備圖标,跟上面的插件圖标不同。它後面的字符關聯了文件夾中的圖片文件,所以名字同樣不能出錯。
    • Title: 這是動作名稱,在彈出菜單中,鼠标懸停在動作上就會看到看到該動作的名稱。顯示出來的就是後面的字符,以圖中動作為例,顯示出的将是Send to iPhone
  • 紅色部分其實是個可選項,它存在的價值在于讓這個動作變得更靈活,我們稍後說 Apple Script 部分的時候會詳細說明原因。在這部分,我們需要注意的隻有三個選項:
    • 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 設為了一個變量,你随時可以修改:

剪切闆的管理(剪貼闆傳輸工具)12

尤其是當你要把設備分享給别人的時候,為了方便,可以讓對方直接在安裝後就修改 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:

  1. 基本 URL Schemes 就是打開 App 的 URL Schemes。詳細介紹見:URL Schemes 使用詳解的基本 URL Schemes 部分。↩︎
  2. UUID 是在電子設備中很常見的概念,它是 Universally Unique Identifier 的縮寫,中文翻譯是通用唯一識别碼。簡單說,就是硬件或者軟件為确定設備使用的一個名字,保證這個設備不會和其他設備重名。 ↩︎
  3. 從 iOS 發送到 Mac 理論上是不會失敗的,但是 iOS 之間和 Mac 傳輸到 iOS 是有失敗的可能的,這要看 iOS 是否因超時或者内存不足而中止了 Command-C,如果失敗,隻要在 iOS 上臨時再打開就好。當然,如果你有清後台的習慣,就是每次你都要把所有的 App 都退出才安心。那麼你每次用 Command-C 都要重新打開它一次。所以清後台是個很落後的習慣。 ↩︎
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved