该应用程序是一个简单的测试应用程序,我们用来比较jQuery Mobile和Sencha Touch.因此,我们创建了一个index.html文件,其中包含指向jquery.html和sencha.html的链接,这些链接使用不同的UI实现相同的应用程序,但调用相同的phonegap触发器.
我们有两个构建配置:
> App是通过Eclipse在本地构建的
>应用程序通过Phonegap Build在线构建
我们使用与本地构建的Android应用相同的网络内容.我们只删除< script>加载了cordova.js for 2.5.0的元素,并将内容与我们在本地构建的Android应用程序中使用的相同config.xml打包在一起.
本地构建的Android应用程序工作得很好.仅当通过Phonegap Build在线为iOS构建应用程序时才会出现问题.正如预期的那样,Android应用程序在线构建.只有iOS会带来麻烦.
iOS上会发生什么:
>已加载index.html
>我们可以点击切换到jquery.html或sencha.html的链接.
>切换应用程序警报后,通过以下消息轮换一些对话框:
> gap:[“Device”,“getDeviceInfo”,“Device455526479”]
> gap:[“NetworkStatus”,“getConnectionInfo”,“NetworkStatus8103758”]
>差距:[“App”,“show”,“App8103759”]
>然后我们可以访问应用程序,甚至可以获得当前的GPS位置.
有任何想法吗?非常感谢!
我们的config.xml:
<?xml version="1.0" encoding="utf-8"?> <cordova> <access origin="http://127.0.0.1*"/>; <!-- allow local pages --> <access origin=".*"/> <content src="index.html" /> <log level="DEBUG"/> <preference name="usebrowserHistory" value="true" /> <preference name="exit-on-suspend" value="false" /> <plugins> <plugin name="App" value="org.apache.cordova.App"/> <plugin name="Geolocation" value="org.apache.cordova.Geobroker"/> <plugin name="Device" value="org.apache.cordova.Device"/> <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/> <plugin name="Compass" value="org.apache.cordova.CompassListener"/> <plugin name="Media" value="org.apache.cordova.AudioHandler"/> <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/> <plugin name="Contacts" value="org.apache.cordova.ContactManager"/> <plugin name="File" value="org.apache.cordova.FileUtils"/> <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/> <plugin name="Notification" value="org.apache.cordova.Notification"/> <plugin name="Storage" value="org.apache.cordova.Storage"/> <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/> <plugin name="Capture" value="org.apache.cordova.Capture"/> <plugin name="Battery" value="org.apache.cordova.BatteryListener"/> <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/> <plugin name="Echo" value="org.apache.cordova.Echo"/> <plugin name="Globalization" value="org.apache.cordova.Globalization"/> <plugin name="InAppbrowser" value="org.apache.cordova.InAppbrowser"/> </plugins> </cordova>
解决方法
可能的情况:
您可能已包含Android文件夹中的cordova-2.5.0.js文件以构建iOS.
您可能刚刚拼错了www文件夹中的JS文件. (尽管可能性较小).
固定:
使用Phonegap-2.5.0文件夹中iOS文件夹中的Javascript(Cordova-2.5.0.js文件)文件进行iOS构建.