tauri 2 创建 webview。这里前端使用的 vue3。需要以下两步就可以。
- 配置权限和安全。
- 编写前端逻辑。
配置权限和安全
src-tauri/capabilities/default.json
增加以下配置。
{
……,
"permissions": [
"core:default",
"shell:allow-open",
{
"identifier": "http:default",
"allow": [
{
"url": "https://www.yuepaibao.com/"
}
],
"deny": [
{
"url": "https://private.tauri.app"
}
]
},
"core:webview:allow-create-webview",
"core:window:allow-show",
"core:webview:allow-create-webview-window",
"core:webview:allow-webview-close"
]
}
编写前端逻辑
src/App.vue
<script setup lang="ts">
import { WebviewWindow } from "@tauri-apps/api/webviewWindow";
const webview = new WebviewWindow("search", {
center: true,
width: 540,
height: 960,
alwaysOnTop: true,
skipTaskbar: true,
decorations: true,
closable: true,
url: "https://www.yuepaibao.com",
});
webview.once("tauri://created", function () {
console.log("webview created");
});
webview.once("tauri://error", function (e) {
console.log("error creating webview", e);
});
</script>
如果想创建 webview 后,马上进入全屏。可以这样弄。
- 在权限配置那里,将设置全屏的权限配置进去。
- 在 webview 创建成功的回调里,设置全屏。
增加配置
"core:window:allow-set-fullscreen"
编写代码,修改和编辑
import { Window } from "@tauri-apps/api/window";
webview.once("tauri://created", async function () {
console.log("webview created");
const window = await Window.getByLabel("search");
if (window) {
window
.setFullscreen(true)
.then(() => {
console.log("Window is now fullscreen");
})
.catch((error) => {
console.error("Error setting fullscreen:", error);
});
}
})