您对混合应用程序的广泛定义可能有点过于宽泛。在 webview 中运行的整个应用程序是混合应用程序的充分但非必要条件。
你可以把它想象成一个频谱:
纯原生 Facebook Appcelerator PhoneGap HTML5
|---------------|--------------|-------------|---- --------|
例如,PhoneGap 应用程序就像您提到的那样:“将 WebView 包装在本机应用程序中的应用程序”。然而,Appcelerator 应用程序也是混合应用程序,但它们不一定需要包含 webview 组件。它们是混合的,因为它们的 UI 是原生的,但它们的部分逻辑运行在 Javascript 上。
Facebook 绝对不是在 PhoneGap 中构建的。在 HTML5 中创建没有任何性能障碍的滑动菜单对于当前的 webview 来说几乎是不可能的。有迹象表明 Facebook 也没有内置在 Appcelerator 中。根据我的经验,由于包含了 Titanium 库,Appcelerator 应用程序往往具有巨大的文件大小。如果 Facebook 是在 Appcelerator 中构建的,它应该比现在的规模大很多。
Facebook 拥有构建自己的原生应用程序的资源,因此出于通常的原因(开发速度、易于编码),它不需要框架。
最后,也许我会说 Facebook 不是使用(公开可用的)框架构建的最好理由是,如果是这样,那么该框架将要么 1)向全世界欣然宣布它,要么 2)被 Facebook 收购。