tauri项目可以直接使用axios发送请求啊,为啥要使用tauri集成的http呢,可能是因为安全吧,如果使用tauri集成的http发送请求的话,需要添加可访问域名白名单。或者是要想使用rust发送请求,就可以使用tauri集成的http发送请求。
我之前一直以为不能使用axios呢,今天突然发现是可以使用的。
也可以直接使用js的websocket发送消息了,反正就是js的环境能用的,tauri里面都能用,因为我想到了tauri只是集成了webview,它里面还是用的各个平台的浏览器内核,所以就可以理解成是在开发一个网站一样,只是tauri把这个网站包装了一下。
发送websocket消息:
打包后的exe程序也是没有问题的:
使用vue3和ts写的发送websocket消息代码示例:
<script setup lang="ts"> import axios from "axios"; const send = () => { axios({ method: "get", url: "url地址", //user.json与当前文件在同一个路径下,如果user.json不存在则返回‘请求失败’ responseType: "json", //这句不能少 否则火狐浏览器下会报错 //上述之后会返回一个Promise对象,然后调用该对象的then方法(也就是执行成功的回调方法) }) .then(function (resp) { //resp表示执行成功的结果 console.log("axios-----", resp); }) .catch((err) => { //catch表示执行失败的调用函数 err表示失败的结果 console.log("请求失败", err); }); }; const initWebsocket = () => { //初始化websocket let planWebsocket: any = null; let planIP: any = "127.0.0.1"; // IP地址 let planPort: any = "8765"; // 端口号 if ("WebSocket" in window) { planWebsocket = new WebSocket("ws://" + planIP + ":" + planPort); // 通信地址 planWebsocket.onopen = function (event: any) { console.log("建立连接", event); let sendData = "你好啊"; planWebsocket.send(sendData); // 发送获取数据的接口 }; planWebsocket.onmessage = function (event: any) { console.log("收到消息:" + event.data); }; planWebsocket.onclose = function (event: any) { console.log("连接关闭", event); }; planWebsocket.onerror = function () { alert("websocket通信发生错误!"); }; } else { alert("该浏览器不支持websocket!"); } }; // 发送websokcet消息 const sendWebSocket = () => { console.log("发送websocket消息"); initWebsocket(); }; </script> <template> <div class="container"> <h1>Welcome to Tauri!</h1> <div> <button @click="send">发送axios请求</button> <button @click="sendWebSocket">发送Websocket</button> </div> </div> </template> <style scoped> .logo.vite:hover { filter: drop-shadow(0 0 2em #747bff); } .logo.vue:hover { filter: drop-shadow(0 0 2em #249b73); } </style>