Что означает «chrome .runtime.sendNativeMessage (« com.add0n.node ») в веб-расширении - PullRequest
0 голосов
/ 22 февраля 2020

Я пишу веб-расширение, которое должно вызвать pando c. Я смотрю на YouTube Downloader в качестве примера вызова внешней программы. Я ознакомился с документацией по веб-расширениям, чтобы узнать, как использовать систему nativeMessage , и она требует наличия манифеста приложения для идентификации внешней программы для веб-браузера и расширения. Я не могу найти, где у YouTube Downloader есть манифест приложения; кажется, не использовать один. Вместо этого он инициировал соединение с FFMPEG (аудио-видео программой, которая обрабатывает мультиплексирование видео YouTube с хост-системы) посредством этого раздела кода:

ffmpeg.convert = function(command, args, dictionary) {
  return new Promise((resolve, reject) => {
    args = args.split(/\s/).map(s => {
      Object.keys(dictionary).forEach(key => s = s.replace(key, dictionary[key]));
      return s;
    });
    chrome.runtime.sendNativeMessage('com.add0n.node', {
      cmd: 'exec',
      kill: true,
      command,
      arguments: args
    }, obj => {
      if (!obj || obj.error || (obj.code && obj.code !== 0)) {
        console.error(obj);
        reject(new Error(obj ? obj.error || obj.stderr || obj.stdout : 'error_12'));
      }
      else {
        resolve();
      }
    });
  });
};

FFMPEG уже установлен в моей системе, поэтому это не проблема для того, чтобы это было названо. Но я не могу найти, где будет храниться манифест приложения FFMPEG. Я даже не вижу расширения, вызывающего FFMPEG в системе nativeMessage, вместо этого он вызывает 'com.add0n.node'. Я попытался имитировать это для собственного расширения и получаю сообщение об ошибке о том, что 'com.add0n.node' неизвестно.

Настройка манифеста приложения для моей собственной системы не является проблемой. Но я надеялся поделиться своим веб-расширением и не ожидать, что конечные пользователи должны понимать, как администрировать свои системы, чтобы добавить манифест приложения, чтобы сделать pando c известным веб-браузеру. Я хотел бы, чтобы мои пользователи должны были установить мое веб-расширение и pando c и не должны понимать, как изменять свои файлы конфигурации, обновляя веб-браузер. Я не уверен, существует ли стандартный способ добавления манифестов приложений, когда люди устанавливают веб-расширения, которые полагаются на них. (Было бы неразумно ожидать, что я перепакую pando c для удовлетворения потребностей моего веб-расширения.) Я не уверен, как YouTube Downloader обходится без использования 'com.add0n.node'?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...