走向移动:Android 和 iOS
进军移动端:Android 和 iOS
Section titled “进军移动端:Android 和 iOS”Tauri v2 最具革命性的功能之一,就是能够将你为桌面应用程序编写的完全相同的 Web 前端和 Rust 后端,直接运行在移动设备上。这使 Tauri 从一个桌面框架转变为真正的跨平台解决方案。
移动开发先决条件
Section titled “移动开发先决条件”在深入之前,请确保你已完成第 2 章中的移动端设置步骤。移动开发需要大量平台特定的工具:
- Android:你需要配置好 Android Studio 和 Android SDK 环境变量(JAVA_HOME、ANDROID_HOME)。
- iOS:你需要一台安装了 Xcode 的 macOS 设备。iOS 开发在 Windows 或 Linux 上是不可能的。
初始化移动项目
Section titled “初始化移动项目”Tauri 默认不会在你的项目中生成大量的移动端文件。你需要明确地初始化它们。这个过程会在 src-tauri/gen 文件夹内创建原生项目结构(Android 的 Gradle 项目和 iOS 的 Xcode 工作区)。
在你的终端中运行以下命令来搭建移动目标:
tauri android inittauri ios init在初始化过程中,命令行界面 (CLI) 可能会提示你安装特定的 Rust 目标 (例如 aarch64-linux-android 或 aarch64-apple-ios)。请允许它进行安装。
在模拟器和设备上运行
Section titled “在模拟器和设备上运行”一旦初始化完成,在移动模拟器上运行你的应用程序与在桌面上运行非常相似。Tauri CLI 会处理将你的 Rust 代码编译成库、打包前端以及启动原生应用程序。
# 针对 Android 模拟器或已连接设备tauri android dev
# 针对 iOS 模拟器或已连接设备tauri ios dev当你运行这些命令时,Tauri 会尝试查找已连接的设备或正在运行的模拟器。如果未找到任何设备,它可能会提示你选择一个。
移动端特殊注意事项
Section titled “移动端特殊注意事项”尽管代码是共享的,但用户体验 (UX) 是不同的。以下是一些需要记住的关键调整:
- 触控与鼠标:移动设备上没有“悬停”状态。请确保你的用户界面依赖于触控(点击)交互。
- 安全区域:移动屏幕有刘海和圆角。使用 CSS 环境变量,例如
env(safe-area-inset-top),以防止你的内容被状态栏遮挡。 - 后端限制:虽然大多数标准的 Rust 代码都能完美运行,但依赖特定桌面操作系统 API(例如与 Windows 注册表或 Linux X11 交互)的 crate 将无法在移动设备上运行。你可能需要使用
#[cfg(target_os = "android")]来有条件地编译代码。
打开原生 IDE
Section titled “打开原生 IDE”有时你需要配置原生设置,例如应用程序图标 (App Icon)、启动画面 (Launch Screen) 或特定权限(如 Info.plist 或 AndroidManifest.xml 中的相机访问)。Tauri 提供了一个快捷方式,可以在各自的原生 IDE 中打开生成的项目:
tauri android opentauri ios open这将打开 Android Studio 或 Xcode,让你能够像编写原生应用程序一样调整原生层。