使用phonegap进行构建可能是一个令人沮丧的过程。使用phonegap层与仅仅是一个打开webview的普通本地应用程序的实际好处是什么?
我知道MDG的cordova构建在部分应用JS代码上添加了一些缓存,但由于新的流星版本每次都会更新整个JS文件,这不会有太多好处。也许有一些图像缓存?本地web服务器做什么?
如果你正在使用JS的本地api,那么cordova桥是有用的。
但是通过使用一个普通的原生应用程序,你可以获得所有的构建稳定性,并且只需打开一个webview就相当简单。JS桥也可以很容易地访问任何本地api。
有各种各样的phonegap插件,但大多数都是围绕本地sdk的包装,引入的只是泄漏问题(例如让facebook登录与phonegap一起工作,然后是流星)
我已经构建了一个原生android包装器,它是~1MB,使用最新的chrome webview,并且可以很容易地扩展到任何原生功能。
我想知道更多使用phonegap的好处,特别是千年发展目标在这方面投入了时间。
更新:流星论坛讨论https://forums.meteor.com/t/cordova-benefits-vs-custom-native-wrapper/5356
Meteor在一些修改中使用Cordova作为其包装器:
- 一个web服务器,所以你的应用程序是从http://meteor.local而不是file://www/…
- 通过热代码推送从服务器更新文件的自动更新器。
- 一些修改,允许登录与facebook/twitter/谷歌弹出一个UIWebView登录作为一个更好的UI替代打开浏览器。这曾经是个非常糟糕的问题。
web服务器允许你为你的应用程序使用典型的铁路由。你可以路由到/
, /page/:id
而不是index.html
。这使得开发"混合应用"变得非常容易。在本地使用URI方案
也有一些修改设置使用app-config.js
来生成config.xml。
所以除了这些phonegap包装器本身之外,你还可以得到一个典型的Meteor风格的应用程序,在那里你可以使用Meteor的代码和包,比如HTTP。
除此之外,其功能与cordova几乎相同。你可以使用meteor add cordova:<cordova package>@<package_version>
也有一些有趣的发展,如在iOS上使用WKWebView的能力,由于依赖file://
url,目前在cordova上不可能。WKWebView比UIWebView使用更少的资源,并提供更多的性能。在移动设备上非常有用。