2015-06-18 74 views
-1

我正在开发支持iOS和Android的Phonegap应用程序(使用AngularJs + Bootstrap)。到目前为止,我们必须维护两个代码库,但它的功能相同,只有下面的几个区别。两个具有相同代码库的Phonegap应用程序?

  • 应用程序名称/图标不同
  • 主要网址是Web服务不同的呼叫

例:

PhoneGap的应用X:打电话http://abc/xappinfo weservice,使用x_icon_app.png (这必须建立iOS和Android,我没有问题)

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

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

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

+0

编写一个代码(需要更改URL),然后检查浏览器操作系统,如if ... else ...并相应地分配url变量。 http://stackoverflow.com/questions/12606245/detect-if-browser-is-running-on-an-android-or-ios-device – Mrunal

+0

AppIcons将基于项目设置,XCode for iOS和Eclipse for Android可以轻松处理。 – Mrunal

+0

嗨Mrunal,谢谢你的评论。我想你不明白我的问题。我编辑过它,请看看它。 – happycoder

回答

0

当你使用科尔多瓦或离子+ angularjs你可以编译这两个设备的应用程序,这是更简单,你喜欢的并发症!

+0

谢谢。请再次参考我的问题。 – happycoder

0

我有类似的情况。我将所有应用程序文件夹放在一个文件夹中,并将以下代码放在名为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] 

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

相关问题