tauri 真的太难用了,浪费了我整整一天

查看 62|回复 4
作者:drymonfidelia   
天天看 V2 有人吹 tarui ,刚好有客户反应我们客户端太大了,于是给公司打包新网站(启动动画播完 yin 跳转到线上地址,没别的功能)成 exe 的时候想试一下
我们网站检测是否客户端访问是检测请求头的 app-name 字段是否有值(有个中间件,全部请求都检测)
Electron 非常简单,三行代码搞定
session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => {
    details.requestHeaders['app-name'] ='myapp'
    details.requestHeaders['app-ver'] = '1.0-win'
    details.requestHeaders['app-iver'] = '20240202-01M'
   
    callback({ requestHeaders: details.requestHeaders })
  })
tauri 这个问题 Google 能搜到 4 篇讨论贴,实际给出方案的只有这一篇 https://github.com/tauri-apps/tauri/discussions/4912
有人在下面提问说编译不了,快半年了没人回复
我看 Rust 和 tauri 文档折腾了一天还没搞定,放弃了,用 Electron 3 分钟打好包提交 (最后还被领导骂了这么简单一个需求弄了一天是不是又在上班时间打游戏)
附上我改的最后一版,还是不行,有能力的 V 友看看要写多少行才能实现这个简单的功能
fn main() {
    tauri::Builder::default()
        .setup(|app| {
            let main_window = app.get_window("main").unwrap();
            main_window.with_webview(|webview| unsafe {
                let core = webview.controller().CoreWebView2().unwrap();
                let mut token: EventRegistrationToken = EventRegistrationToken::default();
                core.AddWebResourceRequestedFilter("*", COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL);
                core.add_WebResourceRequested(
                    CoreWebView2WebResourceRequestedEventHandler::create(Box::new(move |sender, args| {
                        if let Some(args) = args {
                            let request: ICoreWebView2WebResourceRequest = args.Request().unwrap();
                            request
                                .Headers()
                                .unwrap()
                                .SetHeader("app-name", "myapp")
                                .SetHeader("app-ver", "1.0-win")
                                .SetHeader("app-iver", "20240202-01W")
                                .unwrap();
                        }
                        Ok(())
                    })),
                    &mut token,
                );
            });
            Ok(())
        })
        .invoke_handler(tauri::generate_handler![greet])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

tauri, unwrap, ders, ques

roycestevie6761   
rust 只适合当前问题没有解决方案,可能学一下 rust 搞一搞,如果有其他成熟的的替代方案,强行 rust 没啥意义,其他语言和框架至少迭代十年了都
drymonfidelia
OP
  
@roycestevie6761 正常 v 友推荐的灵车我是不敢碰的,但是 tauri GitHub 上有 73.5k star 感觉很成熟了,试了下,没想到连改个默认请求头都做不到
roycestevie6761   
@drymonfidelia 这个框架我没用过,但是 73K 不至于吧
drymonfidelia
OP
  
@roycestevie6761 但凡他的 star 数少一点,我早就放弃折腾了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部