【发布时间】:2013-09-19 20:00:05
【问题描述】:
我只是在完成一个应用程序的过程中,然后发布了 iOS7。 我正在使用 Cordova 3.0。
在我更新到 XCode 5 之前,为 iOS7 编译并且没有任何工作... 我想知道它们是否可以很好地协同工作?
Cordova 插件(连接、闪屏、通知、存储)是否仍在工作,还是我们必须等待 Cordova Apache Software Foundation 推出新版本?
非常感谢。
【问题讨论】:
我只是在完成一个应用程序的过程中,然后发布了 iOS7。 我正在使用 Cordova 3.0。
在我更新到 XCode 5 之前,为 iOS7 编译并且没有任何工作... 我想知道它们是否可以很好地协同工作?
Cordova 插件(连接、闪屏、通知、存储)是否仍在工作,还是我们必须等待 Cordova Apache Software Foundation 推出新版本?
非常感谢。
【问题讨论】:
如果您在升级到 iOS 7 和 XCode 5 后遇到编译错误,那么在这种情况下,您需要在 Build Settings 下更改您的 Valid Architecture 值。
仅将您的 Architectures 值更改为“armv7”,并在构建后删除其他项目,所有编译错误都将解决。
此修复仅适用于 Cordova 应用程序
【讨论】:
我自己也想知道这个,所以我备份了 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 特定的配置需要我进行调整,例如:
【讨论】:
我也在使用 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 的全部内容。 希望对你有帮助。
【讨论】:
我正在使用 Cordova 2.9 和 XCode 5,并且工作“几乎”完美,代码可以编译,甚至可以部署到手机上。
我发现的唯一问题是状态栏现在显示在应用程序上方,因为新的全屏模式。
更多信息您可以查看PhoneGap and Cordova with iOS 7
【讨论】: