微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修复电子模块远程和 dialog.showOpenDialog

如何解决修复电子模块远程和 dialog.showOpenDialog

这是我的代码

const parse = require('csv-parse');
var $ = global.jQuery = require('jquery');
const electron = require('electron');
const { dialog } = require('electron');  
const fs = require('fs');      
const path = require("path");

function myImage() {
    dialog.showOpenDialog({properties: ['openFile']}).then(result => {
        if (result.canceled) {
            console.log("No file selected!")
        } else {
            const filePath = result.filePaths[0];
            const fileName = path.basename(filePath);
            imgFolderPath = path.join(app.getPath('userData'),fileName);
            fs.copyFile(filePath,imgFolderPath,(err) => {
                if (err) throw err;
                console.log(fileName + ' uploaded.');
            });
        }
    });

}

$("#uploadMyImg").on("click",() => {
    myImage()
});

这是我点击uploadMyImg按钮

时的控制台
Uncaught TypeError: Cannot read property 'showOpenDialog' of undefined

电子改变了什么还是我做错了什么

这是来自 main.js (electron) 的代码

我应该使用其他模块吗

const {app,browserWindow,ipcMain} = require('electron')

let mainWindow 
function createMainWindow() {
    mainWindow = new browserWindow ({
        autoHideMenuBar: true,resizable: false,width: 1920,height: 1080,webPreferences: {
            nodeIntegration: true,contextIsolation: false,enableRemoteModule: true
        }
    })

    mainWindow.loadFile('./newClient.html')

}

app.on('ready',() => {
    createMainWindow()

    mainWindow.on('ready',() => mainWindow = null)

})

app.on('window-all-closed',function () {
    if (process.platform !== 'darwin') app.quit()
})

电子改变了什么???

解决方法

您不能像这样通过 dialog 直接从电子导入 remote

const { remote } = require('electron');
let dialog = remote.dialog

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。