2017-02-07 11 views
2

after_prepareを実行するノードフック付きのcordovaプラグインを作成しています。javascriptフックからcordovaパッケージ名を取得

これはAndroidのみです。

このフックの中から、私がコードをパッケージ名にする必要があるので、パッケージがcom.example.myprojectの場合はsrc/com/example/myprojectフォルダにファイルをコピーできます。

パッケージ名を知っていれば、私はこのパスを作ることができます。今はハードコーディングしていますが、これは2つの異なるパッケージ名で動作するために必要です。

プラグインフックでこのコード内からパッケージ名を取得する方法はありますか?

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

関連する問題