require("game.advertisement.AdvertisementModel") require("game.advertisement.AdvertisementView") AdvertisementController = AdvertisementController or BaseClass(BaseController, true) local AdvertisementController = AdvertisementController AdvertisementController.IsDebug = true function AdvertisementController:__init() AdvertisementController.Instance = self self.model = AdvertisementModel:getInstance() self:AddEvents() self:RegisterAllProtocal() end function AdvertisementController:__delete() end function AdvertisementController:RegisterAllProtocal( ) end function AdvertisementController:AddEvents() -- 监控场景加载完毕 加载完才可以去判断 防止cookie没有初始化 只在首次登陆起作用 local function onSceneStartHandler() self.model:SetSceneLoadState() if self.on_game_start_id then self:UnBind(self.on_game_start_id) end end self.on_game_start_id = self:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE, onSceneStartHandler) --EventName.GAME_START --EventName.SCENE_LOAD_VIEW_COMPLETE -- 打开广告 local function on_open_advertisement_view( sub_type ) if not sub_type then --logWarn('=======Msh:AdvertisementController.lua[27] sub_type=======', sub_type) return end if self.advertisement_view == nil then self.advertisement_view = AdvertisementView.New() end if not self.advertisement_view:HasOpen() then self.advertisement_view:Open(sub_type) end end self.model:Bind(AdvertisementModel.OPEN_ADVERTISEMENT_VIEW, on_open_advertisement_view) -- 过天刷新cookie检测 local update_cookie = function ( ) self.model:UpdateCookie() end GlobalEventSystem:Bind(EventName.UPDATE_ROLE_LOGIN_TIME_DATA, update_cookie) -- 强制关闭广告 local function on_close_advertisement_view( ) if self.advertisement_view == nil then return end if self.advertisement_view:HasOpen() then -- 关闭现有广告 回滚今天的cookie次数 self.model:ResetCookieBySubType(self.advertisement_view.sub_type) self.advertisement_view:Close() end end self.model:Bind(AdvertisementModel.CLOSE_ADVERTISEMENT_VIEW, on_close_advertisement_view) end