<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    使用 Go 和 Web 技術構建桌面應用程序

    VSole2022-08-04 11:17:17

    Wails 是一個框架,可以使用 Go 和 Web 技術幫助編寫桌面應用程序。對于前端,使用 Webview 庫. 不過它使用平臺的本機渲染引擎(當前 Linux 和 Mac 使用 Webkit,Windows 使用 MSHTML)。前端使用 HTML / Javascript / CSS 編碼,后端是純 Go 語言。通過綁定機制,可以將 Go 代碼作為返回 Promise 的功能公開給前端。該項目編譯為單個可執行文件,將所有資源捆綁到其中。在 Windows 和 MacOS 上,可以將二進制文件捆綁到特定于平臺的程序包中進行分發。

    注意:渲染引擎是 WebView,不是捆綁的 Web 瀏覽器,因此某些“瀏覽器 API”將對您的應用程序不可用,例如 localstorage。大多數應用程序不需要使用它們,如果您仍然想這樣做,可以使用 Go 來完成大多數事情。

    功能

    • 后端使用標準 Go
    • 使用任意前端技術構建 UI 界面
    • 快速為您的 Go 應用生成 Vue、Vuetify、React 前端代碼
    • 通過簡單的綁定命令將 Go 方法暴露到前端
    • 使用原生渲染引擎 - 無嵌入式瀏覽器
    • 共享事件系統
    • 原生文件系統對話框
    • 強大的命令行工具
    • 跨多個平臺

    概述

    • Wails

    Wails 被設計成盡可能縮小 web 技術和 Go 之間的差異。前端是 Webview 組件, 并且您可以使用自己喜歡的任何常見 Javascript 框架來開發前端代碼,并且可以與里面的 Go 代碼進行交互。這是通過共享的 IPC 機制來實現的。

    • IPC 概述

    IPC 機制可以在 2 個運行時中運行,一個運行在 Javascript 中,另一個運行在 Go 中。它們都提供了一個簡單的接口,從而減輕了開發人員直接處理 IPC 機制的負擔。

    運行時共享開發人員可以與之交互的公共組件:綁定和事件。

    • 綁定

    Wails 應用程序提供了一種方法,可讓您將公開的 Go 代碼(綁定)到前端。使用此方法,可以將任意函數或公開的結構方法綁定。在啟動時,Wails 將分析綁定的函數/方法并自動在 Javascript 中提供等效函數。使您可以直接從 Javascript 調用綁定的 Go 代碼。

    JavaScript 包裝函數,處理了調用 Go 代碼的所有復雜性。您只需使用 Javascript 調用該函數并接收一個 Promise。綁定 Go 代碼功能,處理了綁定的所有復雜性。如果對 Go 代碼的調用成功完成,則結果將傳遞到 resolve 函數。如果返回錯誤,則將其傳遞給 reject 函數。

    • 事件

    Wails 提供了一個統一的事件系統,類似于 Javascript 的原生事件系統。這意味著從 Go 或 Javascript 發送的任何事件都可以由任何一方接收。數據可以隨任何事件一起傳遞。這樣,您就可以做一些簡單的事情,例如讓后臺進程在 Go 中運行,并通知前端去更新頁面。

    安裝

    • 安裝命令

    安裝過程非常簡單,只需運行以下命令:

    go get -u github.com/wailsapp/wails/cmd/wails
    
    安裝后,“wails update”命令可用于后續更新。
    要獲得最新功能的最新 pre-release 可以在后面附加 -pre 標簽:wails update -pre.

    要完成安裝設置,請運行 安裝命令 wails setup 并且填寫對你的名字和郵箱。

    • 生成新項目

    使用初始化命令 wails init 生成一個新項目,選擇默認選項。

    • 構建

    切換到項目目錄 cd my-project 并且使用構建命令構建命令 wails build 構建你的項目。

    如果一切順利,則應該在本地目錄中有一個已編譯的程序。如果使用 Windows,請使用 ./my-project 來運行它或雙擊 myproject.exe

    項目展示

    —END—

    桌面應用程序前端開發
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在Discon桌面應用程序使用的軟件框架Electron中發現了第一個安全問題。雖然桌面應用程序不是開源的,但Electron所使用的JavaScript代碼已保存在本地,可以提取和檢查。Discord的Electron構建中的一項設置“ contextIsolation”被設置為false,這可能允許應用程序外部的JavaScript代碼影響內部代碼,例如函數。
    研究人員報告說,Slack修補了一個嚴重的遠程代碼執行漏洞,該漏洞可能使攻擊者能夠在其協作軟件的桌面版本中執行任意代碼。Evolution Gaming的安全工程師Oskars Vegeris發現了該漏洞,并于2020年1月通過HackerOne與Slack私下共享。Slack在2月發布了該漏洞的初步修復程序。Vegeris說,這個問題存在于制作Slack post的方式上。敦促Slack用戶將其桌面應用程序更新到版本 ,以修復該漏洞。安全研究的價值 200億美元的公司 Slack 的價值研究通過其漏洞賞金計劃向Vegeris僅支付了1,750美元用于RCE漏洞。
    通過綁定機制,可以將 Go 代碼作為返回 Promise 的功能公開給前端。這是通過共享的 IPC 機制來實現的。它們都提供了一個簡單的接口,從而減輕了開發人員直接處理 IPC 機制的負擔。在啟動時,Wails 將分析綁定的函數/方法并自動在 Javascript 中提供等效函數。
    盡管 Google Translate 從未推出過桌面端版本,但是用戶搜索就可能會在結果頁面看到一些免費軟件網站提供下載。偽裝成 Google Translate 和其他 Google 服務的應用程序往往在很大程度上存在惡意,其中最廣泛的是用于加密挖礦。
    NPM供應鏈攻擊可以追溯到2021年12月,當時使用了幾十個包含模糊Javascript代碼的惡意NPM模塊,破壞了數百個下游桌面應用和網站。
    外媒 1 月 24 日報道,流行軟件構建框架 Electron 中存在一個嚴重的遠程代碼執行( RCE )漏洞(CVE-2018-1000006),可能會影響大量熱門桌面應用程序,比如 Skype,Signal,Slack,GitHub Desktop,Twitch 和 WordPress.com 等。 Electron 表示目前只有 Windows 的應用程序會受到漏洞影響。
    介紹Outlook是微軟Office套件中的桌面應用程序,現已成為世界上最受歡迎的應用程序之一,用于發送和接收電子郵件、安排會議等操作。從安全角度來看,該應用程序是負責將各種網絡威脅引入組織的關鍵“網關”之一。該應用程序中任何微小的安全問題都可能造成嚴重的損害,并破壞企業的整體安全性。因此,在典型的企業環境中檢查Outlook上的攻擊向量是必要的,這也是Check Point研究團隊此項研究的初衷
    漏洞概述 AWS VPN應用程序存以 SYSTEM 身份寫入任意文件,這可能導致提權和信息泄露漏洞。該漏洞可能導致用戶的 Net-NTLMv2 哈希被VPN 配置文件中的 UNC 路徑泄露。這些漏洞已確認影響版本 2.0.0,并已在版本 3.0.0 中修復。 要修復漏洞,請升級到可在此處下載的3.0.0版本 [1]
    本月更新中解決的漏洞影響Adobe Flash Player、Creative Cloud桌面應用程序、Adobe Experience Manager、Adobe Acrobat和Reader應用程序
    Spring框架是一個開放源代碼的J2EE應用程序框架,是針對bean的生命周期進行管理的輕量級容器。Spring可以單獨應用于構筑應用程序,也可以和Struts、Webwork、Tapestry等眾多Web框架組合使用,并且可以與 Swing等桌面應用程序AP組合。 Spring框架主要由七部分組成,分別是 Spring Core、 Spring AOP、 Spring ORM、 Spring
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类