【问题标题】:PhoneGap/Cordova + iOS7 + XCode 5PhoneGap/Cordova + iOS7 + XCode 5
【发布时间】:2013-09-19 20:00:05
【问题描述】:

我只是在完成一个应用程序的过程中,然后发布了 iOS7。 我正在使用 Cordova 3.0。

在我更新到 XCode 5 之前,为 iOS7 编译并且没有任何工作... 我想知道它们是否可以很好地协同工作?

Cordova 插件(连接、闪屏、通知、存储)是否仍在工作,还是我们必须等待 Cordova Apache Software Foundation 推出新版本?

非常感谢。

【问题讨论】:

    标签: ios xcode cordova


    【解决方案1】:

    如果您在升级到 iOS 7 和 XCode 5 后遇到编译错误,那么在这种情况下,您需要在 Build Settings 下更改您的 Valid Architecture 值。

    仅将您的 Architectures 值更改为“armv7”,并在构建后删除其他项目,所有编译错误都将解决。

    此修复仅适用于 Cordova 应用程序

    【讨论】:

    • 这解决了我在两个不同的应用程序 Cordova 2.7 和 Cordova 2.2 中的问题。两者现在都在 iOS7 上运行。
    【解决方案2】:

    我自己也想知道这个,所以我备份了 xcode4(将它从 Applications 文件夹复制到备份文件夹),然后今天更新到 xcode5。 (这可能会有所帮助:Can you install the Xcode 5 Developer Preview in parallel with Xcode 4.6.2?

    我的Phonegap 应用程序编译成功并在iOS7 模拟器上运行。所以据我所见,Phonegap 3.0.0 和 xcode5 可以很好地协同工作。

    除此之外,我认为还有一些 iOS7 特定的配置需要我进行调整,例如:

    • iOS7 中视网膜显示的不同图标大小
    • 为聚光灯和设置添加图标

    【讨论】:

      【解决方案3】:

      我也在使用 cordova 3.0 和 xcode 5。 似乎没有任何编译错误,可以成功运行。 问题是iOS7的屏幕长度。 可以使用以下方法解决屏幕长度问题。 (这也被称为状态栏隐藏主 ui 问题)

      0,不确定margin-top=20px的方案是否好用,因为在我的环境下,我也是用jquery mobile,所以简单的设置margin-top是没有效果的。

      我的解决办法是:

      1、在info.plist文件中设置基于View控制器的状态栏外观为NO。

      2,将此代码用于 iOS 7

      if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
          [application setStatusBarStyle:UIStatusBarStyleLightContent];
          self.window.clipsToBounds =YES;
          self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
      }
      

      到目前为止,状态栏显示回像 iOS 6 或更早版本。但是您会发现底部有点隐藏在设备屏幕下方。 为了解决这个问题,

      3、设置所有jquery mobile和iscrollview页脚元素padding-bottom=20px。

      onDeviceReady: function() {
          console.log("onDeviceReady");
          if( parseInt(device.version) >= 7){
              $("footer").css("padding-bottom","20px");
          }
          app.receivedEvent('deviceready');
      
      },
      

      这就是我将 Cordova 3.0 + jQuery Mobile + iscrollview 应用程序移植到 Xcode 5 + iOS7 的全部内容。 希望对你有帮助。

      【讨论】:

      • @soloman ..第 2 步 self.window.frame = CGRectMake(0,20,self ... 工作得很好,谢谢,但第 3 步没有效果,它进入如果条件确定,但页脚仍然隐藏,有什么想法吗?我正在使用cordova 2.7
      • @Bonnie Hi Bonnie,这可能与 1)jqm 版本有关,它为页脚提供基本样式,2)您是否使用可能影响页脚定位行为的 iscrollview,3)css"padding-底部”应用得当。我想你可以尝试应用 $("footer").css("padding-bottom","20px") 一些更多的地方而不是只在 onDeviceReady 中,如果可以有任何效果,那么可以确认没有正确应用的问题,然后可以有一个更清晰的愿景进行调试。
      【解决方案4】:

      我正在使用 Cordova 2.9 和 XCode 5,并且工作“几乎”完美,代码可以编译,甚至可以部署到手机上。

      我发现的唯一问题是状态栏现在显示在应用程序上方,因为新的全屏模式。

      更多信息您可以查看PhoneGap and Cordova with iOS 7

      【讨论】:

        猜你喜欢
        • 2018-08-23
        • 2013-09-15
        • 2014-02-13
        • 2014-02-07
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        • 2014-01-14
        相关资源
        最近更新 更多