当前位置: 首页 > news >正文

用Tauri框架构建跨平台桌面应用:1、Tauri快速开始

Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架,同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。

Tauri 是什么? | Tauri

首先安装依赖包

安装Ubuntu apt包

sudo apt install libwebkit2gtk-4.0-dev \build-essential \curl \wget \file \libxdo-dev \libssl-dev \libgtk-3-dev \libayatana-appindicator3-dev \librsvg2-dev

安装rustc

apt安装的版本低,需要使用官网的安装:

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

但是这个会卡住。。。

中间尝试过用apt安装好并更新到1.80版本:

apt upgrade rustc-1.80

看着说更新了,但是还是报错说rustc版本低。。。。后来是用的官网的方法:

官网方法

直接执行安装命令:

curl https://sh.rustup.rs -sSf | sh

 安装完成后提示:

Rust is installed now. Great!To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish"  # For fish

重新登录用户,或者执行命令激活环境:

. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh

 使用bash创建项目

sh <(curl https://create.tauri.app/sh)% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:100 16121  100 16121    0     0   7933      0  0:00:02  0:00:02 --:--:--  7937
info: downloading create-tauri-app
✔ Project name · tauri-app
✔ Identifier · com.tauri-app.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · pnpm
✔ Choose your UI template · Vue - (https://vuejs.org/)
✔ Choose your UI flavor · TypeScriptTemplate created!Your system is missing dependencies (or they do not exist in $PATH):
╭────────────────────┬─────────────────────────────────────────────────────╮
│ Node.js            │ Visit https://nodejs.org/                           │
├────────────────────┼─────────────────────────────────────────────────────┤
│ webkit2gtk & rsvg2 │ Visit https://tauri.app/guides/prerequisites/#linux │
╰────────────────────┴─────────────────────────────────────────────────────╯Make sure you have installed the prerequisites for your OS: https://tauri.app/start/prerequisites/, then run:cd tauri-apppnpm installpnpm tauri android initFor Desktop development, run:pnpm tauri devFor Android development, run:pnpm tauri android dev

进入目录使用 Tauri CLI 启动开发服务器:

cd tauri-app
cargo tauri dev

这里没有运行成功,改用手动 

先安装

cargo search cargo-tauri

都不行,换一个方法:重新用cargo创建目录

使用cargo创建项目

执行命令:

cargo install create-tauri-app --locked
cargo create-tauri-app

 安装过程中会让选择模版,五种ui模版,最佳应该选哪个? Vanilla Yew Leptos Sycamore Dioxus

听AI的劝,再加上自己的主观判断,最后选了Leptos

装完之后提示:

Your system is missing dependencies (or they do not exist in $PATH):
╭───────────────┬───────────────────────────────────────────────────────────╮
│ Tauri CLI     │ Run `cargo install tauri-cli --version '^2.0.0' --locked` │
├───────────────┼───────────────────────────────────────────────────────────┤
│ Trunk         │ Run `cargo install trunk --locked`                        │
├───────────────┼───────────────────────────────────────────────────────────┤
│ wasm32 target │ Run `rustup target add wasm32-unknown-unknown`            │
├───────────────┼───────────────────────────────────────────────────────────┤
│ webkit2gtk    │ Visit https://tauri.app/guides/prerequisites/#linux       │
╰───────────────┴───────────────────────────────────────────────────────────╯Make sure you have installed the prerequisites for your OS: https://tauri.app/start/prerequisites/, then run:cd tauri-appcargo tauri android initFor Desktop development, run:cargo tauri devFor Android development, run:cargo tauri android dev

后来才知道,需要按照提示安装缺失的软件,比如Tauri CLI等。 

开始 :使用 Tauri CLI 启动开发服务器:

项目创建好后,提示执行下面命令安装Tauri CLI:

cargo install tauri-cli --version "^2.0.0" --locked

安装完成提示:

  Installing /root/.cargo/bin/cargo-tauriInstalled package `tauri-cli v2.1.0` (executable `cargo-tauri`)
bash: Run: command not found

因为是远程无窗口服务器,所以最后有个bash命令没执行,理论上应该是:

您将会看到一个新的窗口被打开,该窗口正在运行您的应用。

恭喜您! 您已经创建了您自己的 Tauri 应用!🚀

后来在Mac下安装成功,看到了Tauri的窗体。

调试

报错error: crates-io is replaced with non-remote-registry source registry `mirror`

cargo search cargo-tauri

error: crates-io is replaced with non-remote-registry source registry `mirror`;

include `--registry crates-io` to use crates.io

加上这句:

[source.crates-io]
registry = "https://github.com/rust - lang/crates.io - index"
replace-with = 'mirror'

好像不管用。

用这条命令:

cargo search tauri --registry crates-io

能看到东西,但是装起来还是不错,应该还是版本问题。 

报错cannot install package `tauri 2.1.1`, it requires rustc 1.77.2 or newer

cargo install tauri

    Updating `mirror` index

error: cannot install package `tauri 2.1.1`, it requires rustc 1.77.2 or newer, while the currently active rustc version is 1.75.0

`tauri 2.0.0-rc.17` supports rustc 1.71

用apt等升级rustc,一直没升上去,最后使用官网的方法安装新版本:

curl https://sh.rustup.rs -sSf | sh

参考 初识Cargo-Rust的包管理器_cargo,rust包管理器-CSDN博客

FreeBSD系统不支持cargo install tauri-cli 

命令安装:

cargo install tauri-cli --version '^2.0.0' --locked
 

   Compiling magic_string v0.3.4
error: Host platform not yet supported by cargo-mobile2! We'd love if you made a PR to add support for this platform ❤️--> /home/skywalk/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/cargo-mobile2-0.17.4/src/os/mod.rs:22:1|
22 | compile_error!("Host platform not yet supported by cargo-mobile2! We'd love if you made a PR to add support for this platform ❤...;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^error[E0432]: unresolved import `crate::os::consts`

最终放弃在FreeBSD下使用Tauri 。


http://www.mrgr.cn/news/77911.html

相关文章:

  • 【Android】Service使用方法:本地服务 / 可通信服务 / 前台服务 / 远程服务(AIDL)
  • pubspec.yaml
  • ESP32桌面天气摆件加文心一言AI大模型对话Mixly图形化编程STEAM创客教育
  • 【Linux命令】grep
  • 用CAXA CAD电子图板导入图框、标题栏并导出pdf的方法
  • 【React 进阶】掌握 React18 全部 Hooks
  • 学习python的第十三天之函数——函数的返回值
  • 如何使用docker、docker挂载数据,以及让docker使用宿主机器的GPU环境 + docker重启小妙招
  • 华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)
  • 论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
  • 阅读《先进引信技术的发展与展望》识别和控制部分_笔记
  • Glide源码学习
  • 【AI技术赋能有限元分析应用实践】将FEniCS 软件安装在Ubuntu22.04
  • 预训练模型与ChatGPT:自然语言处理的革新与前景
  • 【2024 Optimal Control 16-745】Ubuntu22.04 安装Julia
  • Edify 3D: Scalable High-Quality 3D Asset Generation 论文解读
  • 网络(TCP)
  • 项目实战:基于Vue3实现一个小相册
  • _FYAW智能显示控制仪表的简单使用_串口通信
  • CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
  • 经验笔记:Git 中的远程仓库链接及上下游关系管理
  • LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读
  • 自制游戏:监狱逃亡
  • 计算机网络socket编程(5)_TCP网络编程实现echo_server
  • 现代密码学
  • 一文学习Android系统核心服务ServiceManager