08-超级App软件平台@路由规则设计-【软件体系与多平台路由对照】

6 阅读9分钟

本专题为软件平台的路由规则设计不限于移动端,涵盖 移动端Web电脑(桌面)手表与手环等智能穿戴。涉及的软件体系覆盖:iOSAndroid OSHarmonyOSFlutterMacOSWinOSWebAppReactNative AppWatchOS 及智能穿戴形态。本文给出各平台在深链接、路由表、导航方式上的对照与要点,便于统一路由协议与适配层设计。


一、设备形态与平台定义

1.0 端态分类(不限于移动端)

端态包含设备/形态本专题对应平台
移动端手机、平板iOS、Android、HarmonyOS、Flutter、ReactNative
Web浏览器、PWAWebApp
电脑(桌面)台式机、笔记本MacOS、WinOS
手表、手环等智能穿戴智能手表、手环、其他穿戴设备WatchOS、HarmonyOS 穿戴等

1.1 平台列表与技术栈

平台类型主要技术栈典型路由/导航 API
iOS移动端原生Swift / Objective-C, UIKit / SwiftUIURL Scheme, Universal Links, UINavigationController, Router 单例
Android OS移动端原生Kotlin / Java, Activity / Fragment, JetpackIntent + intent-filter, App Links, ARouter / TheRouter
HarmonyOS移动/多设备原生ArkTS / ArkUI, Stage 模型;超级终端与分布式能力Want / 隐式 Want, 路由注解, 页面栈;可结合分布式任务调度做跨设备 path 迁移
Flutter跨平台 UI 框架Dart, WidgetNavigator 1.x/2.0, go_router, app_links
MacOS桌面端原生Swift / Objective-C, AppKit / SwiftUIURL Scheme, NSApplication, 窗口与 ViewController 栈
WinOS桌面端C# / C++, WinUI / WPF / UWP协议关联, 启动参数, 框架内路由(如 Frame.Navigate)
WebAppWeb 应用HTML/JS, React / Vue / Angular, SPA 路由History API, Hash 路由, React Router / Vue Router
ReactNative App跨平台移动JavaScript/TypeScript, Native 容器Linking API, React Navigation linking
WatchOS手表等穿戴Swift, WatchKit / SwiftUI简化 URL Scheme, 与 iPhone App 协同
手环等穿戴手环、其他穿戴厂商 SDK / 定制系统多与手机 App 协同,路由可简化或复用 path 协议

1.2 平台与路由专题关系(思维导图)

mindmap
  root((软件平台路由 多端))
    移动端
      iOS Android HarmonyOS
      Flutter ReactNative
    Web
      WebApp History / Hash
    电脑 桌面
      MacOS WinOS
    手表 手环 智能穿戴
      WatchOS HarmonyOS 穿戴

二、深链接与系统唤起能力对照

2.1 各平台深链接机制

平台自定义 Scheme / 等价机制可验证 HTTPS 深链接备注
iOSURL Scheme(CFBundleURLSchemes)Universal Links(AASA)系统级,未安装无反馈
AndroidIntent Filter + custom schemeApp Links(assetlinks.json)6.0+ 可免选择框
HarmonyOSWant scheme / ability 的 uri支持 HTTPS 关联(需配置)与 Android 思路相近
Flutter依赖宿主:iOS/Android 配置 + app_links同左,app_links 统一入口多端共用 Dart 层路由
MacOSURL Scheme(Info.plist)Universal Links(同 iOS)与 iOS 配置方式类似
WinOS协议关联(注册表/包清单)无统一 AASA 类标准多为自定义协议或启动参数
WebApp不适用(本身在浏览器)同源 / 多域即“深链接”History 或 Hash 路由
ReactNative使用原生 iOS/Android Scheme 与 App Links同左,Linking + React NavigationJS 层统一处理 URL
WatchOS简化 Scheme,常与 iPhone App 互通一般不单独配 Universal Links界面简单,路由层级少
手环等穿戴多通过手机 App 或厂商协议视厂商能力路由层级少,可与 Watch 类似处理

2.2 深链接入口与路由统一(流程图)

flowchart TB
    subgraph 外部入口
        E1[iOS / MacOS / WatchOS]
        E2[Android / HarmonyOS]
        E3[Web 打开链接]
    end
    subgraph 系统层
        S1[Scheme / Universal Link / Want / 协议]
        S2[唤起对应平台 App]
    end
    subgraph App 内
        A1[接收 URL / Intent / Want]
        A2[解析 path + query]
        A3[统一 Router.navigate]
    end
    E1 --> S1
    E2 --> S1
    E3 --> S1
    S1 --> S2 --> A1 --> A2 --> A3

三、App 内路由与导航方式对照

3.1 路由表与导航 API

平台路由表形态典型导航方式声明式/命令式
iOSMap / 注册 Block 或 VC 类型pushViewController, present, replace多为命令式;可自建状态驱动栈
AndroidMap / 注解生成表(ARouter)startActivity, FragmentTransaction命令式;Jetpack Navigation 可声明式
HarmonyOS路由表或注解router.pushUrl, 页面栈命令式为主
FlutterGoRoute 列表 / 自定义 RouteTableNavigator.push, go_router.go/push声明式(Navigator 2.0)
MacOS类似 iOS,Window/VC 栈show, present, 窗口管理命令式
WinOS框架内路由表(如 Frame)Frame.Navigate, 启动参数命令式或框架声明式
WebAppReact Router / Vue Router 配置history.push, router.push声明式(状态即 URL)
ReactNativeReact Navigation 配置navigation.navigate声明式(state 驱动)
WatchOS简单 Map 或 层级界面push, present命令式,层级少

3.2 统一路由协议在各平台的落地方式

  • path + query:九端均可用「path + query」作为统一语义;各端适配层将 path 映射到本平台页面功能(服务、动作、弹窗)。
  • 页面跳转:push / replace / present;WebApp 对应 pushState/replaceState 或 hash 变更;WatchOS 可只实现 push/pop。
  • 功能唤醒:getService(获取服务实例)、invokeAction(执行动作/能力)、openModal(弹窗/浮层),与页面跳转共用同一路由表,按路由项类型分发;各端适配层实现对应 API。
  • 拦截器链:除 WebApp 外,各端均可在「查表 → 执行」之间插入拦截器(鉴权、埋点、降级);WebApp 可用路由守卫(beforeEach)等价实现。

四、各平台适配层要点摘要

平台适配层职责关键 API / 配置
iOS解析 URL → path/params;查表 → 创建 VC;push/presentAppDelegate openURL;NSUserActivity;UINavigationController
AndroidIntent.data → path/params;查表 → Intent;startActivityintent-filter;App Links;Activity 栈
HarmonyOSWant.uri → path/params;查表 → 目标 Ability;router.pushUrlmodule.json5 abilities;Want 参数
Flutterapp_links 收 URL → path/params;go_router.go/push 或 NavigatorMaterialApp.router;DeepLinkHandler
MacOS同 iOS(URL Scheme + Universal Links);NSWindow/NSViewControllerInfo.plist;AppDelegate
WinOS协议/启动参数 → path/params;Frame.Navigate 或 主窗口导航包清单协议;OnActivated
WebApp直接使用 path = location.pathname,query = searchParamsHistory API;Vue Router / React Router
ReactNativeLinking.getInitialURL/ addEventListener → path/params;React Navigationlinking 配置;NavigationContainer
WatchOS简化 URL 或 与 iPhone 同步的 path;WKInterfaceController 导航与 iOS App 通信;简化路由表
手环等穿戴与手机 App 或厂商协议同步 path;界面层级少简化路由表或复用主 App path 协议

五、同体系跨端跨平台协同

同体系:同一产品/业务域下的多端应用(如同一款产品的 iOS、Android、Web、手表、桌面)。跨端跨平台协同要求路由在体系内协议统一、同一 path 多端语义一致,并支持设备间接力与状态同步。

协同能力说明实现要点
协议统一各端使用同一 path、query、路由类型(page/action/service/modal)规范制定体系内 path 命名规范(如 /app/.../action/...),各端适配层按规范映射到本端
同一链接多端一致同一 URL 在 Web 打开为 Web 页、在 App 打开为 App 页、在手表打开为手表页,业务目标一致深链接与 Web 使用相同 path;各端路由表对同一 path 指向等价业务;未安装时 Web 落地页,安装后 App 打开同一 path
跨端互跳与续传Web 调起 App、App 内打开 H5、「在电脑上继续」等Universal Links / App Links / Scheme 传 path+query;服务端或本地记录「当前 path」供他端续传
设备间路由同步手表与手机、手机与电脑等同账号多设备手表操作 path 通过 Watch Connectivity 等同步到手机打开;或服务端存储「用户当前 path」多端拉取
配置与表跨端一致路由表、动态下发、降级在体系内统一管理服务端按端态/版本下发路由配置;path 冲突检测、灰度、降级策略体系内统一

协同建立在统一 path 协议各端适配层之上:协议约定「说什么」,适配层约定「各端怎么做」;同体系内 path 语义一致,跨端链接与设备间协同才可落地。


5.1 参考:鸿蒙超级终端思想与路由设计的对应

鸿蒙超级终端(HarmonyOS 超级终端)是华为提出的多设备协同理念:手机、平板、PC、手表、智慧屏等通过同一账号组成「一台超级终端」,实现任务迁移、数据同步、能力共享,而非简单的设备互联。[^HOS]

超级终端概念含义与本专题路由设计的对应
分布式软总线设备自动发现、安全连接,多协议(蓝牙、Wi-Fi 等)统一抽象路由不直接实现总线,但统一 path 协议使各端对「同一目标」有统一寻址,便于在应用层做跨端调用与任务迁移
分布式数据管理跨设备数据实时同步、统一访问路由表、动态配置、当前 path/状态在体系内统一或按端下发,相当于应用层「状态与配置」的跨端一致
分布式任务调度任务/界面在设备间迁移(如手机看一半到平板继续)、硬件能力跨设备调用同一 path + query 在 A 端打开与在 B 端打开指向同一业务;设备间 path 同步与接力(如手表点某 path 同步到手机打开)即「任务迁移」的应用层实现
一个账号、多设备一体多设备以用户为中心形成逻辑一体同体系内 path 协议统一、同一链接多端一致打开、配置与表跨端一致,支撑「一处定义、多端生效」的体验

将路由设计为统一 path 协议 + 各端适配层,与超级终端「多设备一体」的思想一致:path 作为跨端契约,任务续传、设备间接力可通过传递 path+query 与上下文实现;在非鸿蒙生态(如 iOS/Android/Web)也可通过自有通道(如 Watch Connectivity、Universal Links、服务端会话)实现类似「超级终端」的跨端协同。
[^HOS] 华为消费者业务支持文档、华为云社区等公开介绍:超级终端实现多设备协同;鸿蒙分布式技术。

flowchart TB
    subgraph 同体系
        R[统一 path + query 协议]
    end
    subgraph 多端
        M[iOS / Android / HarmonyOS]
        W[Web]
        D[MacOS / WinOS]
        H[Watch / 穿戴]
    end
    subgraph 协同效果
        C1[同一链接 多端一致打开]
        C2[Web↔App 互跳 续传]
        C3[手表↔手机 path 同步]
    end
    R --> M
    R --> W
    R --> D
    R --> H
    M --> C1
    W --> C1
    M --> C2
    W --> C2
    M --> C3
    H --> C3

六、选型与扩展建议

  • 统一协议:九端均采用「path + query + 路由类型 + navigate 方式」作为统一路由协议,便于同体系跨端协同、文档、运营与监控一致。
  • 适配器:在通用路由组件(见 07)中为每平台实现 IPlatformRouterAdapter(openPage / replacePage / presentPage / resolveService / invokeAction / openModal),必要时为 WatchOS 做精简实现。
  • 深链接:iOS / Android / HarmonyOS / MacOS / ReactNative(宿主)需在系统层配置 Scheme 或 HTTPS 关联;Flutter / ReactNative 在框架层统一收口后调用同一 Router。
  • WebApp:与 Native 共用 path 规范时,可同一套 path 在 H5 与 Native 间跳转,实现「一条 path、多端一致」,支撑同体系协同。
  • 手表、手环等智能穿戴:路由层级少,可复用与手机/主 App 一致的 path 协议,适配层做精简实现;通过设备间通道与主端同步 path,实现协同。

七、参考文献与延伸阅读

  • 本专题 01~07:总纲、URL Scheme、Universal Links、组件化路由、声明式路由、超级 App 体系、通用组件设计。
  • Apple:Defining a Custom URL Scheme;Supporting Universal Links。
  • Android:Create deep links;Verify App Links。
  • React Native:Linking;React Navigation Deep Linking。
  • Flutter:Deep linking;go_router。
  • HarmonyOS:Want 与 Ability 路由相关官方文档。