electron 打包客户端与网页程序交互

想请教下大家 ,使用electron 做为一个壳,使用remote重开窗口,链接线上地址 。 有没有办法能让我在about.html中跟当前客户端做交互 。比如在网页中点击按钮关闭当前窗口。急急急 ~

clipboard.png

阅读 14.5k
3 个回答

API里有window.open函数的,通过BrowserWindowProxy.close()关闭子窗口,你可以给按钮点击事件,来关闭窗口。

Hi~

可以使用WebContents的一个method:
contents.executeJavaScript(code[, userGesture, callback])
在窗口环境中执行Javascript代码.

演示代码(点击百度logo即可关闭窗口)
main.js

'use strict';

const APP = {
    version: "1.0.0",
    author: "uffy@qq.com",
    root: __dirname,
    debug: true
};

const electron = require("electron");
const {BrowserWindow, ipcMain} = electron;

electron.app.on("ready", () => {

    ipcMain.on("app.quit", function (event) {
        electron.app.quit();
    });


    let win = new BrowserWindow();
    win.loadURL("http://www.baidu.com");

    win.webContents.executeJavaScript(`
    document.getElementById("lg").addEventListener("click", function(){
        require("electron").ipcRenderer.send("app.quit");
    });
`)
});

参考:executeJavaScript

其实在electron api演示(demo)中就有一个类似的例子,不过那个例子中采用了注册协议的方式来使得打开的页面(在默认浏览器中的)通过协议访问调用打包的 api演示程序。electron api 演示中文翻译版

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题