crash-reporter 模块开启发送应用崩溃报告。
下面是一个自动提交崩溃报告给服务器的例子 :
const crashReporter = require('electron').crashReporter;
crashReporter.start({
productName: 'YourName',
companyName: 'YourCompany',
submitURL: 'https://your-domain.com/url-to-submit',
autoSubmit: true
});
可以使用下面的项目来创建一个服务器,用来接收和处理崩溃报告 :
方法
crashReporter.start(options)
options
ObjectcompanyName
StringsubmitURL
String - 崩溃报告发送的路径,以post方式.productName
String (可选) - 默认为Electron
.autoSubmit
Boolean - 是否自动提交. 默认为true
.ignoreSystemCrashHandler
Boolean - 默认为false
.extra
Object - 一个你可以定义的对象,附带在崩溃报告上一起发送 . 只有字符串属性可以被正确发送,不支持嵌套对象.
- 只可以在使用其它
crashReporter
APIs 之前使用这个方法. - 注意: 在 OS X, Electron 使用一个新的
crashpad
客户端, 与 Windows 和 Linux 的breakpad
不同. 为了开启崩溃点搜集,你需要在主进程和其它每个你需要搜集崩溃报告的渲染进程中调用crashReporter.start
API 来初始化crashpad
.
crashReporter.getLastCrashReport()
返回最后一个崩溃报告的日期和 ID.如果没有过崩溃报告发送过来,或者还没有开始崩溃报告搜集,将返回 null
.
crashReporter.getUploadedReports()
返回所有上载的崩溃报告,每个报告包含了上载日期和 ID.
crash-reporter Payload
崩溃报告将发送下面 multipart/form-data
POST
型的数据给 submitURL
:
ver
String - Electron 版本.platform
String - 例如 'win32'.process_type
String - 例如 'renderer'.guid
String - 例如 '5e1286fc-da97-479e-918b-6bfb0c3d1c72'_version
String -package.json
版本._productName
String -crashReporter
options
对象中的产品名字.prod
String - 基础产品名字. 这种情况为 Electron._companyName
String -crashReporter
options
对象中的公司名字.upload_file_minidump
File - 崩溃报告按照minidump
的格式.crashReporter
中的extra
对象的所有等级和一个属性.options
object
下一节:在 Electron 中, 对所有创建 images 的 api 来说, 你可以使用文件路径或 nativeImage 实例. 如果使用 null ,将创建一个空的image 对象.