Electron 是一个开源的框架,用于创建跨平台的桌面应用程序。它使用 JavaScript、HTML 和 CSS 来创建跨平台的应用程序,可以在 Windows、macOS 和 Linux 上运行。Electron 允许开发者使用 JavaScript、HTML 和 CSS 来创建功能强大的桌面应用程序,而无需学习复杂的原生语言。
Electron 上传文件是一个常见的功能,它允许用户将文件从本地文件系统上传到服务器。在 Electron 中,可以使用 HTML5 的 File API 来实现此功能。File API 是一个浏览器 API,允许开发者选择文件并将其上传到服务器。
// 首先,我们需要在 HTML 页面中创建一个 input 元素来选择文件: <input type="file" id="file-input"> // 然后,我们可以使用 JavaScript 获取该 input 元素并添加 change 事件监听器来处理文件更改事件: let fileInput = document.getElementById('file-input'); fileInput.addEventListener('change', (event) => { // 这里我们可以得到所选文件的 FileList 对象: let files = event.target.files; // 然后我们就可以遍历 FileList 并把它上传到服务器: for (let i = 0; i < files.length; i++) { // 这里我们就可以使用 XMLHttpRequest 或者 fetch API 来上传文件: let xhr = new XMLHttpRequest(); xhr.open('POST', '/upload'); xhr.send(files[i]); } });
自从 v0.34.0, Electron 就允许提交应用包到 Mac App Store(MAS) . 这个向导提供的信息有 : 如何提交应用和 MAS 构建的限制.
注意: 从 v0.36.0,当应用成为沙箱之后,会有一个 bug 阻止 GPU 进程开启 , 所以在这个 bug 修复之前,建议使用 v0.35.x .更多查看 issue #3871 .
注意: 提交应用到 Mac App Store 需要参加 Apple DeveloperProgram , 这需要花钱.
下面步骤介绍了一个简单的提交应用到商店方法.然而,这些步骤不能保证你的应用被 Apple 接受;你仍然需要阅读 Apple 的 Submitting Your App 关于如何满足 Mac App Store 要求的向导.
为了提交应用到商店,首先需要从 Apple 获得一个证书.可以遵循 existing guides.
获得证书之后,你可以使用 Application Distribution 打包你的应用, 然后前往提交你的应用.这个步骤基本上和其他程序一样,但是这 key 一个个的标识 Electron 的每个依赖.
首先,你需要准备2个授权文件 .
child.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
</dict>
</plist>
parent.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
然后使用下面的脚本标识你的应用 :
#!/bin/bash
# Name of your app.
APP="YourApp"
# The path of you app to sign.
APP_PATH="/path/to/YouApp.app"
# The path to the location you want to put the signed package.
RESULT_PATH="~/Desktop/$APP.pkg"
# The name of certificates you requested.
APP_KEY="3rd Party Mac Developer Application: Company Name (APPIDENTITY)"
INSTALLER_KEY="3rd Party Mac Developer Installer: Company Name (APPIDENTITY)"
FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/"
if [ -d "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A" ]; then
# Signing a non-MAS build.
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Mantle.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/ReactiveCocoa.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A"
fi
codesign -fs "$APP_KEY" --entitlements parent.plist "$APP_PATH"
productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"
如果你是 OS X 下的应用沙箱使用新手,应当仔细阅读 Apple 的 Enabling App Sandbox 来有一点基础,然后向授权文件添加你的应用需要的许可 keys .
在签名应用之后,可以使用应用 Loader 来上传到 iTunes 链接处理 , 确保在上传之前你已经 created a record. 然后你能 submit your app for review.
为了让你的应用沙箱满足所有条件,在 MAS 构建的时候,下面的模块被禁用了 :
crashReporter
autoUpdater
并且下面的行为也改变了:
也由于应用沙箱的使用方法,应用可以访问的资源被严格限制了 ; 阅读更多信息 App Sandboxing .
取决于你所在地方的国家和地区 , Mac App Store 或许需要记录你应用的加密算法 , 甚至要求你提交一个 U.S 加密注册(ERN) 许可的复印件.
Electron 使用下列加密算法:
条形图表示矩形条中的数据,条的长度与变量的值成比例。当您将维度拖动到行搁架并测量到列搁架时,Tableau会自动生成条形图。我...
介绍 UIComponent 类是所有可视组件的基类,包括交互式和非交互式。类声明以下是 mx.core.UIComponent 类的声明:public class UI...
Maven 骨架创建 Java Web 项目如上图 Gif 演示,根据已有的 Maven 骨架进行 Java Web 项目创建。其中需要特别注意的是,在创建项...
Eclipse 生成 jar 包打开 Jar 文件向导Jar 文件向导可用于将项目导出为可运行的 jar 包。打开向导的步骤为:在 Package Explorer ...