clipboard-online – 在 Windows 和 iOS、Android 之间分享剪切板

clipboard-online 是一个在 Windows 和 iOS 之间分享剪切板的 Windows 工具,iOS 通过快捷指令实现。另外也适用于 Windows 与 Android 设备之间。@Appinn

clipboard-online - 在 Windows 和 iOS、Android 之间分享剪切板

@xiozf 同学在很早前就分享了这款软件,以及使用方法:https://meta.appinn.net/t/topic/20322

Clipboard-online:在不同设备之间分享剪贴板。附 iOS 和 Android 设备分享方法。

前言

缘起于 @feeshy 分享的跨平台跨设备剪贴板推送/同步方案合集,受益良多。根据自己的需求折腾了好多 app,最后结果在此分享。

介绍

clipboard-online 是一款 Windows 平台应用,它将本机剪贴板暴露于 HTTP 端口,其他设备通过发送 HTTP 请求来获取、发送剪贴板。而其他设备发送剪贴板后,PC 可以直接粘贴。现已支持文本、文件、图像。

开始

1、到项目首页下载应用并运行。2、记下 PC 内网 IP。

iOS 设备获取、发送剪贴板

  • 获取 PC 剪贴板内容:
    1. 安装该快捷指令
    2. 如开启鉴权,请记得设置和 PC 一样的 authkey。
  • 发送剪贴板内容至 PC 剪贴板:
    1. 安装该快捷指令;如开启鉴权,请记得设置和 PC 一样的 authkey。
    以上两个快捷指令链接均来自 clipboard-online 项目中文页面

安卓设备获取、发送剪贴板

需安装 HTTP Shortcuts 应用,介绍见此

  • 获取 PC 剪贴板内容:
    1. 将以下内容保存为 .json 文件(编码方式选 UTF-8)并拷贝到手机上;
    2. 到 app 首页,点击”导入/导出”,找到文件导入;
    3. 编辑刚导入的快捷方式,将 IP 地址换为你 PC 的内网 IP;
    4. 如开启鉴权,请编辑快捷方式,点击”脚本编写”,在”执行前运行”栏目里按提示填写和 PC 一致的 authkey。
{
  "categories": [
    {
      "id": "9b0db1bd-87b8-456b-a741-001b0cbe2282",
      "name": "快捷方式",
      "shortcuts": [
        {
          "acceptCookies": false,
          "codeOnPrepare": "const timestamp \u003d parseInt(new Date()/30000);\n\nconst auth \u003d \u0027我的密匙.\u0027 + timestamp ;\n//把“我的密匙”4个字换成你的authkey,单引号内最后一个.要保留\n\nconst hashkey \u003d hash(\u0027md5\u0027, auth);\nsetVariable(/*[variable]*/\"4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f\"/*[/variable]*/, hashkey);",
          "codeOnSuccess": "const aa \u003d JSON.parse(response.body).type;\n\nif (aa \u003d\u003d \u0027text\u0027) {\n  const bb \u003d JSON.parse(response.body).data;\n  copyToClipboard(bb);\n  showToast(\"已复制:\" + bb);\n} else {\n  showToast(`文件名:${JSON.parse(response.body).data[0].name}\\nHTTP Shortcuts不支持该类型传输`);\n}",
          "headers": [
            {
              "id": "28bb17a3-1129-41b3-aafb-286ab74212f6",
              "key": "X-API-Version",
              "value": "1"
            },
            {
              "id": "33122791-5436-47ee-85aa-381e5246614e",
              "key": "X-Client-Name",
              "value": "5a6J5Y2T5omL5py6"
            },
            {
              "id": "69406f7e-7ffa-4394-8531-e001b56e24df",
              "key": "X-Auth",
              "value": "{{4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f}}"
            }
          ],
          "iconName": "flat_color_brightness_4",
          "id": "1426d5aa-56c2-4bd3-b0ff-da06b86a1cbd",
          "name": "获取PC剪贴板",
          "responseHandling": {
            "id": "2520aa51-42fc-4ebd-b354-23dd7f3b3da9",
            "successOutput": "none"
          },
          "timeout": 1000,
          "url": "http://192.168.1.2:8086"
        }
      ]
    }
  ],
  "variables": [
    {
      "id": "4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f",
      "key": "auth",
      "value": "3866123255535f13a22ea19a48551ec3"
    }
  ],
  "version": 45
}
  • 发送文字至 PC 剪贴板:
    1. 展开以下折叠内容保存为 .json 文件(编码方式选 UTF-8)并拷贝到手机上;
    2. 到 app 首页,点击”导入/导出”,找到文件导入;
    3. 编辑刚导入的快捷方式,将 IP 地址换为你 PC 的内网 IP;
    4. 如开启鉴权,请编辑快捷方式,点击”脚本编写”,在”执行前运行”栏目里按提示填写和 PC 一致的 authkey。
{
  "categories": [
    {
      "id": "9b0db1bd-87b8-456b-a741-001b0cbe2282",
      "name": "快捷方式",
      "shortcuts": [
        {
          "acceptCookies": false,
          "bodyContent": "{\"data\": \"{{56a89499-6696-4004-8ae9-67d2be339ad9}}\"}",
          "codeOnPrepare": "const timestamp \u003d parseInt(new Date()/30000);\n\nconst auth \u003d \u0027我的密匙.\u0027 + timestamp ;\n//把“我的密匙”4个字换成你的authkey,单引号内最后一个.要保留\n\nconst hashkey \u003d hash(\u0027md5\u0027, auth);\nsetVariable(/*[variable]*/\"4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f\"/*[/variable]*/, hashkey);",
          "codeOnSuccess": "showToast(\"已发送\");",
          "contentType": "application/json",
          "headers": [
            {
              "id": "90f1eb7e-3fd6-400d-9501-4d0f3f853ed3",
              "key": "X-API-Version",
              "value": "1"
            },
            {
              "id": "f98d0ab7-6a3f-4151-93a3-c49d30314852",
              "key": "X-Client-Name",
              "value": "5a6J5Y2T5omL5py6"
            },
            {
              "id": "cee115a0-f740-4c2f-9a9c-f721c4c5dc09",
              "key": "X-Auth",
              "value": "{{4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f}}"
            },
            {
              "id": "13ededd7-22ad-4431-a13e-08dd62f824ce",
              "key": "X-Content-Type",
              "value": "text"
            }
          ],
          "iconName": "flat_color_brightness_4",
          "id": "91bb596a-a3d7-423f-abd4-bdf4b9e2c5ce",
          "method": "POST",
          "name": "推至PC剪贴板",
          "responseHandling": {
            "id": "305bd9cb-0cdb-495a-b39d-9fdb24609f6e",
            "successOutput": "none"
          },
          "timeout": 1000,
          "url": "http://192.168.1.2:8086"
        }
      ]
    }
  ],
  "variables": [
    {
      "id": "4b04bb1d-5b8b-4830-9f7b-b2fef71bd44f",
      "key": "auth",
      "value": "3866123255535f13a22ea19a48551ec3"
    },
    {
      "flags": 1,
      "id": "56a89499-6696-4004-8ae9-67d2be339ad9",
      "key": "Content_noencode",
      "title": "要发送的内容",
      "type": "text"
    }
  ],
  "version": 45
}

延伸

如果将本机暴露到公网,则随时都能操作剪贴板内容,而不受限于局域网。如这样操作请一定要开启鉴权,以稍微增加一点安全性。

另外,图片及文件的支持也已加入,采用的是将二进制文件进行 Base64 编码再传输。iOS 一切正常,安卓的 HTTP Shortcuts 应用则支持文字类型的 Base64 编码/解码,不支持文件类型的 Base64 编码/解码,比较可惜。

clipboard-online 开源首页HTTP Shortcuts 开源首页 |


后记

还是那句话:人呢,总是有许多奇奇怪怪的需求,正因为这些不一样的需求,才催生出各式各样的 app 。这些 app 解决的痛点在另一个人眼里也许就不是问题。这次折腾很久,效果差强人意,特此分享。

更新记录

2021.08.04 clipboard-online 更新至0.2.5,相应配套也更新支持。
2020.11.XX 初稿、二稿。

一条留言

写留言