1

出于某种原因,构建的任何 ExtJS/Cordova 应用程序在 Google Pixel 手机上运行时只会显示白屏。Cordova 已更新到最新版本,我目前正在使用 Ext JS 6.2.1。

4

1 回答 1

3

原来有问题的代码是 ExtJS 中的这个小片段。当我进行测试构建并检查正在运行的代码时,这一点变得很明显。

if (userAgent.match(/OPR/)) {
   browserName = 'Opera';
   browserMatch = userAgent.match(/OPR\/(\d+.\d+)/);
   browserVersion = new Ext.Version(browserMatch[1]);
}

Google Pixel 的用户代理包含字符串“OPR”,这会诱使 Ext JS 认为它在 Opera 中运行。发生这种情况时,browserMatch 变量未定义,应用程序崩溃。我已将错误提交给 Sencha,正在等待修复。这个错误影响 ExtJS 6.5.1 和 6.2.1。

更新:Sencha 说他们很快就会对 nightlies 进行修复,他们最终会发布一个稳定的版本。同时,您可以添加对 browserMatch 变量的检查并重新构建 ExtJS 以解决问题。在 ExtJS 源代码中,问题出在 Browser.js 中。

于 2017-09-21T18:30:42.840 回答