当前位置: 首页 > news >正文

node-ddk, electron组件, 自定义本地文件协议,打开本地文件

node-ddk 文件协议

https://blog.csdn.net/eli960/article/details/146207062

也可以下载demo直接演示

http://linuxmail.cn/go#node-ddk

安全

考虑到安全, 本系统禁止使用 file:///

在主窗口, 自定义文件协议,可以多个

import main, { NODEDDK } from "node-ddk/main"
main.protocol.registerFileProtocol({
  protocol: "myfile",
  realpath: async (options: NODEDDK.FileProtocolRealpathOptions) => {
  	// 根据options 返回 实际的文件路径
    return "/opt/data/image/789.png"
  }
})

在渲染进程, 可以这么访问

<img src="myile://xxx/linuxmail.cn/vvv/123.some.png">

用操作系统默认程序打开文件

import renderer, { NODEDDK } from "node-ddk/renderer"
// 用浏览器打开网址
renderer.shell.openUrl({ url: "https://www.baidu.com/" })
// 用默认程序打开系统文件
renderer.shell.openLocalFile({ path: "/etc/resolv.conf" }) 

是否应该打开这些网址和本地文件, 可以由界端控制.

也可以调用主进程限制逻辑, 默认拒绝全部操作

// 检查需要用浏览器打开的地址, 默认拒绝
main.shell.registerOpenUrlChecker(async (attrs: NODEDDK.OpenUrlOptions) => {
  let url = attrs.url
  if (url.indexOf("qiandu.com") > -1) {
    return false
  }
  return true
})

// 检查需要用本地程序打开的文件, 默认拒绝
main.shell.registerOpenLocalFileChecker(async (attrs: NODEDDK.OpenLocalFileOptions) => {
  let path = attrs.path
  if (path.endsWith(".exe")) {
    return false
  }
  return true
})
http://www.dtcms.com/a/81288.html

相关文章:

  • C51 Proteus仿真实验22:按键发声
  • 云原生算力引擎:分布式推理的流体动力学
  • NVIDIA Dynamo源码编译
  • 《K230 从熟悉到...》图像获取+FPS
  • 【工具变量】全国地级市地方ZF债务数据集(2014-2023年)
  • JAVA学习*接口
  • Python连接StarRocks全流程实践: SQL文件调用与Pandas混合优化
  • 第16章:基于CNN和Transformer对心脏左心室的实验分析及改进策略
  • Kotlin的 noinline和crossinline关键字
  • k8s的核心组件整理
  • 多阶段构建实现 Docker 加速与体积减小:含文件查看、上传及拷贝功能的 FastAPI 应用镜像构建
  • Android 接 Twitter Share ,常见问题及解决方案
  • 流畅如丝:利用requestAnimationFrame优化你的Web动画体验
  • 基于Web大学生创新服务平台(源码+lw+部署文档+讲解),源码可白嫖!
  • 摄影工作室预约管理系统基于Spring BootSSM
  • Sympy入门之微积分基本运算
  • 【中间件】Rabbit离线部署操作
  • windows单节点验证victoriametrics结合AlertManger实现告警推送webhook
  • 对接马来西亚、印度、韩国、越南等全球金融数据示例
  • 个人作品集模板!除了Figma还可以选择什么软件?
  • neo4j-如何让外部设备访问wsl中的neo4j
  • Python 类与对象概念全解析:从零到实战
  • Ubuntu上安装Docker
  • 统计哲学的频率学派和贝叶斯学派
  • Redis的大Key问题如何解决?
  • 基于单片机的农作物自动灌溉系统
  • sougou AI close
  • Milvus WeightedRanker 对比 RRF 重排机制
  • Linux信号的诞生与归宿:内核如何管理信号的生成、阻塞和递达?
  • Mysql-经典实战案例(10):如何用PT-Archiver完成大表的自动归档