×

Electron 教程

Electron 教程简介Electron 快速入门Electron 桌面环境集成Electron 在线/离线事件探测Electron 进程支持的 Chrome 命令行开关Electron 环境变量Electron 支持的平台Electron 应用部署Mac App Store 应用提交向导Electron 应用打包Electron 使用原生模块Electron 主进程调试使用 Selenium 和 WebDriverElectron DevTools扩展使用 Pepper Flash 插件使用 Widevine CDM 插件Electron 术语表Electron 离屏渲染Electron 交互式解释器 (REPL)Electron 自动更新功能autoUpdater

Electron API

Electron DOM File对象Electron DOM <webview>Electron window.open 函数

在主进程内可用的模块

Electron app 模块Electron autoUpdater 模块Electron BrowserWindow 模块Electron contentTracing 模块Electron dialog 模块Electron global-shortcut 模块Electron ipcMain 模块Electron menu 模块Electron MenuItem 模块Electron powerMonitor 模块Electron powerSaveBlockerElectron protocol 模块Electron session 模块Electron webContents 模块Electron Tray 模块Electron Locales

在渲染进程(网页)可用模块

Electron desktopCapturer模块Electron ipcRenderer 模块Electron remote 模块Electron webFrame 模块

两种进程都可用的模块

Electron clipboard 模块Electron crashReporter 模块Electron nativeImage 模块Electron screen 模块Electron shell 模块

Electron 开发

Electron 编码规范Electron 源码目录结构Electron 和 NW.js技术上的差异Electron 构建系统概览Electron 构建步骤 (OS X)Electron 构建步骤 (Windows)Electron 构建步骤 (Linux)调试中使用 Symbol ServerElectron 常见问题Electron 版本管理electron window 提交指南自动化持续集成系统(CI)测试Electron 文档风格指南

Electron protocol 模块


protocol 模块可以注册一个自定义协议,或者使用一个已经存在的协议.

例子,使用一个与 file:// 功能相似的协议 :

const electron = require('electron');
const app = electron.app;
const path = require('path');

app.on('ready', function() {
    var protocol = electron.protocol;
    protocol.registerFileProtocol('atom', function(request, callback) {
      var url = request.url.substr(7);
      callback({path: path.normalize(__dirname + '/' + url)});
    }, function (error) {
      if (error)
        console.error('Failed to register protocol')
    });
});

注意: 这个模块只有在 app 模块的 ready 事件触发之后才可使用.

方法

protocol 模块有如下方法:

protocol.registerStandardSchemes(schemes)

  • schemes Array - 将一个自定义的方案注册为标准的方案.

一个标准的 scheme 遵循 RFC 3986 的 generic URI syntax 标准. 这包含了 file:  filesystem:.

protocol.registerServiceWorkerSchemes(schemes)

  • schemes Array - 将一个自定义的方案注册为处理 service workers.

protocol.registerFileProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

注册一个协议,用来发送响应文件.当通过这个协议来发起一个请求的时候,将使用 handler(request, callback) 来调用 handler .当 scheme 被成功注册或者完成(错误)时失败,将使用 completion(null) 调用 completion.

  • request Object
    • url String
    • referrer String
    • method String
    • uploadData Array (可选)
  • callback Function

uploadData 是一个 data 对象数组:

  • data Object
    • bytes Buffer - 被发送的内容.
    • file String - 上传的文件路径.

为了处理请求,调用 callback 时需要使用文件路径或者一个带 path 参数的对象, 例如 callback(filePath)  callback({path: filePath}).

当不使用任何参数调用 callback 时,你可以指定一个数字或一个带有 error 参数的对象,来标识 request 失败.你可以使用的 error number 可以参考 net error list.

默认 scheme 会被注册为一个 http: 协议,它与遵循 "generic URI syntax" 规则的协议解析不同,例如 file: ,所以你或许应该调用 protocol.registerStandardSchemes 来创建一个标准的 scheme.

protocol.registerBufferProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

注册一个 scheme 协议,用来发送响应 Buffer .

这个方法的用法类似 registerFileProtocol,除非使用一个 Buffer 对象,或一个有 data, mimeType, 和 charset 属性的对象来调用 callback .

例子:

protocol.registerBufferProtocol('atom', function(request, callback) {
  callback({mimeType: 'text/html', data: new Buffer('
Response
'
)}); }, function (error) { if (error) console.error('Failed to register protocol') });

protocol.registerStringProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

注册一个 scheme 协议,用来发送响应 String .

这个方法的用法类似 registerFileProtocol,除非使用一个 String 对象,或一个有 data, mimeType, 和 charset 属性的对象来调用 callback .

protocol.registerHttpProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

注册一个 scheme 协议,用来发送 HTTP 请求作为响应.

这个方法的用法类似 registerFileProtocol,除非使用一个 redirectRequest 对象,或一个有 url, method, referrer, uploadData  session 属性的对象来调用 callback .

  • redirectRequest Object
    • url String
    • method String
    • session Object (可选)
    • uploadData Object (可选)

默认这个 HTTP 请求会使用当前 session .如果你想使用不同的session值,你应该设置 session  null.

POST 请求应当包含 uploadData 对象.

  • uploadData object
    • contentType String - 内容的 MIME type.
    • data String - 被发送的内容.

protocol.unregisterProtocol(scheme[, completion])

  • scheme String
  • completion Function (可选)

注销自定义协议 scheme.

protocol.isProtocolHandled(scheme, callback)

  • scheme String
  • callback Function

将使用一个布尔值来调用 callback ,这个布尔值标识了是否已经存在 scheme 的句柄了.

protocol.interceptFileProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

拦截 scheme 协议并且使用 handler 作为协议的新的句柄来发送响应文件.

protocol.interceptStringProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

拦截 scheme 协议并且使用 handler 作为协议的新的句柄来发送响应 String.

protocol.interceptBufferProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (可选)

拦截 scheme 协议并且使用 handler 作为协议的新的句柄来发送响应 Buffer.

protocol.interceptHttpProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

拦截 scheme 协议并且使用 handler 作为协议的新的句柄来发送新的响应 HTTP 请求. Intercepts schemeprotocol and uses handler as the protocol's new handler which sends a new HTTP request as a response.

protocol.uninterceptProtocol(scheme[, completion])

  • scheme String
  • completion Function 取消对 scheme 的拦截,使用它的原始句柄进行处理.

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)