我有一个我的同事使用的现有Web应用程序。此Web应用程序使用纯HTML,CSS和JavaScript。我只通过后端与Web服务进行通信。我想尽可能利用本机功能。我偶然发现了PhoneGap。据我所知,基本上有一个名为phonegap- [version] .js的JavaScript文件。根据我的理解,这个文件基本上是一个包装API。然后,您可以使用“入门”信息(http://phonegap.com/start#wp)将代码推送到各个市场。
我的问题是关于phonegap- [version] .js文件。目前,我的应用程序在移动网络上运行良好。有没有办法检测phonegap是否是一个选项?或检测我的代码是否本机运行?例如,我想将设备信息传递回服务。为此,我决定使用: http://docs.phonegap.com/en/1.4.1/phonegap_device_device.md.html#device.platform。我的印象是,如果应用程序在浏览器中运行,phonegap会自动使用navigator.useragent。但是,如果它在本机设备上运行,它将使用编译的再现并传递更具体的信息。
我有道理吗?我有误会吗?我想我的印象是,我会使用phonegap- [version] .js,如果它作为原生应用程序运行,它将使用设备功能。否则,会有钩子优雅地失败。有人可以直接引导我吗?
答案 0 :(得分:0)
除了这个Phone差距之外,还有一个Objective-c库,用于通过XCode将html5文件部署到苹果应用商店。所有文件都应作为html文件存在于设备上,并对Web服务进行ajax调用,然后将该数据解析为html5视图。手机间隙还允许您通过它的objective-c桥接器使用原生api,例如Camera,FileSystem,CoreGraphics,CoreData等。
简而言之,您不会在移动网站上使用phonegap-version.js,如果您将html5应用程序打包为Appstore的本机应用程序并希望利用javascript中的设备本机apis,您会使用它吗? / p>
您不需要检测它,因为您需要部署2个略微不同的代码库,一个用于移动Web,另一个用于在app容器中运行。您可以向设备分支添加一个变量
var runningOnDevice = true;
和一个用于您的移动网络
var runningOnDevice = false;
我有意义吗?