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.urlif (url.indexOf("qiandu.com") > -1) {return false}return true
})// 檢查需要用本地程序打開的文件, 默認拒絕
main.shell.registerOpenLocalFileChecker(async (attrs: NODEDDK.OpenLocalFileOptions) => {let path = attrs.pathif (path.endsWith(".exe")) {return false}return true
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74234.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

論文閱讀:2023 arxiv Provable Robust Watermarking for AI-Generated Text

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

一條sql語句在mysql中的執行流程(Mysql基礎架構)

mysql基礎架構 MySQL 主要分為 Server 層和 存儲引擎層&#xff1a; Server 層&#xff1a;主要包括 連接器、查詢緩存、分析器、優化器、執行器等&#xff0c;所有跨存儲引擎的功能都在這一層實現&#xff0c;比如存儲過程、觸發器、視圖&#xff0c;函數等&#xff0c;還有一…

GitLens with `Commit Graph`

文章目錄 GitLens with Commit Graph GitLens with Commit Graph 想要更直觀地查看 Git 提交歷史&#xff1f;我打包了一個支持 Commit Graph 的 GitLens 版本&#xff0c;讓你輕松在 VSCode 中查看分支、合并、變更記錄等內容&#xff0c;一目了然&#xff01; &#x1f4cc…

C#里使用libxl的數字格式

由于EXCEL里可以表示不同的數字格式, 比如表示貨幣數字時,與表示普通序號的數字就不一樣。 還有科學計算表示的數字使用小數點位數與普通貨幣也不一樣。 如下所示: 要使用這些格式, 下面創建一個例子來演示保存這些數字格式: private void button11_Click(object send…

CentOS 7擴容 /dev/shm

在 CentOS 7 中&#xff0c;/dev/shm 是基于內存的臨時文件系統&#xff08;tmpfs&#xff09;&#xff0c;其大小通常為系統內存的一半。要擴容 /dev/shm&#xff0c;可以通過重新掛載 tmpfs 并指定新的大小來實現。 擴容步驟 查看當前 /dev/shm 的大小&#xff1a; df -h /d…

【一起學Rust | Tauri2.0框架】基于 Rust 與 Tauri 2.0 框架實現全局狀態管理

前言 在現代應用程序開發中&#xff0c;狀態管理是構建復雜且可維護應用的關鍵。隨著應用程序規模的增長&#xff0c;組件之間共享和同步狀態變得越來越具有挑戰性。如果處理不當&#xff0c;狀態管理可能會導致代碼混亂、難以調試&#xff0c;并最終影響應用程序的性能和可擴…

百度SEO和必應SEO優化方法

如需SEO服務&#xff0c;可以搜索&#xff1a;深圳市信科網絡科技有限公司。 一、搜索引擎生態格局&#xff1a;流量入口的重新洗牌 2025 年&#xff0c;中國 PC 端搜索引擎市場正經歷戲劇性變革。StatCounter 數據顯示&#xff0c;必應憑借 Edge 瀏覽器的預裝優勢與 ChatGPT …

Redis 事件機制詳解

Redis 事件機制詳解 Redis 的事件機制是其高性能和高并發能力的關鍵之一&#xff0c;它采用Reactor 模型&#xff0c;基于文件事件驅動機制實現高效的 I/O 處理。Redis 的事件機制主要分為以下幾類&#xff1a; 文件事件&#xff08;File Event&#xff09; —— 處理網絡 I/…

【LangChain入門 3 Prompts組件】聊天提示詞模板 ChatPromptTemplate

文章目錄 一、 聊天信息提示詞模板1.1 使用關鍵字1.2 使用SystemMessage, HumanMessage, AIMessage來定義消息1.3 使用MessagesPlaceholder 在特定未知添加消息列表 二、關鍵類介紹2.1 ChatPromptTemplate 類2.1.1 from_messages()2.1.2 format_messages()2.1.3 format_prompt(…

Flutter TextFormField 完全手冊與設計最佳實踐

目錄 1. 引言 2. TextFormField 的基本用法 3. 主要屬性 4. 自定義 TextFormField 樣式 4.1 設置邊框樣式 4.2 設置輸入格式限制 4.3 多行輸入 5. 結論 相關推薦 1. 引言 在 Flutter 中&#xff0c;TextFormField 是 TextField 的擴展版本&#xff0c;專為表單輸入設計…

HC-05與HC-06藍牙配對零基礎教程 以及openmv識別及遠程傳輸項目的概述

這個是上一年的項目&#xff0c;之前弄得不怎么完整&#xff0c;只有一個openmv的&#xff0c;所以openmv自己去我主頁找&#xff0c;這篇主要講藍牙 這個是我在使用openmv連接單片機1然后單片機1與單片機2通過藍牙進行通信 最終實現的效果是&#xff1a;openmv識別到圖形和數…

【Docker系列一】Docker 簡介

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

Vue 入門到實戰 五

第5章 過渡與動畫 目錄 5.1 單元素/組件過渡 5.1.1 過渡class 5.1.2 CSS 過渡 5.1.3 CSS 動畫 5.1.4 同時使用過渡和動畫 5.1.5 JavaScript 鉤子方法 5.2 多元素/組件過渡 5.2.1 多元素過渡 5.2.2 多組件過渡 5.3 列表過渡 5.3.1 列表的普通過渡 5.3.2 列表的平滑…

Apache SeaTunnel腳本升級及參數調優實戰

最近作者針對實時數倉的Apache SeaTunnel同步鏈路&#xff0c;完成了雙引擎架構升級與全鏈路參數深度調優&#xff0c;希望本文能夠給大家有所啟發&#xff0c;歡迎批評指正&#xff01; Apache SeaTunnel 版本 &#xff1a;2.3.9 Doris版本&#xff1a;2.0.6 MySQL JDBC Conne…

C++ 時間操作:獲取有史以來的天數與文件計數器

C 時間操作&#xff1a;獲取有史以來的天數與文件計數器 在C中&#xff0c;時間操作是一個非常重要的功能&#xff0c;尤其是在需要處理日期、時間戳或定時任務時。本文將介紹如何利用C的時間操作功能&#xff0c;實現以下兩個目標&#xff1a; 獲取從Unix紀元時間&#xff0…

Python Bug修復案例分析:Python 中常見的 IndentationError 錯誤 bug 的修復

在 Python 編程的世界里&#xff0c;代碼的可讀性和規范性至關重要。Python 通過強制使用縮進來表示代碼塊的層次結構&#xff0c;這一獨特的設計理念使得代碼更加清晰易讀。然而&#xff0c;正是這種對縮進的嚴格要求&#xff0c;導致開發者在編寫代碼時&#xff0c;稍有不慎就…

【論文筆記】Transformer

Transformer 2017 年&#xff0c;谷歌團隊提出 Transformer 結構&#xff0c;Transformer 首先應用在自然語言處理領域中的機器翻譯任務上&#xff0c;Transformer 結構完全構建于注意力機制&#xff0c;完全丟棄遞歸和卷積的結構&#xff0c;這使得 Transformer 結構效率更高…

CI/CD(三) 安裝nfs并指定k8s默認storageClass

一、NFS 服務端安裝&#xff08;主節點 10.60.0.20&#xff09; 1. 安裝 NFS 服務端 sudo apt update sudo apt install -y nfs-kernel-server 2. 創建共享目錄并配置權限 sudo mkdir -p /data/k8s sudo chown nobody:nogroup /data/k8s # 允許匿名訪問 sudo chmod 777 /dat…

【QA】單件模式在Qt中有哪些應用?

單例設計模式確保一個類僅有一個實例&#xff0c;并提供一個全局訪問點來獲取該實例。在 Qt 框架中&#xff0c;有不少類的設計采用了單例模式&#xff0c;以下為你詳細介紹并給出相應代碼示例。 1. QApplication QApplication 是 Qt GUI 應用程序的核心類&#xff0c;每個 Q…

存儲過程觸發器習題整理1

46、{blank}設有商品表(商品號&#xff0c;商品名&#xff0c;單價)和銷售表(銷售單據號&#xff0c;商品號&#xff0c;銷售時間&#xff0c;銷售數量&#xff0c;銷售單價)。其中&#xff0c;商品號代表一類商品&#xff0c;商品號、單價、銷售數量和銷售單價均為整型。請編寫…