跨混合Ionic应用程序和常规移动网站共享angularJS代码


11

好的,因此,在我们的“创新实验室”中,当前正在推动使用Ionic,这是一种构建在Cordova之上的混合应用程序框架,用于本机访问,而angularJS则用于“ Web代码”。

还有一些纯移动Web项目,例如使用Angular + bootstrap进行响应式设计。

问题是,一些即将到来的项目将需要同时具有移动网站和本机应用程序(离子混合)。大多数功能和屏幕将相同,共享后端和大多数UI,但仍然会有一些区别。

所以我的问题是;如何构建项目,使其既可以成为离子项目又可以使用两种不同的部署方法来成为常规的有角度的网站。大部分代码已被重用,但移动网站的某些视图和混合应用程序的一些视图(使用更多的本机组件和约定),也许还有一些路由差异。

那是个好主意吗?

在共享代码中,是否有一种简单的方法可以知道您是哪种情况?一些IF,一些指令在其上下文之外无效,等等。

感觉好像有些缺失的链接我可能没有意识到。

提前致谢。

Answers:


2

您可以构建一个包含一些原子 组件(https://docs.angularjs.org/guide/component)/服务的共享内核。

Web应用程序,Android应用程序,iOS应用程序,监督应用程序……都将以自适应方式使用内核提供的功能。

想象一下,如果您想部署一个Android应用程序。使用https://material.io以及一些Android功能是有意义的。iOS应用程序将具有不同的设计(https://developer.apple.com/ios/human-interface-guidelines/overview/themes/)等...

构建可靠的实现,并使用原子组件并对其进行调整!


0

对于使用Ionic的移动应用程序和使用AngularJS或Angular的网络应用程序,这些应用程序中的某些应用程序将具有共享功能以及连接到服务器并获取一些数据的情况非常普遍,但这并不意味着您将没有该代码的副本在您的新项目中。

我的观点是,如果您知道UI层之间只会存在差异,并且该项目需要Web应用程序和移动应用程序,并且您可以拥有3层,其中Web应用程序的UI可以是有角度的,而移动应用程序可以是离子的。使用诸如cordova phonegap或ionic之类的本机功能所获得的好处可能远远超过将它们全部保留为一种类型的好处。

我只想说明一下,如果您的客户希望将Web应用程序转换为本机移动应用程序,则在这些UI之间切换并不困难。

我将从以下问题开始

  1. 该项目是否需要用于移动设备的单独UI?
  2. 该项目需要本机移动功能吗?
  3. 该项目是否需要用于移动设备的单独的UI和backedn函数?

如果对所有3个答案都是肯定的,则创建两个项目。如果您对1和2的回答是“是”,则创建有角度的后端和Web应用程序以及ionic或phonegap应用程序。如果您的答案仅是1,那么我建议对两者都使用angular。

如果某个时候您想在ionic中使用角度视图(查找ionic-ng东西),则前端,移动应用程序和Web应用程序将具有相同的代码。最后,您将能够独立管理以下内容:

  1. 数据库迁移
  2. API的服务器端后端功能与1连接以获取数据
  3. 使用Angular Views的前端Web应用消耗2
  4. 如果需要移动应用程序,它将使用Ionic / phonegap解决设备依赖性,但使用Angular创建视图并使用2。

希望这会有所帮助并引起一些讨论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.