2017-02-07 16 views
2

Я пишу плагин cordova с крючком узла для запуска after_prepare.Получить имя пакета cordova от javascript hook

Это только для Android.

Из этого крючка мне нужно получить имя пакета cordova, поэтому я могу скопировать файл в папку src/com/example/myproject (если пакет com.example.myproject).

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

Есть ли способ получить имя пакета из этого кода в плагине?

module.exports = function(ctx){ 
    var fs = ctx.requireCordovaModule('fs'); 
    var path = ctx.requireCordovaModule('path'); 
    var deferral = ctx.requireCordovaModule('q').defer(); 

    //get package name here 

    //do other stuff 
} 

Я провел много исследований, но не смог найти это.

Спасибо.

ответ

2

Не похоже, что он доступен из контекстного объекта, но вы можете попробовать проанализировать файл config.xml.

module.exports = function(context) { 
    var fs = require('fs'); 
    var path = require('path'); 
    var config_xml = path.join(context.opts.projectRoot, 'config.xml'); 
    var et = context.requireCordovaModule('elementtree'); 

    var data = fs.readFileSync(config_xml).toString(); 
    var etree = et.parse(data); 

    console.log(etree.getroot().attrib.id); 
}; 

Плагин local-webserver использует аналогичную стратегию для чтения свойств конфигурации.

+0

Спасибо, это сработало! – Vero

 Смежные вопросы

  • Нет связанных вопросов^_^