跨平台客户端技术

浏览器Web前端

QT

Qt 1991年,当时是由挪威的程序员Eirik Chambe-Eng和Haavard Nord创建的。他们最初为了解决开发GUI应用程序的问题而创建了Qt,当时Qt是一个用于开发Unix操作系统上的GUI应用程序的工具库。开发语言是C++,也提供了Python、JavaScript和QML等其他编程语言的支持。

官网文档: https://doc.qt.io/qt-5/gettingstarted.html

支持的平台:https://doc.qt.io/qt-5/supported-platforms.html

知名的软件:VirtualBox,Autodesk Maya,VLC Media Player,Skype,Autodesk Mudbox,Google Earth

Flutter

Flutter 是一个由 Google 开发的移动应用程序开发框架。它使用 Dart 编程语言,并支持 iOS、Android 和 Web ,PC 等多个平台。

官网 https://flutter.dev/development

中文社区 https://flutterchina.club

API https://api.flutter.dev/

Electron.js

Electron 是一个使用 Web 技术(HTML、CSS 和 JavaScript)构建桌面应用程序的框架。它可以在 Windows、macOS 和 Linux 等多个操作系统上运行

官网 https://www.electronjs.org/

文档 https://www.electronjs.org/docs/latest/

社区:https://www.electronjs.org/community

Nw.js

基于Chromium和Node.js的开源跨平台桌面应用程序开发框架,可以使用HTML、CSS和JavaScript创建原生的桌面应用程序,支持Windows、macOS和Linux等操作系统。以下是nw.js的官网、文档和社区网站:

官网:https://nwjs.io/

文档:https://nwjs.readthedocs.io/en/latest/ nw.js的文档提供了详细的开发指南、API文档和教程等信息,帮助开发者了解框架的各种特性和用法,快速上手并开发出高质量的桌面应用程序。

社区:https://github.com/nwjs/nw.js/wiki

Tauri

Tauri是一个开源的桌面应用程序开发工具,它使用Rust语言和现代Web技术(如HTML、CSS和JavaScript)构建跨平台桌面应用程序。Tauri提供了一个安全、高效、可扩展的框架,支持Windows、macOS和Linux等操作系统

官网:https://tauri.studio/

文档:https://tauri.studio/docs/getting-started/intro

React Navite

React Native是Facebook开发的一个基于React框架的开源框架,可以用来构建跨平台移动应用程序。React Native的主要目标是使用JavaScript和React的语法,开发高效且流畅的原生应用

官网:https://reactnative.dev/

文档:https://reactnative.dev/docs/getting-started

技术栈优点缺点适用场景
Qt跨平台、高效、稳定学习成本较高GUI应用、嵌入式系统
Flutter跨平台、高性能、易学仅适用于移动应用开发移动应用、跨平台UI开发
NW.js跨平台、Web技术栈运行效率较低跨平台GUI应用、Web应用
Electron跨平台、Web技术栈运行效率较低跨平台GUI应用、Web应用
Tauri跨平台、高效、安全学习成本较高跨平台GUI应用、Web应用
React Native跨平台、易学、高性能仅适用于移动应用开发移动应用、跨平台UI开发

上表列举了常见的跨平台开发技术栈Qt、Flutter、NW.js、Electron、Tauri和React Native的优点、缺点和适用场景。

Qt是一款稳定、高效的GUI框架,可以用于GUI应用和嵌入式系统开发。但是,学习成本相对较高。

Flutter是一款易学、高性能的跨平台移动应用开发框架,但仅适用于移动应用开发。

NW.js和Electron都是基于Web技术栈的框架,可以用于开发跨平台GUI应用和Web应用。但是,运行效率较低,可能不适合要求高性能的应用。

Tauri是一款跨平台GUI应用和Web应用开发框架,具有高效、安全等特点,但是相对其他框架,学习成本相对较高。

React Native是一款易学、高性能的跨平台移动应用开发框架,但仅适用于移动应用开发。

参考:chatgpt

Electron错误记录

storePicPath:D:\pics
renderer.js:26 e--> Error: EPERM: operation not permitted, stat 'D:\pics\hv4TWmiw77JF10e7E2plB3LGrz2qv5HfosFMwkjh.mp3'
    at statSync (fs.js:1086)
    at Object.e.statSync (electron/js2c/asar_bundle.js:5)
    at renderer.js:26
    at Array.forEach (<anonymous>)
    at a.emptyDir (renderer.js:26)
    at a.clearDir (renderer.js:26)
    at a.<anonymous> (renderer.js:26)
    at r (renderer.js:26)
    at Generator._invoke (renderer.js:26)

Installer integrity check has failed Common causes include  incomplete download and damaged media Contact the installer's author to obtain a new copy more infomation at http://nsis.sf.net/NSIS_Error

原因安装包不完整