Electron: Windows альтернатива для приложения в 'открытом файле' - PullRequest
3 голосов
/ 17 июня 2020

Я создаю приложение Electron для редактирования файлов .txt на компьютере windows. Я использовал конструкторы электронов fileAssociations для открытия файлов .txt, но не могу узнать путь к файлу. Когда я просмотрел документы Electron, я обнаружил это , что именно то, что я хочу, кроме ma c -only ... есть ли способ получить такую ​​же функциональность на Windows?

Ответы [ 3 ]

1 голос
/ 26 июня 2020

Как упоминал Лукас Роланд, вам нужно проанализировать process.argv, чтобы получить путь к файлу

if (process.argv.length >= 2) { // or electron.remote.process.argv
    let filePath = process.argv[1];
    //open, read, handle file
}
0 голосов
/ 26 июня 2020

На Windows вам нужно использовать process.argv в основном процессе, чтобы прочитать путь к файлу. Согласно этот ответ , вы можете использовать пакет fs для открытия, чтения и записи файлов. Описано еще несколько способов сделать то же самое.

Также может оказаться полезным следующий фрагмент из этого сообщения в блоге .

Как настроить ваше приложение, чтобы открывать связанные файлы в Windows

На Windows, вам нужно проанализировать process.argv, чтобы получить путь к файлу. Затем вы можете использовать модуль IP C для обработки сообщений от процесса рендеринга (веб-страницы) и извлечения хранилища данных из файла. Вот как мы это сделали:

В основном процессе:

var ipc = require('ipc');
var fs = require('fs');

// read the file and send data to the render process
ipc.on('get-file-data', function(event) {
  var data = null;
  if (process.platform == 'win32' && process.argv.length >= 2) {
    var openFilePath = process.argv[1];
    data = fs.readFileSync(openFilePath, 'utf-8');
  }
  event.returnValue = data;
});

Я не очень хорошо разбираюсь в electron, иначе я бы попытался дать вам лучший ответ, но это то, что я мог найти с моим пониманием об этом. Надеюсь, это поможет!

0 голосов
/ 23 июня 2020

На Windows вам необходимо проанализировать process.argv (в основном процессе), чтобы получить путь к файлу.

из https://github.com/electron/electron/blob/master/docs/api/app.md#event -open-file- macos

...