字玩FontPlayer开发笔记10 Tauri2多窗口通信

字玩FontPlayer开发笔记10 Tauri2多窗口通信

字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 + ElementUI开发,源代码:github | gitee

笔记

最近在使用Tauri进行打包应用,这两天在测试可编程脚本模块时,发现原有代码使用了window.open方法,在Tauri应用中一直触发不了新窗口弹出,查了一下说Tauri并不推荐使用window.open操作,比较好的做法是使用Tauri自带的Webview窗口功能,于是笔者就用Tauri自带的api将脚本模块重置。

设置权限

窗口功能默认是禁用的,需要开启权限才能支持。每个细分功能都用对应的权限字段,在permissions里进行设置。笔者为方便测试暂时把所有关于窗口的权限都启用了:
src-tauri/capabilities/defualt.json

{
   
   
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "default",
  "description": "enables the default permissions",
  "windows": [
    "main",
    "glyph-script"
  ],
  "remote": {
   
   
    "urls": ["https://*.tauri.app/"]
  },
  "permissions": [
    {
   
   
      "identifier": "fs:scope",
      "allow": [
        {
   
   
          "path": "$APPDATA"
        },
        {
   
   
          "path": "$APPDATA/**"
        }
      ]
    },
    "core:default",
    "fs:read-files",
    "fs:write-files",
    "fs:allow-appdata-read-recursive",
    "fs:allow-appdata-write-recursive",
    "fs:default",
    "dialog:default",
    "core:event:allow-emit",
    "core:event:allow-listen",
    "core:webview:allow-clear-all-browsing-data",
    "core:webview:allow-create-webview",
    "core:webview:allow-create-webview-window",
    "core:webview:allow-get-all-webviews",
    "core:webview:allow-internal-toggle-devtools",
    "core:webview:allow-print",
    "core:webview:allow-reparent",
    "core:webview:allow-set-webview-focus"
在软件工程实践中,桌面应用程序与网页技术的整合已成为重要趋势。Tauri这一轻量化工具链使工程师能够基于Web技术栈创建多平台兼容的桌面程序。值得关注的是,在该架构下实施文件拖放操作时,传统的前端拖拽事件处理机制无法准确提取文件的物理存储位置,这对程序的功能完整性与用户交互体验造成了显著影响。 针对此技术瓶颈,研究团队设计了一套基于辅助视窗的系统事件拦截方案。该方案通过创建视觉不可见的辅助窗口,直接捕获操作系统层面的文件拖拽事件,从而精确解析文件的完整系统路径。这种双重事件处理机制既保留了浏览器环境标准的拖拽交互特性,又突破了框架层面的路径获取限制,使用户在执行文件拖放操作时,程序能准确识别文件在存储系统中的具体位置而非仅获取基础文件名。 该技术方案的关键在于辅助窗口的透明化设计与系统事件的重定向机制。在具体实施过程中,需重点处理窗口渲染属性配置、事件传播链路控制以及前后端数据交换协议等核心技术环节。这种架构设计在维持用户界面视觉统一性的同时,确保了底层系统能够获取完整的文件元数据信息。 考虑到跨平台部署的实际需求,该方案针对不同操作系统(包括Windows、macOS及各类Linux发行版)的文件管理子系统与权限控制机制进行了差异化适配,保证了核心功能在各平台环境下的稳定运行。这种平台兼容性设计对提升软件产品的市场覆盖率与用户接受度具有重要价值。 配套的技术文档可能包含完整的实现流程说明、应用程序接口规范、典型应用场景示例及系统调试方法等详细信息。参考实现代码库中可能提供完整的测试用例与示范项目,协助开发人员快速验证该方案在Tauri2环境下的实际效果。这种创新性的系统事件处理模式,为桌面应用开发领域提供了突破技术限制的新范式,通过辅助窗口拦截系统级事件的方法,显著增强了桌面程序的文件处理能力与操作便捷性。随着此类技术方案的持续优化与普及,预期将推动跨平台桌面应用程序在功能完备性与用户体验方面的整体提升。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值