iOS vs Android 主屏幕快捷方式差异:expo-quick-actions 双平台 7 大关键点对比
2026/8/28 23:29:55 网站建设 项目流程

iOS vs Android 主屏幕快捷方式差异:expo-quick-actions 双平台 7 大关键点对比

【免费下载链接】expo-quick-actionsAdd home screen quick actions / shortcuts and custom icons to your Expo app项目地址: https://gitcode.com/gh_mirrors/ex/expo-quick-actions

📱expo-quick-actions是一个为 Expo 应用添加主屏幕快捷方式(Home Screen Quick Actions)动态应用图标的 React Native 库。一次安装,即可在 iOS 和 Android 上让用户长按 App 图标快速直达核心功能。但两个平台在数量、图标、能力上差异不小,本文带你用7 个关键点快速吃透 iOS 与 Android 主屏幕快捷方式的异同。

🧭 先看懂:什么叫"主屏幕快捷方式"

  • iOS:长按 App 图标弹出的快捷菜单(Quick Actions)
  • Android:长按图标弹出的动态快捷方式(Dynamic Shortcuts)

expo-quick-actions 用统一的 JS API 抹平了底层差异:QuickActions.setItems([...])一行代码,双平台生效。示例代码见 App.tsx。

关键点 1:快捷方式数量上限不同

平台上限机制
iOS固定 4 个系统写死,见 ExpoQuickActionsModule.swift 中"maxCount": 4
Android动态获取(如 Pixel 6 为 15)启动时从系统ShortcutManager读取

👉 开发者建议:两个平台官方都推荐最多 4 个快捷方式。想拿到真实上限,读QuickActions.maxCount即可。

关键点 2:iOS 支持"静态快捷方式",Android 不支持

  • iOS:通过 withIosStaticActions.ts 配置插件,可直接把快捷方式写入 Info.plist,App冷启动前就可见
  • Android:目前仅支持运行时动态设置(setItems),因为原生静态快捷方式无法携带复杂 Intent 参数

这是双平台最"不对等"的一点:iOS 用户装完 App 立刻能看到快捷方式,Android 用户需等 App 运行一次后才出现

关键点 3:副标题(subtitle)只有 iOS 生效

Action对象里的subtitle字段:

  • iOS:会显示在快捷方式标题下方(localizedSubtitle
  • Android:数据可以传递,但快捷方式气泡上不显示

所以跨平台配置时,别指望 Android 端能展示副标题。

关键点 4:图标体系完全两套逻辑

iOS 图标(单色模板风格):

  • 28 个内置系统图标(compose、search、home…),映射表见 ExpoQuickActionsModule.swift
  • symbol:前缀 → SF Symbols(如symbol:heart.fill,仅限 iOS)
  • asset:前缀 → 自定义图,会被系统压成单色并裁剪成圆形

Android 图标(全彩自适应风格):

  • 图标解析为drawable/mipmap资源,支持asset:前缀
  • 配置插件 withAndroidAppIcon.ts 可自动生成自适应图标(前景图 + 背景色),覆盖 5 种分辨率
  • 效果示例:

⚠️ 注意:iOS 快捷方式避免使用品牌彩色图标,和系统注入的"编辑主屏幕""分享"等单色图标放在一起会很突兀,官方建议优先用 SF Symbols。

关键点 5:Android 快捷方式可"钉"到桌面,iOS 不行

这是 Android 的独特能力:用户可以把长按菜单里的快捷方式固定到主屏幕,变成独立的入口图标。

  • Android 端QuickActions.isSupported()会检测系统是否支持"钉住"(isRequestPinShortcutSupported,见 ExpoQuickActionsModule.kt)
  • iOS 端该值恒为true(iOS 没有钉住场景)

👉 设计启示:Android 快捷方式应视为 App 的"备选入口",图标和命名要足够独立完整;iOS 则更像菜单项。

关键点 6:系统支持门槛不一样

维度iOSAndroid
最低系统全版本支持Android 7.0(API 24)+
厂商依赖部分国产 ROM 表现不一,需真机验证
启动识别AppDelegate.swift 捕获.shortcutItemQuickActionsReactActivityLifecycleListener.kt 解析 Intent

双平台都会把"用户点了哪个快捷方式"回填到QuickActions.initial,逻辑统一。

关键点 7:应用图标切换(彩蛋功能)

expo-quick-actions/icon还附带动态更换 App 图标能力,双平台实现也不同:

  • iOS:走系统"替代表图标"(Alternate Icons),支持浅色/深色双图标
  • Android:走多图标(Activity Alias)机制;⚠️切换时 App 会被关闭

示例工程 AppIconTest.tsx 提供了三套主题切换演示,配置见 app.json:

📊 7 大关键点对比总表

#对比项iOSAndroid
1数量上限固定 4动态获取(最多 15)
2静态快捷方式✅ 写入 Info.plist❌ 仅动态
3副标题显示
4图标风格单色模板 / SF Symbols全彩自适应图标
5钉到桌面
6系统门槛全支持7.0+,视 ROM
7换 App 图标替代表图标Activity Alias(切换即关 App)

🗺️ 源码地图:想深入时看哪里

模块路径
iOS 快捷方式核心ExpoQuickActionsModule.swift
Android 快捷方式核心ExpoQuickActionsModule.kt
iOS 静态动作插件withIosStaticActions.ts
Android 图标生成插件withAndroidAppIcon.ts
iOS 图标切换ExpoAppIconModule.swift
完整示例App.tsx

💡版本提醒expo-quick-actions与 Expo SDK 需配套使用(如 Expo 56 ↔ 6.0.2),完整对照表见 README.md。


一句话总结:写一份配置,setItems一次调用,expo-quick-actions 帮你搞定 90% 的双平台主屏幕快捷方式;剩下 10% 的差异——数量、副标题、图标风格、钉住能力——正是本文的 7 个关键点,照着调参即可。

【免费下载链接】expo-quick-actionsAdd home screen quick actions / shortcuts and custom icons to your Expo app项目地址: https://gitcode.com/gh_mirrors/ex/expo-quick-actions

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询