【问题标题】:what are benefits of meteor's phonegap wrapper vs a native app with a webview?流星的 phonegap 包装器与带有 webview 的本机应用程序相比有什么好处?
【发布时间】:2015-08-16 18:21:31
【问题描述】:

使用 phonegap 构建可能是一个不稳定的过程。使用 phonegap 层与仅使用打开 web 视图的普通原生应用程序相比有哪些实际好处?

我了解 MDG 的 cordova 构建在部分应用 JS 代码上添加了一些缓存,但由于新的流星版本每次都会更新整个单个 JS 文件,这不会有太大的好处。也许一些图像缓存?本地网络服务器有什么作用吗?

如果您使用的是来自 JS 的原生 API,那么 cordova 桥会有一些用处。

但是通过使用普通的原生应用程序,您可以获得所有构建稳定性,并且只打开一个 web 视图是相当简单的。 JS 桥接器也很容易打开对任何本机 API 的访问。

有各种各样的 phonegap 插件,但其中大多数都是原生 SDK 的封装,只会引入泄漏问题(例如,让 facebook 登录与 phonegap 和流星一起工作)

我已经构建了一个大约 1MB 的原生 android 包装器,使用最新的 chrome webview,并且可以使用任何原生功能轻松扩展。

我想知道更多使用 phonegap 的好处,尤其是在 MDG 投入时间之后。

更新:流星论坛讨论 https://forums.meteor.com/t/cordova-benefits-vs-custom-native-wrapper/5356

【问题讨论】:

    标签: cordova meteor phonegap-plugins


    【解决方案1】:

    Meteor 在一些修改中使用 Cordova 作为其包装器:

    • Web 服务器,因此您的应用程序可以从 http://meteor.local 访问,而不是 file://www/...
    • 一个自动更新程序,通过热代码推送从服务器更新文件。
    • 进行了一些修改,以允许使用 facebook/twitter/google 登录以弹出 UIWebView 以作为打开浏览器的更好 UI 替代方法登录。这曾经是一个非常糟糕的问题。

    Web 服务器允许您为您的应用使用典型的 Iron 路由。您可以路由到//page/:id 而不是index.html。这使得开发“混合应用程序”和在本地使用 URI 方案变得更加容易。

    还有一些修改设置为使用app-config.js 来生成config.xml。

    因此,除了 phonegap 包装器本身的这些之外,您还可以获得典型的 Meteor 风格应用程序,您可以在其中使用 Meteor 代码和包,例如 HTTP。

    除此之外,功能几乎与cordova 相同。您可以使用 meteor add cordova:<cordova package>@<package_version> 将 cordova 包添加到您的流星应用程序中

    还有一些有趣的发展,例如在 iOS 上使用 WKWebView 的能力,由于依赖 file:// url,目前在 cordova 上无法实现。 WKWebView 比 UIWebView 使用更少的资源并提供更多的性能。在移动设备上非常有用。

    【讨论】:

    • 1) 我通常只是通过http访问远程服务器而不是混合本地文件? (2) 这与运行服务器的 webview 有何不同? (3) 通过 webview 登录是不好的用户体验,因为没有存储密码。本机登录是一个更好的选择。所以我没有看到这三个有什么好处?我不确定我是否明白你关于混合应用程序的观点,你的意思是混合本地文件 URI 来调用远程 http URI?否则它只是您正在访问的普通部署的流星应用程序,它当然使用您想要的任何路线。
    • @dcsan 如果您没有互联网连接而无法访问远程服务器怎么办?在没有 http 服务器的情况下,cordova 过去更接近于您在原始 beta 中描述的内容,但体验很糟糕,http 服务器对他们来说是一个非常好的决定。从那时起,webview 登录只有一次,直到您注销为止。使用/index.html 这样的路由来构建一个流星应用是非常困难的,因为没有访问动态路由。
    • @dcsan 使用混合应用程序,您可以构建您的流星应用程序以在localhost:3000 上运行,并且您可以期望它在您的移动设备上的行为方式相同。如果您为cordova 构建,您只能期望它在file:// 协议下工作,并且不能在Web 服务器上使用。如果您构建一个随附的网络应用程序,您将完成两倍的工作。
    • @dcsan 关于 UIWebView 登录之前的体验曾经是全屏 UIWebView(在科尔多瓦中)或根本没有,因为科尔多瓦不支持弹出窗口。当它是全屏体验时,它曾经是 10-20 秒的白屏(移动 3G 不是即时的),而带有此功能的 UX 几乎是当时流星谈话的最大抱怨。这是讨论该问题的线程之一:groups.google.com/forum/#!topic/meteor-talk/z-OlDmUI_8E。还有一些关于气氛的包也试图解决它,尽管效果很差。
    • re /index.html 这是用于本地文件和 http 服务文件的某种混合类型?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 2020-01-29
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多