cordova - Angular 2 + Phonegap : how can they works together? 如何设置基本模板和工作 apk?

标签 cordova angular

我是 Angular 2 和 PhoneGap 的新手。我想一起使用它们,但我不知道它们如何一起工作:

  • phonegap 基本项目有一个结构(例如源文件夹是“www”,它有他的“package.json”文件等)

  • Angular2基本项目具有不同的结构(例如源文件夹是“src”,它需要一个node_modules文件夹,它有他的“package.json”等)

我尝试合并它们(例如,对于“package.json”,我合并了两个package.json的内容等)。我不知道合并是否正确,但无论如何我不明白它们是如何一起工作的,因为它们有不同的测试方式:

  • phonegap:我可以使用桌面应用程序来运行项目,或者从终端使用“phonegap 服务”。我也尝试创建 apk,并在真实设备上测试它,但在所有这些方式中,我的 angular2 部分都不起作用(只有基本的 html)
  • angular2:为了测试 agular2 项目,我必须执行“npm start”...如果我将其添加到phonegap-merge 项目中,则 Angularsection2 可以工作。

所以我不知道如何让它们在 apk 构建中一起工作。 几天前,我尝试了 Ionic 2,e 当我使用 Ionic2、angular2 部分构建 apk 时可以正常工作。所以我想知道phonegap“编译”命令是否不包含一些Angular2的“服务器”。 不管怎样,我不想使用 Ionic2,因为它有自己的特殊标签

谢谢

最佳答案

您使用 angular-cli 制作项目, 你做了一个 Cordova 项目 然后在你的 angular-cli.json 文件中 -> 更改 cordova 的 www 文件夹的路径。

然后当你这样做时 ng prod build,您的资源将被复制到 cordova 的 www 文件夹中。

我为此写了一个cordova hook,

const fs = require('fs');
const execSync = require('child_process').execSync;



module.exports = function(context) {
    const basePath = context.opts.projectRoot;
    const baseWWW = basePath + '/www';

process.chdir('../bmi-surgical-app');
console.log(`New directory: ${process.cwd()}`);

    execSync("ng build --prod --base-href .",{stdio:[0,1,2]});

    var files = fs.readdirSync(baseWWW);
    for (var i = 0; i < files.length; i++) {
      if (files[i].endsWith('.gz')) {
        fs.unlinkSync(baseWWW + '/' + files[i]);
      }
    }
    fs.writeFileSync(baseWWW + '/.gitignore', `# Ignore everything in this directory

*
# Except this file
!.gitignore
`);


};

但是,还有许多更好的选择,例如 NativeScript 和 Ionic 2。

关于cordova - Angular 2 + Phonegap : how can they works together? 如何设置基本模板和工作 apk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41890233/

相关文章:

android - 在代理后面添加 Cordova/Phonegap 插件

android - 哪个方法 : native app or HTML5 for my radio website?

javascript - 从 Ionic 2 中的 Cordova InAppBrowser 取回 cookie

angular - 如何在ionic 2中制作表格

angular - 主机绑定(bind)和主机监听

javascript - 如何使用 Angular 5 中的 ngrx 状态仅更新一个对象属性或数组中的多个对象属性?

android - 无法让 Pdf417Scanner 作为插件与 Cordova/PhoneGap 一起工作

iphone - 适用于 iOS 的 Xcode 项目自动化

javascript - 无法绑定(bind)到 'chartType',因为它不是 'canvas' 的已知属性

javascript - 如何在 Angular 2中以YYYY-MM-DD格式获取日期