Phonegap / Cordova在ios8中不起作用

时间:2014-06-03 06:17:04

标签: ios cordova ios8

我玩过iOS 8测试版,并注意到Cordova / Phonegap已经崩溃了。

对我而言,主要是InAppBrowser现在没有出现。

你有什么经历? 您是否有解决方案的解决方案或想法?

感谢。

4 个答案:

答案 0 :(得分:12)

您可以在index.html中使用一些Javascript来修复此问题(或者安装iOS 8 beta 2,这似乎解决了这个问题): https://gist.github.com/EddyVerbruggen/cd02c73162180793513e#file-ios8-beta-phonegap-fix

// temp fix for iOS8 beta, add it after the reference to cordova.js
// You don't actually require it for ios 8 beta 5
if (navigator.userAgent === undefined) {
  navigator.__defineGetter__('userAgent', function() {
    return("Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit");
  });
}

答案 1 :(得分:7)

在早期的iOS 8 Betas中,由于用户代理错误,Cordova / Phonegap应用程序被破坏,但根据iOS 8 Beta release notes(WebKit部分),此错误已在iOS 8 Beta 3中正式修复。(实际上已在iOS 8 Beta 2中修复。)

很高兴看到Apple测试了Cordova / Phonegap应用并解决了这个问题。有点令人失望的是,这个错误首先存在,但早期的测试版总是有很多问题。

答案 2 :(得分:7)

普通的cordova示例应用程序(例如“cordova create test”)将正常加载。

如果您添加任何cordova插件,您将在“iOSExec()”中遇到问题,请参阅“platform_www / cordova.js”:

bridgeMode = navigator.userAgent.indexOf(' 5_') == -1 ? jsToNativeModes.IFRAME_NAV: jsToNativeModes.XHR_NO_PAYLOAD;

将其更改为:

bridgeMode = jsToNativeModes.IFRAME_NAV;

您可以再次使用插件。这将打破与iOS 5的向后兼容性,但我怀疑你今天会发现有人在运行iOS 5和cordova ......

如果您使用fastclick.js或backbone.js,您也必须进行一些小的修改。 只需按照Safari的webinspector中的错误消息即可。

答案 3 :(得分:1)

将XCode更新为Beta 2,并且无需任何修复即可正常工作(使用cordova 3.5.0进行测试)。

您需要在iOS开发人员中心下载新版本的XCode,因为autoupdate尚不可用于测试版。