【问题标题】:How to build an offline supporting web application with AngularDart如何使用 AngularDart 构建离线支持 Web 应用程序
【发布时间】:2016-11-24 08:05:56
【问题描述】:

我们已经开始在 AngularDart 2 上构建一个简单的 Web 应用程序。

即使客户端失去了互联网连接,如何让它在客户端上运行的最佳方式是什么?现在我正在使用 Lawndart 库来使用本地存储来保存从 REST-Api 接收到的一些数据,它工作正常。但是我还没有弄清楚如何告诉客户端浏览器缓存所有源并在没有互联网连接时使用它们。 (现在我只是使用我的 Redstone-Dart 服务器(运行 REST-Services)来提供源代码)

我偶然发现了 Angular Mobile Toolkit (https://mobile.angular.io/guides/),但它仅适用于 TypeScript,还是有办法将它与 Dart 一起使用?

此外,在项目的后期,可能需要向客户端发送推送通知……这可以通过 Dart 和 Angular 2 实现吗?

【问题讨论】:

标签: angular dart angular-dart


【解决方案1】:

关于以下几点:

缓存所有资源并在没有互联网连接时使用它们

虽然已弃用且名声不佳,但我个人仍然使用 AppCache (https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache)。我知道当人们谈论渐进式应用程序和服务工作者时,2005 年的解决方案看起来如此。它是目前唯一有效的跨浏览器解决方案。

很容易设置(只需提供 manifest.appcache)。对于 Angular 应用程序,它主要包含 index.html、main.dart.js 和外部依赖项。 对我来说,它适用于 Safari、Chrome 和 Firefox(无法判断 IE/Edge)。由于我需要 iOS,因此我找不到另一个替代方案(服务人员)。 Chrome 开始向非 https 网站发送警告,但到目前为止一切正常。

真正的推送通知在网络环境中更为复杂;我个人使用 Firebase 实时数据库来“推送”更新

【讨论】:

  • 感谢您的回答!我让它与应用缓存方法一起工作,今天想自己添加一个答案......我的 appcache 文件中只有一个错字,当一个文件无法加载时,整个 appcache 将无法工作。关于 firebase 方法,除了自行实现的后端服务器之外,您还使用它,还是只有提供数据和文件的 firebase 服务器?是否可以自己托管 Firebase 服务器?
  • 是的,appcache 有一些限制。我只是使用 firebase 进行身份验证和类似机制的推送(appengine 文档实际上建议从通道(旧的实时解决方案)切换到 firebase:cloud.google.com/appengine/docs/deprecations/channel)。我现在没有在 firebase 中存储数据,因为我现在有一个 appengine java 后端。我只是使用 firebase 通知客户端他们有数据要从后端提取......据我所知,不,您不能托管 firebase 服务器。
  • 如果你想要一个没有外部依赖的纯 dart,我可以推荐另一个我有一个只有 dart 的服务器(shelf + rpc + mongo)的解决方案:使用 websocket 进行实时通知。我不知道红石(它基于架子对吗?)但是架子有一个很好的方法来集成 websocket
  • 好的,我去看看!谢谢!
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多