iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)

打印 上一主题 下一主题

主题 984|帖子 984|积分 2952

摘要

剪贴板同步能够进步很多的效率,免除复制、发送、复制、粘贴的步调,只需要在手机上复制,就可以直接在电脑上 ctrl+v 粘贴,这方面在 Apple 设备中是做的非常好的,Apple 设备之间的剪贴板同步功能(Universal Clipboard)确实非常方便,它可以在 iPhone、iPad 和 Mac 之间无缝传输剪贴板内容,从而大大进步工作效率。
但是,iPhone 怎样和 Windows 剪贴板同步呢?其实方案有很多,有些是通过安装软件来实现,还有一些是通过输入法自带的剪贴板同步功能来实现,比方微信输入法就有剪贴板同步的功能
本文主要讲的是自己去实现一个单向同步,因为我还没实现双向同步,假如后面有方案我会更新本文。
技能原理

在 iPhone 中有一个叫做 快捷指令 的APP,这个APP提供了一些方法去操作你的 iPhone ,通过里面提供的API可以创建一个主动化脚本,这个脚本就可以获取剪贴板内容,既然能够获取到 iPhone 的剪贴板内容,那么就可以将剪贴板内容通过 快捷指令 的另一个API发送给 Windows 体系,然后在 Windows 体系通过一个 Python 脚本来实时监控 iPhone 的剪贴板更新,获取到新的剪贴板内容则主动设置 Windows 剪贴板。
捷径指令

快捷指令的截图如下:

创建个人主动化,设定一个触发条件,触发条件是当打开大概关闭某个APP的时间,执行这个主动化脚本。
主动化脚本的顺序是:

  • 获取剪贴板;
  • 对剪贴板的内容进行 URL 编码;
  • 利用文本将局域网的 HTTP接口 和颠末 URL编码的剪贴板内容 进行拼接;
  • 利用 获取URL内容 这个API将剪贴板内容发送给局域网API;
  • 竣事。
Windows Python脚本

在本地开启一个 php 服务器,通过一个简朴的 php 脚本来保存剪贴板的内容。
  1. <?php
  2. $content = $_GET['content'];
  3. file_put_contents('./content.txt', $content);
  4. echo '<h1>OK</h1>';
复制代码
比方在本地服务器 clipboard 目录下创建 index.php 将上面代码复制进去。
快捷指令发送数据过来的时间,就会将剪贴板内容保存在 content.txt 里面。
然后本地开启 Python 脚本去循环读取这个 content.txt 是否有新内容,假如有则设置到剪贴板。
clipboard.py
  1. import requests
  2. import time
  3. import pyperclip
  4. import tkinter as tk
  5. from tkinter import messagebox
  6. def fetch_content(url):
  7.     try:
  8.         response = requests.get(url)
  9.         response.raise_for_status()
  10.         response.encoding = 'utf-8'
  11.         return response.text
  12.     except requests.RequestException as e:
  13.         print(f"Error fetching content: {e}")
  14.         return None
  15. def show_floating_notification(message):
  16.     # 创建一个透明窗口靠近鼠标指针
  17.     root = tk.Tk()
  18.     root.overrideredirect(True)  # 去掉窗口边框
  19.     root.attributes("-topmost", True)  # 窗口置顶
  20.     root.attributes("-alpha", 0.8)  # 设置透明度
  21.     root.geometry(f"220x30+{root.winfo_pointerx()}+{root.winfo_pointery()}")  # 设置窗口大小和位置
  22.    
  23.     label = tk.Label(root, text=message, bg="#eee", fg="#666", font=("Arial", 11))
  24.     label.pack(expand=True, fill='both')
  25.    
  26.     # 自动关闭窗口
  27.     root.after(2000, root.destroy)  # 3秒后自动关闭窗口
  28.     root.mainloop()
  29. def monitor_content(url, interval=1):
  30.     last_content = None
  31.     while True:
  32.         current_content = fetch_content(url)
  33.         if current_content is not None and current_content != last_content:
  34.             print("New content detected:")
  35.             print(current_content)
  36.             pyperclip.copy(current_content)  # 将内容复制到剪贴板
  37.             print("Content has been copied to the clipboard.")
  38.             show_floating_notification("来自iPhone13的剪贴板内容")
  39.             last_content = current_content
  40.         time.sleep(interval)  # 间隔指定的秒数再检查
  41. if __name__ == "__main__":
  42.     url = "http://192.168.2.112/clipboard/content.txt"
  43.     monitor_content(url)
复制代码
别的说明

本方案仅为初次实行和研究是可行的,可进行深度优化,会变得更好用。
作者

TANKING

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表