犹如微软与苹果的关系一般, iOS 和 Windows 的剪切板的同步没有一个很好的解决方案。现在我们可以利用 iOS 的 Launch Center Pro,实现一键同步剪切板。

在 WWDC 2014 Keynote 的结语部分,苹果 CEO ,Tim Cook 如此强调,在不同的苹果设备上,给用户带来高度统一的体验的重要性。

You’ve seen how our operating systems, devices and services all work together in harmony, Together they provide an integrated and continuous experience across all of our products.

早在在苹果还未发布 iOS 8 和 OS X Yosemite 之前,苹果已经开始在自身的平台上尝试统一跨设备的操作体验。Handoff 只不过是将这种体验进化的更加彻底。苹果已经确定了未来几年要走的路,而身躯庞大且笨拙的微软却还在迷茫自己该何去何从。Windows Phone 在移动平台上的的落败,Winodws 8 的不伦不类更加注定了微软在如何整合自己的桌面与移动平台还有很长的路要走,微软的自身的弱势,也给用户带了较差的用户体验,甚至一个像样的能够在 Windows 与 iOS 间跨平台的剪切板同步工具都没有。

剪切板这一个不起眼却每天都需要高频率用到的功能,却被许多大公司所遗忘。不过苹果平台上已经有许多优秀的独立开发者开发的剪切板同步协作应用,如 Command-C、Instashare 、 Scribe 等等的应用,他们可以在 iOS 和 OS X 之间同步剪切板中的内容,虽然无法像 Handoff 那样无缝的协作,但至少体验上要比原始的 iMessege 传送或者类似的解决方案好得多。

以上的应用都是在苹果的平台上互相同步协作,如果同时是 iOS 和 Windows 用户似乎目前还没有非常好的解决方案。在网上找了半天无果后,决定自己动手,或许还更有效率。

工作原理

Dropbox 作为同步的服务,Windows 端使用 AutoHotKey 编写脚本进行剪切板的复制和粘贴,iOS 设备上则使用 Launch Center Pro(下称 LCP)里自带的 In-App Dropbox 功能实现剪切板的操作,虽然还无法达到无缝,但也算是一种高效的解决方案了。具体方式为:

在 PC 上只需按下 Shift+Ctrl+C 或者 Shift+Ctrl+X 就可以复制或者剪切,并且自动同步到 Dropbox ,而在 iOS 上只需在 LCP 中按下一个按键,既可将电脑剪切板上的内容复制到 iOS 的剪切板中。如果想将 iOS 剪切板同步到 Windows 上,打开 LCP 选择将剪切板内容发送到 PC 按钮,然后在 PC 中按下 Shift+Control+V 即可将 iOS 中剪切板的内容复制到 PC 上。整个同步过程,差不多在 5 秒钟左右。

由于是基于 Dropbox 的同步功能以及 LCP 对文字的复制粘贴操作,所以局限性就在于流畅的网络、设备必须同时在线,以及只能同步文本。

解决方案需要具备以下的条件:

  • Windwos 端需要安装 Dropbox 并能无障碍访问(考虑到近期情况,可能需强力穿墙工具辅助);

  • 在 Windows 端上下载我已经用 AutoHotKey 编译好的(.EXE)可执行文件;

  • iOS 端需要安装 Launch Center Pro。

Windows 端的部署

  1. 在 Windows 上安装 Dropbox 客户端,想必大家应该都可以自行解决,这里就不罗嗦了。

  2. 下载我已经用 AutoHotKey 编译好的可执行文件(度盘下载),代码参考官方文档1

  3. 运行下载好的程序,会跳出一个提示框,要求输入剪切板文件存放在 Dropbox 的路径。路径必须完整包括剪切板的文件名以及扩展名。假设我的 Dropbox 同步文件夹在 PC 中的路径是 E:\Dropbox ,而我希望我的剪贴板文件命名为 Dropclip.txt ,并且将剪切板文件放置在 Dropbox 文件夹的子目录 Apps\Lauch Center Pro\ 下。那么我填写的路径应该如下:

    E:\Dropbox\Apps\Launch Center Pro\Dropclip.txt

    path.png

  4. 填写完路径后,点击 OK 。任务栏的通知区域会出现一个剪切板的图标,PC 端的部署就完成了。

iOS 端的部署

  1. 打开已经安装好在 iOS 设备上的 LCP,并且添加一个 Action,目的是将 iOS 剪切板中的内容粘贴到 PC 的剪切板中。其他设置你喜欢填什么都可以,Name 我这里填的是 Send To Laptop,URL 栏目中输入如下 URL Scheme2:

    launch://dropbox/new?text=[clipboard]&path={{Apps/Launch Center Pro/}}&overwrite=YES&name={{Dropclip.txt}}

    如果你现在在 iOS 设备上阅读本文的话,也可以 点击这个链接 直接将这个 Action 安装在 LCP 中,如有需要也可以直接在 LCP 中修改。

    在URL Scheme 中 path={{Apps/Launch Center Pro/}} 花括号里的就是你的剪切板文件存放在 Dropbox 中的路径,因为我们这里 PC 中设置的路径是 E:\Dropbox\Apps\Launch Center Pro\Dropclip.txt ,所以去除掉表示本地目录的 E:\Dropbox\ 就只需填入 Apps/Launch Center Pro/ 即可。 而 name={{Dropclip.txt}} 花括号中的就是你命名的剪切板文件。需要根据自己的位置以及剪切板文件名进行修改,假设你放置的路径以及剪切板文件名和我一致就不需要修改了。

    配置完成后,应该差不多是这个样子的:

    Send to laptop.jpg

  2. 现在需要添加另外一个 Action ,目的是将 PC 剪切板中的内容复制到 iOS 的剪切板中。和上面的一样,其他设置可以任意,Name 栏目我这里填写的是「Copy From Laptop」,URL 栏目填入如下 URL Scheme:

    launch://dropbox/clipboard?path={{Apps/Launch Center Pro/Dropclip.txt}}

    URL Scheme 中 Dropclip.txt 的路径要和上面的 Action 以及 PC 上的 Dropclip 程序中填写的路径保持一致。在 iOS 设备中 点击这个链接 以直接安装 Action 。

    配置完成后如图:
    Copy From laptop.jpg

  3. 至此所有的配置都已经完成了。

扩展应用

在以上设置的基础上,我们只要稍加扩展,便能实现更多的同步功能,比如以下两种简单的应用扩展。

  • iOS 设备之间同步:虽然 iOS 上已经有了 Command-C 等剪切板同步应用,但是设备如果没有在同一个网络环境下的话则无法实现同步。其实我们可以在其他安装有 LCP 的 iOS 设备上添加两个和上面一样的 Action ,这样就能实现 iOS 设备之间的剪切板同步。

  • Safari 网址同步:如果想把移动端 Safari 上的页面发到 PC 上浏览或者想把 PC 上正在浏览的网页在移动端的 Safari 中打开的话,我们可以通过在 Safari 中添加两个 Bookmarklet(书签)来实现。

    1. 将下面的代码作为 URL 添加为一个书签,名称的话任意,取一个自己喜欢的就可以。在需要将 Safari 中正在浏览的页面发送到 PC 上继续浏览的话,只需点击 Safari 中的这个书签,便可以通过 LCP 将网址传送到 Dropbox 中的剪切板文件,完成传送后会自动返回到 Safari,无需手动操作。然后在 PC 上的浏览器中点击地址栏,按下 Shift+Control+V 就将网址复制完成了。

      javascript:window.location='launch://x-callback-url/dropbox/new?text='+encodeURIComponent(location.href)+'&path=Apps/Launch%20Center%20Pro/&name=Dropclip.txt&overwrite=YES&x-success='+encodeURIComponent(location.href)
      
    2. 同样将下面的代码作为 URL 添加为书签。当你想将 PC 上的网页传送到 iOS 设备上浏览的话,选中地址栏的网址,然后按下快捷键 Shift+Control+C 或者 Shift+Control+X 将网址复制或剪切并传送到 Dropbox 的剪切板文件中去。然后在 iOS 上的 Safari 中打开刚创建的书签,Safari 会自动跳转到 LCP 复制剪切板中的网址,完成复制后会自动返回 Safari,并打开刚才复制的网址。

      launch://x-callback-url/dropbox/clipboard?path=Apps/Launch%20Center%20Pro/Dropclip.txt&x-success=%5B%5Bclipboard%5D%5D
      

结语

如果你在 PC 上设置的以及 LCP 中两个 Action 中填写的路径是一致的话。那么现在如果你想将 PC 剪切板中的内容发送到 iOS 中的话,选中想要复制或者剪切的内容按下 Shift+Control+C 或者 Shift+Control+X ,然后稍等片刻 Dropbox 完成同步,在 iOS 中的 LCP 中找到第二次创建的 Aciton 按下,我这里是 Copy From Laptop ,那么就将 PC 剪切板中的内容同步到 iOS 的剪切板中了。相反的,如果想要将 iOS 剪切板中的内容同步到 PC 的剪切板中,只要在 iOS 中复制好要同步的内容,打开 LCP 选择第一次创建的 Action ,我这里是 Send to Laptop ,然后电脑端的 Dropbox 同步完成后,按下 Shift+Control+V 就可以将 iOS 剪切板中的内容粘贴到 PC 上。无法同步的同学,请仔细检查自己的路径是否统一。

其实,实现以上这些功能的过程看似很繁复,其实说的简单直白些,就是将文本存放在 Dropbox 中的一个文本文件中,然后对这个文本文件进行读取和写入的操作来实现剪切板的同步。谢谢能够看到这里的各位,因为这是一篇较为枯燥,且冗长的文章。最后如果对我用 AutoHotKey 编译好的可执行文件不放心,或者对我选择的图标3不喜欢的话,又或者你希望自定义自己的快捷键的话,可以自行编译或者再次创作,没有编程经验,全凭官方参考文档,请勿吐槽Orz:纯脚本代码度盘下载


  1. Alphabetical Command List for AutoHotkey
  2. Dropbox Actions – Contrast Help
  3. Tick mark approved clipboard Icon (PSD)