Можно ли указать основной файл при запуске node-webkit

Я не уверен, возможно ли это или нет. Мне интересно, есть ли способ указать индексный файл, который открывается при запуске node-webkit. т. е. я пытаюсь переопределить ключ "main" в файле манифеста.

Вот базовый пример настройки и того, что я хочу сделать:

пакет.json:

{
  "main": "index.html",
  "name": "nw-demo",
  ...
}

Пакет выглядит примерно так:

app.nw
| -- package.json
` -- index.html
` -- anotherIndex.html
...

Желаемая команда:

nw app.nw --main="anotherIndex.html"

Мне известно о ключе командной строки --url="FILE.html", указанном здесь, но когда я передаю этот параметр node-webkit, он вообще не открывается.


person Chris Dargis    schedule 06.11.2013    source источник


Ответы (1)


Node Webkit может поддерживать открытие файла по вашему желанию. Этот код не является пуленепробиваемым, но он должен помочь вам начать работу.

Следуй этим шагам:

  1. Поместите следующий код JavaScript в заголовок страницы index.html по умолчанию:

    window.gui = require('nw.gui');
    
    checkFile = function()
    {
        var arg = window.gui.App.argv[1];
        if (arg)
        {
    
            window.location = arg;
    
        }
    }
    
  2. Теперь добавьте это к тегу body: onLoad="checkFile();"

  3. Теперь вы сможете вызывать Node WebKit из командной строки следующим образом:

nw app.nw startwiththisfile.html

Если файл startwiththisfile.html находится в вашем пакете app.nw, он должен запуститься.

person Ewald    schedule 07.11.2013
comment
В этом примере является ли credits.html частью пакета app.nw? Это не работает для меня. Предоставление любого пути (абсолютного или нет) с помощью переключателя не открывает приложение для меня. - person Chris Dargis; 07.11.2013
comment
Файл Credits.html — это физический файл, расположенный в той же папке, что и приложение nw.exe. Вы уверены, что указываете полный физический путь к файлу? - person Ewald; 07.11.2013
comment
О, подождите, вы хотите запустить альтернативный файл В пакете app.nw? - person Ewald; 07.11.2013
comment
Да, это именно то, что я хочу сделать. Более того, я уверен, что предоставляю правильный полный физический путь. Однако я тестирую это на Mac, а не на Windows. - person Chris Dargis; 07.11.2013
comment
Крис, ОС не имеет значения, этот файл не существует до того, как приложение извлечет его, дай мне немного покопаться, у меня есть идея. - person Ewald; 07.11.2013
comment
Я внес некоторые изменения, потребовалось некоторое время, чтобы получить их, JavaScript — это язык, который я все еще изучаю, я только что закончил CodeCademy несколько недель назад :) - person Ewald; 07.11.2013
comment
Это выглядит многообещающе, спасибо! Как только у меня будет возможность попробовать, я дам вам знать. - person Chris Dargis; 07.11.2013
comment
Пожалуйста, я проверил это на своих компьютерах с Windows и Linux, вам может потребоваться изменить [0] индекса в зависимости от того, как Mac передает аргументы. - person Ewald; 07.11.2013
comment
if(process.platform == "darwin") index=0; else index=1; должен сделать его совместимым с Windows и Mac. - person jmort253; 12.04.2014
comment
Спасибо @jmort253 - отличный совет! - person Ewald; 14.04.2014