Apple Handoff 接力:Mac 唤起应用时 iPhone 为什么也会出现
2026-08-27
949 字约 4 分钟
...这是 Apple 的 Handoff(接力) 功能,属于 Continuity 连续互通 体系的一部分。Mac 端有应用启动时,系统会把当前 App 的活动上下文通过 iCloud 推送到其他登入同一 Apple ID 的苹果设备,iPhone 锁屏左下角弹出对应图标,点击可从刚才的位置继续。
三个触发条件(缺一不可)
| 条件 | 作用 |
|---|---|
| 同 Apple ID | 身份一致,知道"接力给谁" |
| 蓝牙开启 | BLE 心跳,用于发现附近设备 |
| WiFi / 网络可达 | 实际数据走 iCloud 传输 |
任何一项关闭都不会触发。Mac 端和 iPhone 端都要满足。
底层原理
把它类比成 React 应用的状态同步:
Mac 端 iCloud iPhone 端
┌──────────┐ 序列化 ┌────────┐ 反序列化 ┌──────────┐
│ App 状态 │ ──────► │ 状态包 │ ──────────► │ 还原状态 │
└──────────┘ └────────┘ └──────────┘
│ ▲
└──── BLE 广播"我在这" ───────────────►
(仅发现机制)
三层机制:
- BLE 发现层:蓝牙低功耗只做"心跳广播",告诉附近同账号设备"我刚有活动",并不传输数据
- NSUserActivity 序列化:应用把当前 activity 打包(
activityType+userInfo+webpageURL),相当于JSON.stringify(state) - iCloud 加密传输:把状态包推到云端,另一台设备拉下来
JSON.parse还原
iPhone 检测到匹配的 activityType 就在锁屏显示接力入口,用户点击即 hydrate。
涉及的相关能力(同一基础设施)
- Universal Clipboard:跨设备剪贴板共享
- Auto Unlock:Apple Watch 解锁 Mac
- AirDrop 接力:iPhone 来电在 Mac 上接听
- Sidecar:iPad 作为 Mac 第二屏
- Continuity Camera:iPhone 给 Mac 当摄像头
底层都是 BLE + iCloud + 同 Apple ID 这套基础设施的不同应用。
面试答题模板
这是 Apple 的 Handoff 接力,本质是跨设备的状态同步。触发需要同 Apple ID + 蓝牙 + 网络三件套。原理上蓝牙负责发现、iCloud 负责传输、应用通过 NSUserActivity API 把自己当前状态序列化上传,另一台设备的同款 App 拉到后还原。Continuity 的其他能力底层都是这一套基础设施的不同应用。
关闭方法(如果不想被打扰)
系统设置 → 通用 → 隔空播放与接力 → 关闭"接力"(macOS Monterey+ 路径,不同版本略有差异)
如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →mac2025-09-23
mac解决 Telegram无法连接
问题描述: 1、macOS上使用了 V2ray 客户端 或 ClashX 客户端,能访问 Google,但打开 Telegram 后会一直卡在 Telegram is connecting to Proxy 界面,Telegram 无法同步消息。 为什么telegram一直在转圈加载呢,因为 mac telegram客户端默认不遵从系统代理,跟 windows telegram客户端不一样,mac需进行下面代理配置 解决方案:重新配置t...
学习
mac2025-07-06
Mac系统 .zprofile、.zshrc 和 .bash_profile 区别及作用
在 macOS 中,.zprofile、.zshrc 和 .bash profile 是三个重要的配置文件,分别用于不同的 shell 和场景。下面详细介绍它们的作用和区别: 1. 作用 : 主要用于 Zsh shell 的全局配置。 它在每次用户登录时都会被读取。 通常用于设置环境变量、路径和其他全局配置。 适用于所有 Zsh shell 的启动过程。 示例内容 : 2. 作用 : 是 Zsh shell 的用户级配置文件。 它在每次...
学习
mac2025-06-02
tar 提取文件时提示 Ignoring unknown extended header keyword
在 Linux 上使用 tar 提取文件时出现下列提示: 当 tar 文件在 macOS 上创建,在 Linux 上提取时,就会发生这种情况。原因是 macOS 默认使用 "),而 Linux 默认使用 。BSD tar 在创建归档文件的同时加入了一些 macOS 文件特有的扩展属性,如 ,这些信息不被 GNU tar 所识别。 也就是说,BSD tar 在保留文件特殊属性上比 GNU tar 更全面。然而这些属性可能会导致 GNU t...
学习
mac2025-05-08
Homebrew 配置 brew install 国内镜像源指南
本文会提供详细的配置步骤,通过国内镜像源加速 Homebrew 的 操作。🎯 正文 为什么需要配置国内镜像源? 在国内,使用 Homebrew 时,由于网络原因,往往会遭遇下载速度极慢或者根本无法连接的问题。😓 这不仅浪费时间,还可能影响工作进度。幸运的是,Homebrew 支持自定义镜像源,因此我们可以通过设置国内镜像来提高下载速度。 通过设置 国内镜像源 ,你可以在 brew install 时享受到更快的下载速度。💨 配置步...
学习
mac2024-02-27
缩小 macOS 菜单栏各个图标之间的间距
新款的 Macbook 都有刘海,现在有一些软件可以隐藏刘海,但是缩小了一点屏幕的高度,当年苹果说这点高度是他们“送”给用户的。还有一些小工具,可以隐藏部分图标,但是如果要使用隐藏的图标,那就要两步动作。 今天看到一篇 ,可以缩小每个图标之间的间隔,这样就可以显示更多的图标,如果图标非常多,那还是会被刘海挡住的,我们先来看看效果。这是 自带的命令,无需安装第三方工具。 这是缩小图标间距之前,看不到 notion 的图标: 这是缩小图标间...
学习
mac2024-02-19
macOS查看并修改终端显示名称以及主机名和计算机名
之前通过“系统设置 通用 关于本机”修改了“名称”,本以为会全盘修改所有名称,但是在终端却显示成“192”,这难免看起来会有些奇怪。 可以通过ps(Prompt Sign)命令查看终端用的是Bash Shell还是Zsh SHell,具体看终端头部显示的是“bash”还是“zsh”,然后修改“/etc/zshrc”或“/etc/bashrc”文件,但是这个语法看得一头雾水,什么“n表示用户名,m表示主机名”,还有“h代表主机名,u代表用...
学习
评论
请登录后发表评论
去登录