阅读 144

sencha-touch.js MIUI Android 8.0兼容性问题

sencha-touch.js在miui android8.0报如下异常

"Uncaught TypeError: Cannot read property '1' of null"
复制代码

发生异常的代码如下:

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

打印了下MI6的userAgent,里面包含了"OPR"的关键字。 根据上下文分析,这段代码是用来识别浏览器类型和版本的,因MI6包含了"OPR"导致了识别错误。 MI6的UserAgent可自行打印下。

调整代码如下:

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