最新版本的手Q,User Agent是:
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15 QQ/7.2.0.439 V1_IPH_SQ_7.2.0_1_APP_A Pixel/750 Core/UIWebView NetType/WIFI QBWebViewType/1
而同一个手机的微信和Safari都能开启webgl。罪魁祸首是引擎CCSys.js的下面代码:
if (_supportWebGL && sys.os === sys.OS_IOS && sys.osMainVersion === 9) {
// Not activating WebGL in iOS 9 UIWebView because it may crash when entering background
if (!win.indexedDB) {
_supportWebGL = false;
}
}
很奇怪iOS 9.2.1的手Q浏览器的window.indexedDB是undefined,而iOS 10同样版本手Q,window.indexedDB不是undefined。
实际上我尝试了多次后台切换,并没有造成崩溃。canvas渲染一个性能差,另外Mask、spine的渲染都有问题,所以其实比崩溃更可怕。