Egret社区

Egret 微信小程序Bug

2018-3-14 15:06
15062
Wechat Lib:1.8.0, 2017.12.22 16:03:55
egret.wxgame.js? [sm]:1997 [Deprecation] 'webkitURL' is deprecated. Please use 'URL' instead.
egret.wxapp.egret.wxapp @ egret.wxgame.js? [sm]:1997
egret @ egret.wxgame.js? [sm]:1996
(anonymous) @ egret.wxgame.js? [sm]:1994
require @ WAGame.js:11
(anonymous) @ WAGame.js:11
(anonymous) @ game.js? [sm]:4
require @ WAGame.js:11
(anonymous) @ gamePage.html:138
WAGame.js:3 gameThirdScriptError
Cannot set property isMobile of function t() {} which has only a getter
TypeError: Cannot set property isMobile of function t() {} which has only a getter
    at Function.WebCapability.detect (http://127.0.0.1:63364/game/egret.wxgame.js:3222:47)
    at egret.wxapp.egret.wxapp (http://127.0.0.1:63364/game/egret.wxgame.js:3256:23)
    at egret (http://127.0.0.1:63364/game/egret.wxgame.js:3257:7)
    at http://127.0.0.1:63364/game/egret.wxgame.js:3258:3
    at require (http://127.0.0.1:63364/game/__dev__/WAGame.js:11:5799)
    at http://127.0.0.1:63364/game/__dev__/WAGame.js:11:5548
    at http://127.0.0.1:63364/game/game.js:6:1
    at require (http://127.0.0.1:63364/game/__dev__/WAGame.js:11:5799)
    at http://127.0.0.1:63364/game/gamePage.html:138:80

图片如下 :


01.png
分享到 :
0 人收藏

2 个回复

倒序浏览
Aonaufly  自成一派 | 2018-3-14 15:34:30
原因找到了  :    在egret.d.ts 中          /**
         * @private
         */
        static $isMobile: boolean;
        /**
         * Specifies whether the system is running in a mobile device.(such as a mobile phone or tablet)
         * @version Egret 2.4
         * @platform Web,Native
         * @language en_US
         */
        /**
         * 表示程序内容是否运行在移动设备中(例如移动电话或平板电脑)。
         * @version Egret 2.4
         * @platform Web,Native
         * @language zh_CN
         */
        static readonly isMobile: boolean;

isMobile是只读的 $isMobile才是可写的 .  但是在 egret.web.js中             WebCapability.detect = function () {
                var capabilities = egret.Capabilities;
                var ua = navigator.userAgent.toLowerCase();
                capabilities.$isMobile = (ua.indexOf('mobile') != -1 || ua.indexOf('android') != -1);
                if (capabilities.$isMobile) {
                    if (ua.indexOf("windows") < 0 && (ua.indexOf("iphone") != -1 || ua.indexOf("ipad") != -1 || ua.indexOf("ipod") != -1)) {
                        capabilities.$os = "iOS";
                    }
                    else if (ua.indexOf("android") != -1 && ua.indexOf("linux") != -1) {
                        capabilities.$os = "Android";
                    }
                    else if (ua.indexOf("windows") != -1) {
                        capabilities.$os = "Windows Phone";
                    }
                }

那为什么使用 egret run --target wxgame 后 , 翻译是  capabilities["isMobile" + ""] = (ua.indexOf('mobile') != -1 || ua.indexOf('android') != -1); 个鬼 !!!   
总之手动改过来就好了
jinqb  登堂入室 | 2018-3-16 17:22:57
大佬的自问自答

回帖奖励 +1 银子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部