# crashReporter
`crash-reporter` 模塊開啟發送應用崩潰報告.
下面是一個自動提交崩潰報告給服務器的例子 :
```javascript
const crashReporter = require('electron').crashReporter;
crashReporter.start({
productName: 'YourName',
companyName: 'YourCompany',
submitURL: 'https://your-domain.com/url-to-submit',
autoSubmit: true
});
```
可以使用下面的項目來創建一個服務器,用來接收和處理崩潰報告 :
* [socorro](https://github.com/mozilla/socorro)
* [mini-breakpad-server](https://github.com/atom/mini-breakpad-server)
## 方法
`crash-reporter` 模塊有如下方法:
### `crashReporter.start(options)`
* `options` Object
* `companyName` String
* `submitURL` 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 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server