将Angular 2 Web应用程序代码转换为离子2移动应用程序代码?

时间:2017-05-12 08:05:30

标签: angularjs typescript ionic-framework

我有一个用Angular 2编写的Web应用程序代码。我想使用ionic 2为同一个Web应用程序构建一个混合移动应用程序。离子2使用角度2的核心概念: -

是否可以使用离子2中的角度2代码,并修复了较小的平台兼容性? 有没有办法将角度2代码转换为离子2? 或者我必须再次在离子2中为移动应用程序编码?

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

Ionic是一个角度的框架包装器,所以你的当前应用程序可以在技术上进行转换,但你必须决定它是否值得。

由于Ionic具有特定于框架的组件,因此您必须根据离子规范重写代码,以及如何设置应用程序的样式。离子导航也略有不同,并使用了//Utility.swift import Foundation func delay(by delay: DispatchTimeInterval, closure: @escaping () -> Void) { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delay, execute: closure) } pop()的分层导航,必须进行更改。

然后存在离子与cordova结合在一起的问题,这不是标准ng2应用程序中的默认导入。 因此,您必须在默认的角度内容之上实现许多配置。这最终会变得非常污点。

我认为这里最好的方法是启动一个新的离子应用程序(下载离子cli)

  

_ ionic start

然后你有一个新的离子项目,所有的配置都得到了照顾。然后在您的其他angular 2应用程序中,将核心功能写入可以导出到新离子应用程序的服务和组件中。

答案 1 :(得分:2)

您不能只将Angular源代码复制到Ionic项目中。

您必须以离子方式重写代码。

我也花时间寻找这个解决方案,但我找不到好的解决方案。所以,我开发了ABC framework,它将Angular webapp捆绑到Cordova应用程序中。

它具有额外的功能,如实时重新加载。

我相信这会为你做。

答案 2 :(得分:-2)

我找到了一个教程,该教程解释了如何将Angular 2项目转换为Cordova。 教程:Tutorial HERE

问题对象没有提及Cordova,但是Ionic使用Cordova,而最终对象是拥有移动APP,本教程说明了如何实现此目的。

已更新

取自以上文章

  

要求

     

您必须已经安装了Cordova CLI,否则请参考Cordova。   入门和有关如何实现的文档。你有   已经创建了Angular 2及更高版本的项目。这写   将基于Angular CLI,因此,如果您尚未安装,请   请访问Angular Documentation STEPs(建议:确保您有备份   在执行此步骤之前)

     

使用下面的cordova创建一个新的Cordova项目:cordova create   你好com.example.hello HelloWorld   2.添加您的Cordova建筑平台:

     

cordova平台添加[platform]平台可以是Android,   黑莓或iOS

     
      
  1. 将您的Angular项目与通过复制除文件夹中的package.json文件之外的每个文件夹和文件而创建的Cordova项目合并   您的Angular项目根目录到Cordova项目根目录   目录。

  2.   
  3. 小心地在两个目录中打开package.json文件,并小心地将两个文件合并为一个(在cordova项目中)。的   生成的package.json应该如下所示:

  4.   
     

合并后package.json外观的屏幕截图   5.开发项目文件夹为src /。您应该在那里开始测试/构建Angular 4应用程序!

     
      
  1. 为开发服务器运行ng serve。导航至http://localhost:4200/。如果您更改任何来源,该应用程序将自动重新加载   文件。
  2.   
     

通过上述步骤,您已经成功合并并转换了   Angular Project到Mobile App。要实现Cordova插件,请添加   Angular项目html文件(src / index.html)中对cordova.js的引用。

     

注意   当添加对cordova.js的引用时,将抛出/显示错误   您尝试在本地服务器上进行测试。

     

使用以下命令添加Cordova设备插件:

     

cordova插件添加cordova-plugin-device我们已经快完成了,现在让我们   使用cordova获取设备信息。

     

在您的角度项目中,导入并实现OnInit并添加了   插件回调函数如下。

     

从“ @ angular / core”导入{Component,OnInit}; …。 …。出口舱   AppComponent实现OnInit {ngOnInit(){
  document.addEventListener(“ deviceready”,function(){
  警报(device.platform); },错误);打字稿不会   识别“ device.platform”声明并警告找不到设备

     

要解决此问题,请在导入后立即在下面添加以下行   线

     

声明var设备;就是这样。

     

最后是建立我们的项目。

     

构建和运行我们的应用程序

     

将src / index.html中的标签更新为,这将使angular可以访问目录中的文件   路径,因为我们不在服务器上托管。在构建之前,让我们   了解Angular项目成功创建一个dist文件夹   在Cordova使用www文件夹运行时进行构建,因此我们需要   更新Angular项目以构建在www文件夹中。为此,请打开   .angular-cli.json / angular.json在我们的根目录中,然后更改   outDir属性的值从“ dist”到“ www”。下一步是   构建我们的角度应用程序,请参阅我的第一篇有关如何   在服务器上部署并托管一个2或4角的项目以实现该目标   如果您不知道该怎么做。最后,构建并运行您的   通过执行以下代码来完成Cordova项目:cordova build   android | ios | [平台]