我有一个用Angular 2编写的Web应用程序代码。我想使用ionic 2为同一个Web应用程序构建一个混合移动应用程序。离子2使用角度2的核心概念: -
是否可以使用离子2中的角度2代码,并修复了较小的平台兼容性? 有没有办法将角度2代码转换为离子2? 或者我必须再次在离子2中为移动应用程序编码?
任何帮助都将不胜感激。
答案 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
将您的Angular项目与通过复制除文件夹中的package.json文件之外的每个文件夹和文件而创建的Cordova项目合并 您的Angular项目根目录到Cordova项目根目录 目录。
小心地在两个目录中打开package.json文件,并小心地将两个文件合并为一个(在cordova项目中)。的 生成的package.json应该如下所示:
合并后package.json外观的屏幕截图 5.开发项目文件夹为src /。您应该在那里开始测试/构建Angular 4应用程序!
- 为开发服务器运行ng serve。导航至http://localhost:4200/。如果您更改任何来源,该应用程序将自动重新加载 文件。
通过上述步骤,您已经成功合并并转换了 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 | [平台]