{ "code": "import { ShareModule } from \"./ShareModule\";\r\nimport UserModel from \"./UserModel\";\r\nimport ViewManager from \"../GameLogic/ViewManager\";\r\nimport { SettingController } from \"../GameLogic/SettingController\";\r\nimport { AppSetting } from \"../GameLogic/GameDefined\";\r\nimport NetManager, { PROTOCOLS } from \"./NetManager\";\r\nimport Game_Tool from \"../Util/Game_Tool\";\r\nimport GameSetting from \"./GameSetting\";\r\nexport var ALDType;\r\n(function (ALDType) {\r\n ALDType[ALDType[\"\\u767B\\u5F55\\u52A0\\u8F7D\"] = 0] = \"\\u767B\\u5F55\\u52A0\\u8F7D\";\r\n ALDType[ALDType[\"\\u754C\\u9762\\u5F00\\u542F\"] = 1] = \"\\u754C\\u9762\\u5F00\\u542F\";\r\n})(ALDType || (ALDType = {}));\r\nexport class WXSdk {\r\n static get ShareId() {\r\n return this.shareId;\r\n }\r\n static get Chanel() {\r\n return this._chanel;\r\n }\r\n static init(cb) {\r\n this.EventStatistics();\r\n Laya.Browser.window.wx.showShareMenu({\r\n withShareTicket: true\r\n });\r\n Laya.Browser.window.wx.onShow(this.InitWx);\r\n }\r\n static InitWx(option) {\r\n var shareid = option.query.share_id;\r\n this.shareId = shareid ? shareid : \"\";\r\n GameSetting.wxValue = option.scene;\r\n var scene = Laya.LocalStorage.getItem(\"scene\");\r\n if (scene) {\r\n GameSetting.wxValue = scene;\r\n console.log(\"读取配置场景值:\" + scene);\r\n }\r\n else {\r\n console.log(\"第一次拉取场景值:\" + GameSetting.wxValue);\r\n Laya.LocalStorage.setItem(\"scene\", GameSetting.wxValue);\r\n }\r\n var channel = option.query.channel;\r\n this._chanel = channel ? channel : \"\";\r\n Laya.Browser.window.wx.offShow(WXSdk.InitWx);\r\n }\r\n static ShareMessage() {\r\n if (!GameSetting.isWx)\r\n return;\r\n var t = UserModel.Instance.CurModel.ServerTime;\r\n var _title;\r\n var _url;\r\n _title = AppSetting.sharetitle;\r\n _url = AppSetting.shareimage;\r\n if (_title == null) {\r\n _title = \"枪王之王...\";\r\n _url = \"res/share.jpg\";\r\n }\r\n else {\r\n let a = Game_Tool.SpliteString(_title);\r\n let b = Game_Tool.SpliteString(_url);\r\n _title = a[Game_Tool.randomInt(0, a.length - 1)];\r\n _url = b[Game_Tool.randomInt(0, b.length - 1)];\r\n }\r\n console.log(\"_title:\", _title);\r\n console.log(\"_url:\", _url);\r\n Laya.Browser.window.wx.onShareAppMessage(() => ({\r\n title: _title,\r\n imageUrl: _url,\r\n query: \"share_id=\" + UserModel.Instance.CurModel.m_userid + \"_other_\" + t + \"_\" + Math.floor(9999 * Math.random()).toString()\r\n }));\r\n }\r\n static Login(cb) {\r\n if (WXSdk.Lodining) {\r\n return;\r\n }\r\n WXSdk.Lodining = true;\r\n Laya.Browser.window.wx.login({\r\n success: function (res) {\r\n console.log(\"wx.login: success! res.code=\" + res.code);\r\n if (res.code) {\r\n WXSdk.Lodining = false;\r\n console.log(\"将要传递的参数:\" + res);\r\n cb(res);\r\n }\r\n else {\r\n console.log('获取用户登录态失败!' + res.errMsg);\r\n cb(\"error\");\r\n }\r\n },\r\n fail: function (res) { console.log(\"wx.login: failed, res=\" + res); WXSdk.Lodining = false; cb(\"error\"); }\r\n });\r\n }\r\n static ShowLoading(title = \"加载中...\", isShowWx = true) {\r\n console.log(title);\r\n if (Laya.Browser.window && Laya.Browser.window.wx) {\r\n if (isShowWx) {\r\n Laya.Browser.window.wx.showLoading({ title: title, mask: true });\r\n }\r\n ViewManager.Instance.OpenMask();\r\n }\r\n else {\r\n ViewManager.Instance.OpenMask();\r\n }\r\n }\r\n static HideLoading(isShowWx = true) {\r\n if (Laya.Browser.window && Laya.Browser.window.wx) {\r\n if (isShowWx) {\r\n Laya.Browser.window.wx.hideLoading();\r\n }\r\n ViewManager.Instance.CloseMask();\r\n }\r\n else {\r\n ViewManager.Instance.CloseMask();\r\n }\r\n }\r\n static SystemInfo() {\r\n if (Laya.Browser.window.wx) {\r\n return Laya.Browser.window.wx.getSystemInfoSync();\r\n }\r\n }\r\n static ShowToast(text, icon = true) {\r\n if (Laya.Browser.window.wx) {\r\n var t_icon = icon ? \"success\" : \"none\";\r\n text = text ? text : \"暂未开放...\";\r\n Laya.Browser.window.wx.showToast({ title: text, icon: t_icon });\r\n }\r\n else {\r\n console.log(text);\r\n }\r\n }\r\n static ShortVibrate() {\r\n if (Laya.Browser.window.wx && SettingController.Instance.vibrate) {\r\n if (WXSdk.vibrating)\r\n return;\r\n WXSdk.vibrating = true;\r\n Laya.Browser.window.wx.vibrateShort({\r\n complete: function (res) {\r\n WXSdk.vibrating = false;\r\n }\r\n });\r\n }\r\n }\r\n static LongVibrate() {\r\n if (Laya.Browser.window.wx && SettingController.Instance.vibrate) {\r\n if (WXSdk.vibrating)\r\n return;\r\n WXSdk.vibrating = true;\r\n Laya.Browser.window.wx.vibrateLong({\r\n complete: function (res) {\r\n WXSdk.vibrating = false;\r\n }\r\n });\r\n }\r\n }\r\n static Success(stageId) {\r\n if (!GameSetting.isWx)\r\n return;\r\n Laya.Browser.window.wx.aldStage.onEnd({\r\n stageId: stageId,\r\n stageName: \"第\" + stageId + \"关\",\r\n event: \"complete\",\r\n params: {\r\n desc: \"关卡完成\"\r\n }\r\n });\r\n }\r\n static AldEvent(eventName, value) {\r\n return;\r\n let name;\r\n if (GameSetting.isWx) {\r\n name = ALDType[eventName];\r\n if (this.IsNew == 1) {\r\n Laya.Browser.window.wx.aldSendEvent(name, { \"新用户\": value });\r\n }\r\n else {\r\n Laya.Browser.window.wx.aldSendEvent(name, { \"老用户\": value });\r\n }\r\n }\r\n }\r\n static EventStatistics() {\r\n let uuid = Laya.LocalStorage.getItem(\"uuidTimes\");\r\n let is_new;\r\n if (uuid) {\r\n let lastSignTime = new Date(Number(uuid));\r\n let todayZero = new Date(Laya.timer.currTimer);\r\n todayZero.setHours(0, 0, 0, 0);\r\n if (lastSignTime.valueOf() < todayZero.valueOf()) {\r\n this.IsNew = 0;\r\n }\r\n else {\r\n this.IsNew = 1;\r\n }\r\n }\r\n else {\r\n this.IsNew = 1;\r\n Laya.LocalStorage.setItem(\"uuidTimes\", Laya.timer.currTimer.toString());\r\n }\r\n }\r\n static Fail(stageId) {\r\n if (!GameSetting.isWx)\r\n return;\r\n Laya.Browser.window.wx.aldStage.onEnd({\r\n stageId: stageId,\r\n stageName: \"第\" + stageId + \"关\",\r\n event: \"fail\",\r\n params: {\r\n desc: \"关卡失败\",\r\n }\r\n });\r\n }\r\n static Start(stageId) {\r\n if (!GameSetting.isWx)\r\n return;\r\n Laya.Browser.window.wx.aldStage.onStart({\r\n stageId: stageId,\r\n stageName: \"第\" + stageId + \"关\",\r\n });\r\n }\r\n static Game_Share(callback = null, channel = \"\") {\r\n if (!GameSetting.isWx) {\r\n return;\r\n }\r\n var _title;\r\n var _url;\r\n _title = AppSetting.sharetitle;\r\n _url = AppSetting.shareimage;\r\n if (_title == null) {\r\n _title = \"枪王之王...\";\r\n _url = \"res/share.jpg\";\r\n }\r\n else {\r\n let a = Game_Tool.SpliteString(_title);\r\n let b = Game_Tool.SpliteString(_url);\r\n _title = a[Game_Tool.randomInt(0, a.length - 1)];\r\n _url = b[Game_Tool.randomInt(0, b.length - 1)];\r\n }\r\n console.log(\"_title:\", _title);\r\n console.log(\"_url:\", _url);\r\n var t = UserModel.Instance.CurModel.ServerTime;\r\n Laya.Browser.window.wx.aldShareAppMessage({\r\n title: _title,\r\n imageUrl: _url,\r\n query: \"share_id=\" + UserModel.Instance.CurModel.m_userid + \"_\" + \"other\" + \"_\" + t + \"_\" + Math.floor(9999 * Math.random()).toString(),\r\n });\r\n ShareModule.GoShare(callback);\r\n }\r\n static LoadSubPackage(name, callback) {\r\n if (GameSetting.isWx) {\r\n const loadTask = Laya.Browser.window.wx.loadSubpackage({\r\n name: name,\r\n success(res) {\r\n console.log(\"分包下载成功:\", res);\r\n if (callback)\r\n callback(true);\r\n },\r\n fail(res) {\r\n console.log(\"分包下载失败:\" + JSON.stringify(res));\r\n if (callback)\r\n callback(false);\r\n }\r\n });\r\n }\r\n else {\r\n if (callback)\r\n callback(true);\r\n }\r\n }\r\n static IsNeedUpdate() {\r\n if (!GameSetting.isWx)\r\n return false;\r\n const updateManager = Laya.Browser.window.wx.getUpdateManager();\r\n updateManager.onCheckForUpdate(function (res) {\r\n console.log(\"最新版本:\" + res.hasUpdate);\r\n });\r\n updateManager.onUpdateReady(function () {\r\n Laya.Browser.window.wx.showModal({\r\n showCancel: false,\r\n title: '更新提示',\r\n content: '新版本已经准备好,是否重启应用?',\r\n success(res) {\r\n updateManager.applyUpdate();\r\n },\r\n fail(res) {\r\n updateManager.applyUpdate();\r\n }\r\n });\r\n });\r\n }\r\n static IsAuth() {\r\n if (Laya.Browser.window && Laya.Browser.window.wx) {\r\n Laya.Browser.window.wx.getSetting({\r\n success: (res) => {\r\n console.log(\"授权结果..\");\r\n console.log(res);\r\n if (res.authSetting['scope.userInfo'] == true) {\r\n WXSdk.isAuth = true;\r\n Laya.Browser.window.wx.getUserInfo({\r\n lang: 'zh_CN',\r\n success: (res) => {\r\n UserModel.Instance.CurModel.m_nickname = res.userInfo.nickName;\r\n UserModel.Instance.CurModel.m_avatar = res.userInfo.avatarUrl;\r\n console.log(\"已经受过权\");\r\n },\r\n fail: () => {\r\n console.log('调用getUserInfo fail');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n static RequestAuth(callback) {\r\n if (WXSdk.isAuth) {\r\n if (callback != null) {\r\n callback(true);\r\n }\r\n return;\r\n }\r\n if (GameSetting.isWx) {\r\n console.log(\"-----授权\");\r\n let openAuthView = () => {\r\n let w = Laya.stage.width;\r\n let h = Laya.stage.height;\r\n console.log(\"准备授权\");\r\n let button = Laya.Browser.window.wx.createUserInfoButton({\r\n type: 'text',\r\n text: '',\r\n style: {\r\n left: 0,\r\n top: 0,\r\n width: w,\r\n height: h,\r\n lineHeight: 40,\r\n backgroundColor: '#00000000',\r\n textAlign: 'center',\r\n fontSize: 16,\r\n borderRadius: 4\r\n }\r\n });\r\n let opTapHandler = (res) => {\r\n console.log(\"res:\" + JSON.stringify(res));\r\n if (res.userInfo) {\r\n button.hide();\r\n button.offTap(opTapHandler);\r\n button.destroy();\r\n console.log(\"userinfo\", res);\r\n UserModel.Instance.CurModel.m_nickname = res.userInfo.nickName;\r\n UserModel.Instance.CurModel.m_avatar = res.userInfo.avatarUrl;\r\n let param = [{ \"nickname\": res.userInfo.nickName }, { \"avatar\": res.userInfo.avatarUrl }, { \"gender\": res.userInfo.gender }, { \"city\": res.userInfo.city },\r\n { \"country\": res.userInfo.country }, { \"province\": res.userInfo.province }];\r\n NetManager.Instance.HttpPostRequest(PROTOCOLS.protocols.Userauth, param, () => {\r\n WXSdk.isAuth = true;\r\n if (callback != null) {\r\n callback(true);\r\n }\r\n }, null);\r\n }\r\n else {\r\n button.hide();\r\n button.offTap(opTapHandler);\r\n button.destroy();\r\n if (callback != null) {\r\n callback(false);\r\n }\r\n }\r\n };\r\n button.show();\r\n button.onTap(opTapHandler);\r\n };\r\n openAuthView();\r\n }\r\n else {\r\n WXSdk.isAuth = true;\r\n if (callback != null) {\r\n callback(true);\r\n }\r\n }\r\n }\r\n static showbjWxGameQuan(flag) {\r\n if (!GameSetting.isWx) {\r\n return;\r\n }\r\n if (flag) {\r\n if (this.button == null) {\r\n let info = Laya.Browser.window.wx.getSystemInfoSync();\r\n if (!info)\r\n return;\r\n var top = 0.5 * info.windowHeight;\r\n var height = 109 * info.windowHeight / Laya.stage.height;\r\n var width = height * 80 / 109;\r\n Laya.stage.width;\r\n this.button = Laya.Browser.window.wx.createGameClubButton({\r\n type: \"image\",\r\n image: 'res/talk.png',\r\n style: {\r\n left: info.windowWidth * 0.5 + 150 * info.windowWidth / Laya.stage.width,\r\n top: top - 240 * info.windowHeight / Laya.stage.height,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n }\r\n this.button.show();\r\n }\r\n else {\r\n if (this.button) {\r\n this.button.hide();\r\n }\r\n }\r\n }\r\n}\r\nWXSdk.Lodining = false;\r\nWXSdk.shareId = \"\";\r\nWXSdk._chanel = \"\";\r\nWXSdk.isAuth = false;\r\nWXSdk.vibrating = false;\r\nWXSdk.IsNew = 0;\r\n", "references": [ "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/ShareModule.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/UserModel.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SettingController.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/GameDefined.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/NetManager.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Game_Tool.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/GameSetting.ts" ] }