Cordova / PGB应用程序在恢复后冻结

时间:2018-04-19 18:55:46

标签: cordova phonegap-build phonegap

我正在开发一款带有PGB(cli-7.1.0)的混合应用程序。几个星期后,应用程序在iOS(11.3)之后冻结,之后又回到了前台 - 不是每次都有,但有时候。 javascript继续运行并且不会抛出任何错误,但不再触及任何元素。似乎所有事件处理程序都停止工作。滚动也不再可能。

设备日志中没有javascript错误也没有错误,所以我有点卡住了。

有没有人有想法,如何解释这种行为?

提前致谢。 :)

解决方案:

原来,iOS 11.3和js-Fastclick目前不兼容。有一个解决所有问题的分支:https://github.com/lasselaakkonen/fastclick/tree/fix-ios-11-3-event-timestamps

以防有人遇到同样的问题。

1 个答案:

答案 0 :(得分:3)

我已经测试了以下两种解决方案,它们似乎都可以独立解决此问题。

解决方案1:

Cordova已在master中修复了此问题,并将在其下一个cordova-ios版本v4.6.0中提供。同时,您可以手动将更改修补到最新版本4.5.4。更改仅在一个文件中,因此只需替换文件(CDVViewController.m)应该很简单。

https://github.com/apache/cordova-ios/pull/363/files

您可以按照以下步骤来修补最新版本。

  1. github下载最新版本4.5.4,并将下载的文件夹添加到项目中的某个位置。

  2. CDVViewController.m替换为上述请求请求中的一个

  3. cordova-ios依赖项作为外部文件添加到package.json中。

    "dependencies": {
       ...
       "cordova-ios": "file:PATH/TO/cordova-ios"
       ...
    }
    

解决方案2:

如果您使用的是FastClick,则在以下拉取请求下也对此进行了修复。它尚未被合并,但似乎可以解决该问题。因此,您可以使用以下拉取请求中的一个替换FaskClick.js。

https://github.com/ftlabs/fastclick/pull/550/files