Cordova 应用程序在 safari 上运行良好,但在作为应用程序安装时崩溃

Posted

技术标签:

【中文标题】Cordova 应用程序在 safari 上运行良好,但在作为应用程序安装时崩溃【英文标题】:Cordova app running fine on safari, but crashing when installed as app 【发布时间】:2016-01-20 15:34:28 【问题描述】:

我为客户构建了一个工具,它基本上是一个显示许多项目并根据设置的参数过滤它们的工具。这个工具最初是一个基于网络的项目,它可以在所有浏览器上运行,它应该在从文件浏览器打开 html 文件时运行(所以当不涉及服务器时)。

我们在平板电脑/手机上对此进行了测试,因为我们知道它需要移植。所以当我们在 safari 上打开它时,这段代码在我们的 ipad3(第一代视网膜)上运行良好。现在我们一直在用cordova进行设置。但是在加载的那一刻,我们收到内存警告,说应该清除内存等...应用程序运行缓慢并且出现了一些新错误,可能是由于内存问题...

我一直在研究分析/时间线以查找内存泄漏等,但我真的找不到任何显着的内存泄漏。 另一个奇怪的事情:如果我们只在纵向模式下构建这个应用程序,问题就消失了。但是正在执行的代码是完全一样的,在竖屏模式下除了其他样式外,我们没有做任何不同的事情。

可能是 CSS/Mediaqueries/images(png's) 导致了这些问题吗? 如果有人能指出我的方向,那就太好了。

如果你们需要代码/示例/...大声喊叫,我会提供。 谢谢

【问题讨论】:

【参考方案1】:

我上周发现了这个问题。显然这是由我的 css 引起的。结果显示为大约 60 项列表中的小项。他们有一个可以翻转项目的悬停/触摸事件。但是添加透视/背面等的css导致了内存问题。我删除了它们,一切正常。

我仍然想知道为什么这会在 Cordova 中引起问题,但在本机 safari 中却没有,我认为在同一个浏览器上具有相同代码的同一个应用程序会提供相同的性能......但显然有一些webview 和原生 safari 应用之间的区别?

【讨论】:

【参考方案2】:

除非您安装了 WkWebview 插件,否则 Cordova 将在 UiWebview 中运行您的应用程序,该 UiWebview 存在许多 WkWebview 中不存在的性能和内存问题。

Native safari 在底层使用 WkWebview,它解释了 Cordova 应用程序和 Safari 之间的性能和稳定性差异。

【讨论】:

以上是关于Cordova 应用程序在 safari 上运行良好,但在作为应用程序安装时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

CSS 动画在 iOS 上无法原生运行,但带有 Cordova 端口

ffmpeg.js 在 iOS cordova 中运行速度极慢(但在 iOS safari 中运行良好?)

pouchdb 无法在 ios Safari 上运行

从应用内链接打开 Safari - Cordova PhoneGap

PhoneGap/Cordova 打开外部链接到 Safari 而不是全屏 inApp

移动 chrome 与 Safari 性能