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

tauri配置全局变量

1. vite配置.env

VITE_TEST_URL_DEMO = 'http://localhost:8888'

2. tauri 启动参数

  • package.json 添加配置
"tauri:dev:mac": "tauri dev --config src-tauri/tauri.apple.conf.json -- -- test_url_demo=http://localhost:8888",
"tauri:dev:mac:v2": "tauri dev --config src-tauri/tauri.apple.conf.json -- -- --test_url_demo http://localhost:8888",
  • main.rs 利用 Tauri 的 State 管理器,创建一个共享的全局变量
// State 管理器
pub struct AppState {
    test_url_demo: Mutex<String>,
}
...
// 设置默认值
tauri::Builder::default()
        .manage(AppState {
            test_url_demo: Mutex::new("https://localhost:8080".to_string()),
        })
...
builder.setup(|app| {
	let args: Vec<String> = std::env::args().collect();
	// ["target/debug/desktop-demo", "--test_url_demo", "http://localhost:8888"]
	// ["target/debug/desktop-demo", "test_url_demo=http://localhost:8888"]
	println!("----> args: {:?}", args);
	let mut arg_test_url_demo = None;
	for i in 0..args.len() {
	    let arg = &args[i];
	    if arg.starts_with("test_url_demo=") {
	        arg_test_url_demo = Some(arg.trim_start_matches("test_url_demo=").to_string());
	        break;
	    } else if arg == "--test_url_demo" && i + 1 < args.len() {
	        arg_test_url_demo = Some(args[i + 1].clone());
	        break;
	    }
	}
	println!("----> arg_test_url_demo: {:?}", arg_test_url_demo);
	if let Some(value) = arg_test_url_demo {
	    let app_state = app.state::<AppState>();
	    let mut test_url_demo = app_state.test_url_demo.lock().unwrap();
	    println!("----> test_url_demo before: {:?}", test_url_demo);
	    *test_url_demo = value.clone();
	    println!("----> test_url_demo after: {:?}", test_url_demo);
	} else {
	    println!("----> test_url_demo parameter not found");
	}
})

  • 获取test_url_demo
use crate::AppState;

pub async fn check(
    app_handle: AppHandle
) ->Result<String, String> {
	let app_state = app_handle.state::<AppState>();
    let test_url_demo = app_state.test_url_demo.lock().unwrap().clone();
    println!("----> test_url_demo in other file: {}", test_url_demo);
...
}
http://www.dtcms.com/a/99271.html

相关文章:

  • neo4j中导入csv格式的三元组数据
  • 访问者模式_行为型_GOF23
  • 人工智能入门(2)
  • 心理咨询法律咨询预约咨询微信小程序系统源码独立部署
  • Python函数中的*args与**kwargs详解:灵活处理可变参数
  • LabVIEW 燃气轮机气路故障诊断
  • 算法中常见的求和问题,数学公式
  • 通俗版解释:SecureLink 和 Xshell 的区别与联系
  • 管理系统-接口信息
  • 烽火MR622-KK融合机_海思MV300芯片_1+8G_强刷卡刷固件包
  • 计算机网络 用deepseek帮助整理的复习资料(一)
  • 工程项目管理软件赋能制造工程高效变革
  • VRRP虚拟路由器冗余协议
  • 网络探索之旅:网络原理(第二弹)
  • powershell7.5.0不支持conda的问题
  • 2.pycharm部署Ai - 编程好助手
  • Day17 -实例:利用不同语言不同框架的特征 进行识别
  • Anaconda安装-Ubuntu-Linux
  • 【数据结构】树与森林
  • Epoll 的本质与原理:高性能网络编程的基石
  • 【Java全栈】Java + Vue 项目框架与运行流程详解
  • 2024年零知识证明(ZK)研究进展
  • Baklib驱动企业知识管理数字化转型
  • jetson orin nano super AI模型部署之路(三)stable diffusion部署
  • 【深度学习入门_机器学习理论】极致梯度提升原理(XGBoost)
  • 蓝桥杯模拟
  • linux-5.10.110内核源码分析 - 写磁盘(从VFS系统调用到I/O调度及AHCI写磁盘)
  • ROS1-moveit-gazebo 仿真配置
  • ThreadPoolExecutor原理详解
  • Layui实现table动态添加行,可删除、表格可编辑,小数校验