Electron 在渲染进程内可用的模块

下面是 Electron 中渲染进程可用的模块:

模块 描述
desktopCapturer 用来获取可用资源,这个资源可通过 getUserMedia 捕获得到
ipcRenderer 是一个 EventEmitter 类的实例,它提供了有限的方法,可以从渲染进程向主进程发送同步或异步消息,也可以收到主进程的相应
remote 提供了一个简单的跨进程之间通信的方法
webFrame 用来定制当前网页的渲染

desktopCapturer模块

desktopCapturer 模块用来获取可用的资源,可以用 getUserMedia 来获取。

示例:
// 在渲染进程中
var desktopCapturer = require('electron').desktopCapturer;

desktopCapturer.getSources({types: ['window', 'screen']}, function(error, sources) {
  if (error) throw error;
  for (var i = 0; i < sources.length; ++i) {
    if (sources[i].name == "Electron") {
      navigator.webkitGetUserMedia({
        audio: false,
        video: {
          mandatory: {
            chromeMediaSource: 'desktop',
            chromeMediaSourceId: sources[i].id,
            minWidth: 1280,
            maxWidth: 1280,
            minHeight: 720,
            maxHeight: 720
          }
        }
      }, gotStream, getUserMediaError);
      return;
    }
  }
});

function gotStream(stream) {
  document.querySelector('video').src = URL.createObjectURL(stream);
}

function getUserMediaError(e) {
  console.log('getUserMediaError');
}

上述代码中,当调用 navigator.webkitGetUserMedia 时创建一个约束对象,如果使用 desktopCapturer 的资源,必须设置 chromeMediaSource"desktop" ,并且 audiofalse

如果我们想捕获整个桌面的 audiovideo,可以设置 chromeMediaSource"screen" ,和 audiotrue。 当使用这个方法的时候,不可以指定一个 chromeMediaSourceId

ipcRenderer模块

ipcRenderer 模块是一个 EventEmitter 对象的实例,它提供了一些方法可以用来向主进程发送同步或异步消息,也可以收到主进程的响应。

ipcRenderer 模块有下列方法来监听事件:

方法 描述
on 监听 channel,当有新消息到达,使用 listener(event, args...) 调用 listener
once 为这个事件添加一个一次性 listener 函数
removeListener 从指定的 channel 中的监听者数组删除指定的 listener
removeAllListeners 删除所有的监听者,或者删除指定 channel 中的全部

ipcRenderer 模块有如下方法来发送消息:

方法 描述
send 通过 channel 向主进程发送异步消息,也可以发送任意参数,参数会被 JSON 序列化,之后就不会包含函数或原型链
sendSync 通过 channel 向主进程发送同步消息,也可以发送任意参数,参数会被 JSON 序列化,之后就不会包含函数或原型链
sendToHost 类似 ipcRenderer.send ,但是它的事件将发往 host page 元素,而不是主进程

remote模块

remote 模块提供了一种在渲染进程(网页)和主进程之间进行进程间通讯(IPC)的简便途径。

示例:

下面是从渲染进程创建一个浏览器窗口的例子:

const remote = require('electron').remote;
const BrowserWindow = remote.BrowserWindow;

var win = new BrowserWindow({ width: 800, height: 600 });
win.loadURL('https://github.com');

remote 模块的方法有:

方法 描述
require 返回在主进程中执行 require(module) 所返回的对象
getCurrentWindow 返回该网页所属的 BrowserWindow 对象
getCurrentWebContents 返回该网页的 WebContents 对象
getGlobal 返回在主进程中名为 name 的全局变量(即 global[name])
process 返回主进程中的 process 对象

webFrame模块

webFrame 模块用来定制当前网页的渲染。

示例:

例如将页面放大到 150%

var webFrame = require('electron').webFrame;
webFrame.setZoomFactor(2)

web-frame 模块有如下方法:

方法 描述
setZoomFactor 将缩放参数修改为指定的参数值,缩放参数是百分制的,所以 300% = 3.0
getZoomFactor 返回当前缩放参数值
setZoomLevel 将缩放水平修改为指定的水平值,原始 size 为 0,并且每次增长都表示放大 20% 或缩小 20%
getZoomLevel 返回当前缩放水平值
setZoomLevelLimits 设置缩放水平的最大值和最小值
setSpellCheckProvider 为输入框或文本域设置一个拼写检查 provider

你可能感兴趣的:(electron)