使用Phonegap构建的Phonegap App构建在iOS上构建具有错误的警报

Seb*_*rth 5 jquery extjs cordova phonegap-build

我们正在开发一个带有Phonegap 2.5.0的应用程序(因为Phonegap Build中没有更新的版本)并且遇到了麻烦.

该应用程序是一个简单的测试应用程序,我们用来比较jQuery Mobile和Sencha Touch.因此,我们创建了一个index.html文件,其中包含指向jquery.html和sencha.html的链接,这些链接使用不同的UI实现相同的应用程序,但调用相同的phonegap触发器.

我们有两个构建配置:

我们使用与本地构建的Android应用相同的网络内容.我们只删除<script>加载了2.5.0 的cordova.js的元素,并将内容与我们在本地构建的Android应用程序中使用的相同config.xml一起打包.本地构建的Android应用程序工作得很好.仅当通过Phonegap Build在线为iOS构建应用程序时才会出现问题.正如预期的那样,Android应用程序在线构建.只有iOS会带来麻烦.

iOS上会发生什么:

  • index.html已加载
  • 我们可以点击切换到jquery.html或sencha.html的链接.
  • 切换应用程序警报后,通过以下消息轮换一些对话框:
    1. gap:["Device","getDeviceInfo","Device455526479"]
    2. gap:["NetworkStatus","getConnectionInfo","NetworkStatus8103758"]
    3. gap:["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>
Run Code Online (Sandbox Code Playgroud)

Gen*_*ted 5

你确定你已经包含了特定于iOS的Phonegap JS文件吗?通常,当您错误地包含用于iOS开发的cordova/phonegap文件(属于Android)时会发生此错误.在下载的phonegap 2.5.0文件夹中,您有不同平台的不同子文件夹.您必须确保使用为特定平台提供的正确Javascript文件.

可能的情况:

您可能已包含Android文件夹中的cordova-2.5.0.js文件以构建iOS.您可能刚刚拼错了www文件夹中的JS文件.(尽管可能性较小).

固定:

使用Phonegap-2.5.0文件夹中iOS文件夹中的Javascript(Cordova-2.5.0.js文件)文件进行iOS构建.


Seb*_*rth 1

Phonegap Build 仅支持最新版本 cordova 2.5.0。现在也可以使用2.7.0版本了。切换到 2.7.0 后,alert() 就消失了。现在一切都按预期进行!

问题解决了!