使用离子作为桌面Web应用程序

Ionic是使用html5开发移动应用程序的绝佳框架。 我们也要在桌面浏览器上使用同样的应用程序。 在桌面浏览器和手机浏览器上制作最适合单个响应式用户界面的应用程序是否好用? 或者我们应该针对浏览器和移动应用进行不同的开发。

为了扩大已经说过的一点点,Ionic是仅为移动而build立和testing的。 例如,Internet Explorer未经testing,无法正确处理Ionic中的许多function。 桌面浏览器确实与手机浏览器有不同的function。 你会严重限制可以在桌面上使用你的应用程序的浏览器。

很可能,您应该为桌面和移动设备提供两种不同的应用程序。 除非您有胆量或能力告诉用户他们必须使用Chrome(或Opera)来运行您的网站,否则您需要两个单独的应用程序。 您仍然可以使用Ionic作为移动网站,但是无法使用Cordova的完整平台集成(您将仅限于浏览器提供的本地HTML API)。 您当然可以将大部分业务逻辑保留在两个应用程序共享的公用内核中。 这将需要创build一个共享的angular度模块。 我已经在一个带有Ionic应用程序和一个正常的Angular桌面应用程序(使用Bootstrap)的项目中完成了这项工作。

有很多方法可以检测访问者是来自台式机还是移动设备。 我不知道100%完美的方法,因为它们通常依赖浏览器的用户代理string(并且可能被欺骗,更改等)。 请参阅http://detectmobilebrowsers.com/了解如何在服务器或编程语言中实现移动检测的一些常见脚本或示例。;

这个问题在本周早些时候在ng-europe被问到。 离子家伙的答案是分享你的服务和控制器,但对桌面使用不同的观点。 离子纯粹是专注于移动。

有趣的是,似乎有可能使用名为“Electron”的工具包来生成Ionic应用程序的桌面版本,其类似于Cordova / Phonegap的桌面版本,如本文所述:

http://alexbergin.com/2015/streamlining-desktop-and-mobile-app-development

Electron(原名Atom Shell)封装了一个embedded式的Chromium webview来生成一个“真实”的应用程序。 这也意味着跨浏览器的问题不是一个问题。

上述文章的作者使用了一个离子应用程序成功。

如果你要走这条路,那么你可能需要使用一些响应式技术来优化桌面上的用户体验。

我还没有尝试过,所以我不知道这种方法的优缺点,但我可以想象有些情况下,您只是想快速将桌面版本的应用程序放在一起。

我的评论变得太大了。 这是阐述和补充杰里米·威尔肯的杰出的答案。

它不仅限制了桌面上的浏览器,而且在屏幕的一部分显示了手机屏幕,看起来完全荒谬(重新思考什么是移动的第一个意思:))。 对于适当的API的需求不能再强调,因为尽pipefunction可能相同,stream动(导航)很可能在移动格式中比在PC格式中变化更多。

我同意Jeremy的观察,即业务逻辑应该保持分离,并作为细粒度的REST APIS使用,例如,在MySQL / MongoDB / Redis或任何其他商业数据存储中使用基于Express.js框架的服务器。 所以,REST API可以在Mobile / Phablet / Mini Tablet UI(带有Ionic)和Desktop / Laptop UI(带有Bootstrap + AngularJS)中使用。 当然我是JS的粉丝,OP可以使用服务器的任何语言select。

该框架仅适用于移动混合应用程序,虽然它将作为普通的HTML应用程序工作。

我会build议使用离子移动,特别是如果你正在使用ionic2使用相同的代码在angular2的桌面只有很小的改动