两个具有相同代码库的Phonegap应用程序?

时间:2015-06-18 07:19:40

标签: android ios angularjs cordova architecture

我正在开发支持iOS和Android的Phonegap应用程序(使用AngularJs + Bootstrap)。到目前为止,我们必须维护两个代码库,但功能相同,只有很少的差异,如下所示。

  • 应用程序名称/图标不同
  • 主网址与网络服务电话不同

前:

PhoneGap App X:拨打http://abc/xappinfo weservice,使用x_icon_app.png (这必须为iOS和Android构建,我没有问题)

PhoneGap App Y:致电http://xyz/yappinfo weservice,使用y_icon_app.png和其他UI元素进行移动皮肤 (这也必须为iOS和Android构建)

PhoneGap App X和Y都使用相同的代码进行业务逻辑。

我想为两个应用维护一个代码库,因为只有很少的差异。有什么办法可以实现这一目标或简化我的开发工作吗?

2 个答案:

答案 0 :(得分:1)

我有类似的情况。我将所有app文件夹放在一个文件夹中,并将以下代码放在名为 persist.js 的根文件夹中的文件中。其目的是在所有不同的应用程序中保持文件更改,保持相同的路径。这是一本小手册,但有效...

var fs = require('fs');
var chalk = require('chalk');
var argv = require('minimist')(process.argv.slice(2));
var file = argv.f;

var apps = [
    'app_folder_1',
    'app_folder_2',
    'app_folder_3',
    'app_folder_4',
    'app_folder_5',
];

if(file){

    if (fs.existsSync(file)) {
        console.log(chalk.blue('Found source file'));
        var fileWithoutApp = file.substring(file.indexOf('/'));
        apps.map(app => {
            fs.writeFileSync(app + fileWithoutApp, fs.readFileSync(file));
            console.log(chalk.green(`File copied to: ${app + fileWithoutApp}`))
        });

    } else {
        console.log(chalk.red('File does not exist'));
    }

} else {
    console.log(chalk.red('No file specified'));
}

对任何项目文件夹中的文件进行更改后,只需从命令行调用以下命令:

node persist -f [relative path to your file that has changes]

这将持续改变所有项目。就像我说的,一点手册......但有效:)

答案 1 :(得分:0)

当你使用cordova或ionic + angularjs时,你可以编译两个设备的应用程序,这更简单,你喜欢并发症!