目录

tauri-plugin-shell插件将_blank的a标签用浏览器打开了,,,解决办法

tauri-plugin-shell插件将_blank的a标签用浏览器打开了,,,解决办法

https://i-blog.csdnimg.cn/direct/4503b1d52d1d46da8132d50ccad4702c.png

不要使用这个插件,这个插件默认会将网页中a标签为_blank的使用默认浏览器打开,但是这种做法在我的程序里不是很友好,我需要自定义这种行为,当我点击我自己的链接的时候,使用默认浏览器打开,当点击别的链接的时候,还是在自己的窗口中打开。所以这里记录一下我的解决办法。

解决办法

使用open依赖,这是rust的依赖:

其实shell底层用的也是这个依赖库,这里我们就自定义自己的打开行为。

https://i-blog.csdnimg.cn/direct/d65f307ca9354c75aa816d2b666a466d.png

shell底层依赖:

https://i-blog.csdnimg.cn/direct/ad31aefba34e4e1cadbf3f9b3a5362d2.png

我们在我们的项目中安装open:

https://i-blog.csdnimg.cn/direct/e962aa4705d74235be429b3fa9fee4ec.png

然后使用的时候,直接使用:

创建一个command:

#[tauri::command]
pub async fn open_url(_: tauri::AppHandle, url: String) {
    open::that(url).unwrap();
}

https://i-blog.csdnimg.cn/direct/1120c0e730264186aaaf8ccc18838c8a.png

在前端页面直接invoke:

https://i-blog.csdnimg.cn/direct/ae4edfaab3894a1cab4f151d05af84b3.png