【问题标题】:Existing Angular 2 App and Cordova现有的 Angular 2 应用程序和 Cordova
【发布时间】:2018-03-23 14:42:19
【问题描述】:

我进行了一些搜索,但似乎找不到我的问题的答案。

我有一个现有的 Angular 2 应用程序。我可以使用 Cordova 为多个平台构建它吗?如果没有,是否需要采取特殊步骤来实现这一目标?是否有任何关于其工作原理的实际文档?

在有人建议之前,我会告诉大家我不想与 Ionic 有任何关系。

【问题讨论】:

    标签: cordova angular


    【解决方案1】:

    当然,您可以在现有的 Angular2 应用程序中添加 Cordova 支持。我还没有找到任何官方文档,但有一些资源可以提供一些有用的提示。

    hereherehere

    基本步骤如下:

    • 创建一个cordova项目:cordova create myApp com.example MyApp
    • 添加必要的平台:cordova platform add myPlatform
    • 将所有创建的文件从新的 cordova 项目复制到现有的 Angular 项目中,但以下文件除外:www 文件夹package.json 文件
    • 将您的 angular package.json 与新的 cordova ackage.json 的内容合并。
    • 更改现有的 Angular 构建脚本,将 dist 文件输出到 www 文件夹,以便 cordova 可以找到最终的源文件。

    到这里你应该可以运行 cordova run android/ios/browser 并且你的应用应该可以运行了。如果您需要使用 cordova 特定的插件,您需要将其添加到您的 index.html

    <script type="text/javascript" src="cordova.js"></script>
    

    不用担心,cordova 构建会确保该文件存在于目标平台上。

    然后在您的 ma​​in.tsindex.ts 上添加一个检查以查看设备是否已准备好并引导您的 Angular 应用程序。像这样的:

    let bootstrap = () => {
        platformBrowserDynamic().bootstrapModule(AppModule);
    }
    
    if(window['cordova']){
        console.log("Cordova found")
        document.addEventListener('deviceready',bootstrap);
    } else {
        console.log("Cordova not found")
        bootstrap()
    }
    

    希望它对某人有所帮助。

    【讨论】:

    • 谢谢!只有一件事,cordova 应用程序中的 node_modules 中有一些东西需要复制到 Angular 应用程序中,有些方法,合并两个文件夹对我不起作用,我不知道这些东西是什么,但是如果你不想搞乱替换和跳过文件,我会备份并删除 angular node_modules 目录,复制cordova,然后在 angular 应用程序中运行 npm install 以恢复所有项目的库。
    猜你喜欢
    • 2017-09-20
    • 2017-06-06
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 2017-06-25
    • 2016-10-29
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多