sencha extjs 6.5.3版本已解决此问题
原因
Android 8.0 的 浏览器 UserAgent 如下:
写道
Mozilla/5.0 (Linux; Android 8.0.0; Pixel C Build/OPR1.170623.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.84 Safari/537.36
Sencha Touch / ExtJS 6 的浏览器识别逻辑,把它认为了是 Opera 浏览器,因为 Sencha 的判断逻辑如下:
if (userAgent.match(/FB/) && browserName === 'Other') { browserName = browserNames.safari; engineName = engineNames.webkit; } if (userAgent.match(/Android.*Chrome/g)) { browserName = 'ChromeMobile'; } if (userAgent.match(/OPR/)) { browserName = 'Opera'; browserMatch = userAgent.match(/OPR\/(\d+.\d+)/); browserVersion = new Ext.Version(browserMatch[1]); }
需要修改成这样
if (userAgent.match(/FB/) && browserName === 'Other') { browserName = browserNames.safari; engineName = engineNames.webkit; } if (userAgent.match(/Android.*Chrome/g)) { browserName = 'ChromeMobile'; } // bug fix: Android Oreo Chrome Browser detected as Opera else { browserMatch = userAgent.match(/OPR\/(\d+.\d+)/); if (browserMatch) { browserName = 'Opera'; browserVersion = new Ext.Version(browserMatch[1]); } }
需要修改好几个文件
yourApp\ext\build\ext-all-debug.js
yourApp\ext\build\ext-modern-all-debug.js
yourApp\ext\packages\core\src\env\Browser.js