当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript ipc-renderer-internal.ipcRendererInternal类代码示例

本文整理汇总了TypeScript中@electron/internal/renderer/ipc-renderer-internal.ipcRendererInternal的典型用法代码示例。如果您正苦于以下问题:TypeScript ipcRendererInternal类的具体用法?TypeScript ipcRendererInternal怎么用?TypeScript ipcRendererInternal使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ipcRendererInternal类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: Promise

export const webFrameInit = () => {
  // Call webFrame method
  ipcRendererInternal.on('ELECTRON_INTERNAL_RENDERER_WEB_FRAME_METHOD', (
    _event, method: keyof WebFrameMethod, args: any[]
  ) => {
    // The TypeScript compiler cannot handle the sheer number of
    // call signatures here and simply gives up. Incorrect invocations
    // will be caught by "keyof WebFrameMethod" though.
    (webFrame[method] as any)(...args)
  })

  ipcRendererInternal.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (
    event, requestId: number, method: keyof WebFrameMethod, args: any[]
  ) => {
    new Promise(resolve =>
      // The TypeScript compiler cannot handle the sheer number of
      // call signatures here and simply gives up. Incorrect invocations
      // will be caught by "keyof WebFrameMethod" though.
      (webFrame[method] as any)(...args, resolve)
    ).then(result => {
      return [null, result]
    }, error => {
      return [errorUtils.serialize(error)]
    }).then(responseArgs => {
      event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, ...responseArgs)
    })
  })
}
开发者ID:vwvww,项目名称:electron,代码行数:28,代码来源:web-frame-init.ts

示例2: reject

 return new Promise<T>((resolve, reject) => {
   const requestId = ++nextId
   ipcRendererInternal.once(`${command}_RESPONSE_${requestId}`, (
     _event, error: Electron.SerializedError, result: any
   ) => {
     if (error) {
       reject(errorUtils.deserialize(error))
     } else {
       resolve(result)
     }
   })
   ipcRendererInternal.send(command, requestId, ...args)
 })
开发者ID:doridoridoriand,项目名称:electron,代码行数:13,代码来源:ipc-renderer-internal-utils.ts

示例3:

export function invokeSync<T> (command: string, ...args: any[]): T {
  const [ error, result ] = ipcRendererInternal.sendSync(command, null, ...args)

  if (error) {
    throw errorUtils.deserialize(error)
  } else {
    return result
  }
}
开发者ID:doridoridoriand,项目名称:electron,代码行数:9,代码来源:ipc-renderer-internal-utils.ts

示例4: registerEvents

export function registerEvents (webView: WebViewImpl, viewInstanceId: number) {
  ipcRendererInternal.on(`ELECTRON_GUEST_VIEW_INTERNAL_DESTROY_GUEST-${viewInstanceId}`, function () {
    webView.guestInstanceId = undefined
    webView.reset()
    const domEvent = new Event('destroyed')
    webView.dispatchEvent(domEvent)
  })

  ipcRendererInternal.on(`ELECTRON_GUEST_VIEW_INTERNAL_DISPATCH_EVENT-${viewInstanceId}`, function (event, eventName, ...args) {
    dispatchEvent(webView, eventName, eventName, ...args)
  })

  ipcRendererInternal.on(`ELECTRON_GUEST_VIEW_INTERNAL_IPC_MESSAGE-${viewInstanceId}`, function (event, channel, ...args) {
    const domEvent = new Event('ipc-message') as IpcMessageEvent
    domEvent.channel = channel
    domEvent.args = args

    webView.dispatchEvent(domEvent)
  })
}
开发者ID:doridoridoriand,项目名称:electron,代码行数:20,代码来源:guest-view-internal.ts

示例5: function

ipcRendererInternal.on('CHROME_TABS_EXECUTESCRIPT', function (
  event,
  senderWebContentsId: number,
  requestId: number,
  extensionId: string,
  url: string,
  code: string
) {
  const result = runContentScript.call(window, extensionId, url, code)
  ipcRendererInternal.sendToAll(senderWebContentsId, `CHROME_TABS_EXECUTESCRIPT_RESULT_${requestId}`, result)
})
开发者ID:vwvww,项目名称:electron,代码行数:11,代码来源:content-scripts-injector.ts

示例6: Promise

export const handle = function <T extends IPCHandler> (channel: string, handler: T) {
  ipcRendererInternal.on(channel, (event, requestId, ...args) => {
    new Promise(resolve => resolve(handler(event, ...args))
    ).then(result => {
      return [null, result]
    }, error => {
      return [errorUtils.serialize(error)]
    }).then(responseArgs => {
      event.sender.send(`${channel}_RESPONSE_${requestId}`, ...responseArgs)
    })
  })
}
开发者ID:doridoridoriand,项目名称:electron,代码行数:12,代码来源:ipc-renderer-internal-utils.ts

示例7: require

const { isParentDir } = require('@electron/internal/common/path-utils')

let absoluteAppPath: string
const getAppPath = function () {
  if (absoluteAppPath === undefined) {
    absoluteAppPath = fs.realpathSync(appPath!)
  }
  return absoluteAppPath
}

// Load the preload scripts.
for (const preloadScript of preloadScripts) {
  try {
    if (!isParentDir(getAppPath(), fs.realpathSync(preloadScript))) {
      throw new Error('Preload scripts outside of app path are not allowed')
    }
    require(preloadScript)
  } catch (error) {
    console.error(`Unable to load preload script: ${preloadScript}`)
    console.error(`${error}`)

    ipcRendererInternal.send('ELECTRON_BROWSER_PRELOAD_ERROR', preloadScript, errorUtils.serialize(error))
  }
}

// Warn about security issues
if (process.isMainFrame) {
  const { securityWarnings } = require('@electron/internal/renderer/security-warnings')
  securityWarnings(nodeIntegration)
}
开发者ID:electron,项目名称:electron,代码行数:30,代码来源:init.ts

示例8: deregisterEvents

export function deregisterEvents (viewInstanceId: number) {
  ipcRendererInternal.removeAllListeners(`ELECTRON_GUEST_VIEW_INTERNAL_DESTROY_GUEST-${viewInstanceId}`)
  ipcRendererInternal.removeAllListeners(`ELECTRON_GUEST_VIEW_INTERNAL_DISPATCH_EVENT-${viewInstanceId}`)
  ipcRendererInternal.removeAllListeners(`ELECTRON_GUEST_VIEW_INTERNAL_IPC_MESSAGE-${viewInstanceId}`)
}
开发者ID:doridoridoriand,项目名称:electron,代码行数:5,代码来源:guest-view-internal.ts

示例9:

 window.addEventListener('focus', () => {
   ipcRendererInternal.send('ELECTRON_GUEST_VIEW_MANAGER_FOCUS_CHANGE', true, guestInstanceId)
 })
开发者ID:doridoridoriand,项目名称:electron,代码行数:3,代码来源:web-view-init.ts


注:本文中的@electron/internal/renderer/ipc-renderer-internal.ipcRendererInternal类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。