共享Angular 2应用程序,网络/移动网络/ Ionic 2

问题描述:

我似乎无法找到在所有平台上使用相同角度2代码的答案,例如Angular 2正在推动他们的网站。如果我有一个现有的网站(仅仅是node.js服务器和Angular 2的骨骼),我怎么能够在不需要保留单独的离子应用的情况下合并离子2?反之亦然(离子应用程序,我需要成为一个Web应用程序)?共享Angular 2应用程序,网络/移动网络/ Ionic 2

有不同的答案就像复制离子应用程序的www文件夹,但是,我不觉得这是一个最佳实践的答案,因为你不能重用100%的代码。它似乎违背了跨平台的观点,以维护两个完全独立的代码库,并且有很多相同的代码。

它似乎违背了跨平台的论点,以维护两个完全独立的代码库和许多相同的代码。

你可以使用完全相同的代码,并决定布局将如何使用platform information显示:

Platform Name Description 
android on a device running Android. 
cordova on a device running Cordova. 
core on a desktop device. 
ios on a device running iOS. 
ipad on an iPad device. 
iphone on an iPhone device. 
mobile on a mobile device. 
mobileweb in a browser on a mobile device. 
phablet on a phablet device. 
tablet on a tablet device. 
windows on a device running Windows. 

使用底层platform信息,您可以显示或者隐藏的东西它的一个core平台(Web应用程序),否(移动应用)通过只简单地做:

this.isWebapp = this.platform.is('core'); 

然后通过使用*ngIf或任何你需要在你的应用程序。

关于风格:

Ionic2使用模式来定制组件的外观。每个平台 都有一个默认模式,但这可以被覆盖。

再次,您可以控制应用程序将如何根据显示设备的样式进行设置。就像你可以阅读here一样,在你的body元素中将添加一个类(如果它是一个web应用,则为core;如果是移动应用,则为ios//windows)。因此您可以为每个平台创建自定义样式,并且它们将自动应用。

所以我认为你可以(而且应该)使用相同的代码,用来构建移动和网络应用,甚至以适应该应用程序的工作像平板电脑或平板手机等设备的罚款。

+0

很酷,谢谢你的信息,你用这种方法来制作web2/iOS/android应用程序与angular2?我也在查看NativeScript,并试图做出使用的决定,Ionic并不声称像NativeScript那样为所有这三种产品声称,并开始倾向于继续使用。 [链接](https://www.nativescript.org/blog/details/nativescript-2.0---the-best-way-to-build-cross-platform-native-mobile-apps) – pwborodich

+0

我刚刚创建一些简单的应用程序仅适用于移动设备,但现在我正在参与一个更大的项目,我们正在采用这种方法。关于您对NativeScript的评价,这两个框架都非常棒,您将能够使用它们创建出色的应用程序,这仅仅是您在使用框架时要查找的内容。在我们的例子中,我们需要一个允许Web开发人员(比如我和我的团队的其他成员)学习曲线不那么陡峭的框架,因此Ionic2(和angular2)与我们完美匹配。 – sebaferreras