Skip to content

Commit 4f9276e

Browse files
author
pandamicro
committed
Improve browser detection for QQ
1 parent f83d288 commit 4f9276e

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

CCBoot.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,14 +1727,24 @@ var _initSys = function () {
17271727
/* Determine the browser type */
17281728
(function(){
17291729
var typeReg1 = /micromessenger|mqqbrowser|sogou|qzone|liebao|ucbrowser|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|trident|miuibrowser/i;
1730-
var typeReg2 = /qqbrowser|chrome|safari|firefox|opr|oupeng|opera/i;
1730+
var typeReg2 = /qqbrowser|qq|chrome|safari|firefox|opr|oupeng|opera/i;
17311731
var browserTypes = typeReg1.exec(ua);
17321732
if(!browserTypes) browserTypes = typeReg2.exec(ua);
17331733
var browserType = browserTypes ? browserTypes[0] : sys.BROWSER_TYPE_UNKNOWN;
17341734
if (browserType === 'micromessenger')
17351735
browserType = sys.BROWSER_TYPE_WECHAT;
1736-
else if (browserType === "safari" && (ua.match(/android.*applewebkit/)))
1736+
else if (browserType === "safari" && isAndroid)
17371737
browserType = sys.BROWSER_TYPE_ANDROID;
1738+
else if (browserType === "qq") {
1739+
if (iOS)
1740+
browserType = sys.BROWSER_TYPE_SAFARI;
1741+
else if (ua.match(/android.*applewebkit/i))
1742+
brwoserType = sys.BROWSER_TYPE_ANDROID;
1743+
else if (sys.isMobile)
1744+
browserType = sys.BROWSER_TYPE_MOBILE_QQ;
1745+
else
1746+
browserType = sys.BROWSER_TYPE_QQ;
1747+
}
17381748
else if (browserType === "trident")
17391749
browserType = sys.BROWSER_TYPE_IE;
17401750
else if (browserType === "360 aphone")
@@ -2732,6 +2742,10 @@ cc.game = /** @lends cc.game# */{
27322742
visibilityChange = "webkitvisibilitychange";
27332743
}
27342744

2745+
if (cc.sys.browserType === cc.sys.BROWSER_TYPE_QQ || cc.sys.browserType === cc.sys.BROWSER_TYPE_MOBILE_QQ) {
2746+
visibilityChange = "qbrowserVisibilityChange"
2747+
}
2748+
27352749
var onHidden = function () {
27362750
if (cc.eventManager && cc.game._eventHide)
27372751
cc.eventManager.dispatchEvent(cc.game._eventHide);

0 commit comments

Comments
 (0)