共享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
)。因此您可以为每个平台创建自定义样式,并且它们将自动应用。
所以我认为你可以(而且应该)使用相同的代码,用来构建移动和网络应用,甚至以适应该应用程序的工作像平板电脑或平板手机等设备的罚款。
很酷,谢谢你的信息,你用这种方法来制作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
我刚刚创建一些简单的应用程序仅适用于移动设备,但现在我正在参与一个更大的项目,我们正在采用这种方法。关于您对NativeScript的评价,这两个框架都非常棒,您将能够使用它们创建出色的应用程序,这仅仅是您在使用框架时要查找的内容。在我们的例子中,我们需要一个允许Web开发人员(比如我和我的团队的其他成员)学习曲线不那么陡峭的框架,因此Ionic2(和angular2)与我们完美匹配。 – sebaferreras