local PluginAndroidLocation = require("luaScript.Plugins.PluginAndroidLocation"); local PluginAndroidGVoice = require("luaScript.Plugins.PluginAndroidGVoice"); local PluginAndroidDowloadManager = require("luaScript.Plugins.PluginAndroidDowloadManager"); local PluginAndroidPing = require("luaScript.Plugins.PluginAndroidPing"); local PluginIosPay = require("luaScript.Plugins.PluginIosPay"); local PluginIosLocation = require("luaScript.Plugins.PluginIosLocation"); local PluginIosGVoice = require("luaScript.Plugins.PluginIosGVoice"); local PluginIosDowloadManager = require("luaScript.Plugins.PluginIosDowloadManager"); local PluginWechat = require("luaScript.Plugins.PluginWechat"); local PluginWechatShare = require("luaScript.Plugins.PluginWechatShare"); local PluginYaya = require("luaScript.Plugins.PluginYaya"); local PluginGVoice = require("luaScript.Plugins.PluginGVoice"); local PluginZhuCheng = require("luaScript.Plugins.PluginZhuCheng"); local GlobalPlugin = class("GlobalPlugin"); function GlobalPlugin:ctor() -- 苹果支付插件 self.pluginIosPay = nil -- 微信 self.pluginWechat = nil; -- 微信分享 self.pluginWxShare = nil --yaya语音 self.pluginVoice = nil; --腾讯语音插件 self.pluginGVoice = nil -- GPS 定位插件 self.pluginGps = nil -- 初始化 self:init(); end function GlobalPlugin:init() -- 载入平台信息 local channelId = app.config.RomSetting.ChannelId; -- PC 版本强制设为100,防止配置错误导致的报错 if isWin32Platform() then channelId = 100 end if isAndroidPlatform() then self.pluginWechat = PluginWechat:new(); self.pluginVoice = PluginYaya:new(); self.pluginGps = PluginAndroidLocation:new() self.pluginDownloader = PluginAndroidDowloadManager:new() self.pluginPing = PluginAndroidPing:new() --self.pluginWxShare = PluginWechatShare:new() self.pluginGVoice = PluginGVoice:new() elseif isIOSPlatform() then self.pluginWechat = PluginWechat:new(); self.pluginVoice = PluginYaya:new(); self.pluginGps = PluginIosLocation:new(); self.pluginDownloader = PluginIosDowloadManager:new() --self.pluginWxShare = PluginWechatShare:new() self.pluginGVoice = PluginGVoice:new() if channelId == 105 then self.pluginIosPay = PluginIosPay:new(); end end -- 启动插件 self:start(); end -- 开启插件 function GlobalPlugin:start() -- 启动登陆插件 if self.pluginWechat then self.pluginWechat:start() end -- 下载SDK if self.pluginDownloader then self.pluginDownloader:start() end -- 网络监测 if self.pluginPing then self.pluginPing:start() end -- 定位 if self.pluginGps then local versionCode = getAppVersionName() log("versionCode:",versionCode) self.pluginGps:start() end end -- 注销账号 function GlobalPlugin:logout(tt) if not isWin32Platform() then app.userManager:clearUserList(); end cc.Application:getInstance():restart(); end -- 跳转网页 function GlobalPlugin:callUrl(url) logD("GlobalPlugin:callUrl(), url = ", url); if PluginDevice then PluginDevice:callVoid("openUrl", url); else logD("GlobalPlugin:callUrl(), PluginDevice is nil"); end end function GlobalPlugin:isShowThirdLogin() return self:isSupportWeiXin() end function GlobalPlugin:shareGame(tt, shareCallback) logD("GlobalPlugin:shareGame(), tt = ", table.tostring(tt)) if self.pluginWxShare then self:shareWxShare(tt, shareCallback) else self:shareWeiXin(tt, shareCallback) end end ------------------------------------------- IosPay ------------------------------------------- function GlobalPlugin:startIosPay() logD("GlobalPlugin:startIosPay()") if self.pluginIosPay then self.pluginIosPay:start() else logD("GlobalPlugin:startIosPay(), self.pluginIosPay is nil") end end function GlobalPlugin:payIosPay(itemInfo) logD("GlobalPlugin:payIosPay(), tt = ", table.tostring(itemInfo)) if self.pluginIosPay then self.pluginIosPay:pay(itemInfo) else logD("GlobalPlugin:payIosPay(), self.pluginIosPay is nil") end end ------------------------------------------- WeiXin ------------------------------------------- function GlobalPlugin:isSupportWeiXin() logD("GlobalPlugin:isSupportWeiXin()") if self.pluginWechat then local result = self.pluginWechat:isSupport() logD("GlobalPlugin:isSupportWeiXin(), result = ", tostring(result)) return result else logD("GlobalPlugin:isSupportWeiXin(), self.pluginWechat is nil") return false end end function GlobalPlugin:gotoWeiXin() logD("GlobalPlugin:gotoWeiXin()") if self.pluginWechat then self.pluginWechat:gotoWeiXin(); else logD("GlobalPlugin:gotoWeiXin(), self.pluginWechat is nil") end end function GlobalPlugin:loginWeiXin(tt) logD("GlobalPlugin:loginWeiXin(), tt = ", table.tostring(tt)) if self.pluginWechat then self.pluginWechat:login(tt); else logD("GlobalPlugin:loginWeiXin(), self.pluginWechat is nil") end end function GlobalPlugin:payWeiXin(tt) logD("GlobalPlugin:payWeiXin(), tt = ", table.tostring(tt)) if self.pluginWechat then self.pluginWechat:pay(tt); else logD("GlobalPlugin:payWeiXin(), self.pluginWechat is nil") end end function GlobalPlugin:shareWeiXin(tt, callback) logD("GlobalPlugin:shareWeiXin(), tt = ", table.tostring(tt)) if self.pluginWechat then self.pluginWechat:shareGame(tt, callback) else logD("GlobalPlugin:shareWeiXin(), self.pluginWechat is nil") end end -- 显示微信下载的对话框 function GlobalPlugin:showWeiXinDownloadDialog() local text = "未安装【微信】,是否前往下载【微信】?" local okBtnImage = "res/ui/zy_tongyong/zy_button/btn_like_xiazai.png" local okCallBack = function() app.plugin:callUrl("http://weixin.qq.com/"); end local cancelCallBack = function() end showConfirmDialog(text, okCallBack, cancelCallBack, 26, okBtnImage) return; end ------------------------------------------- wxshare ------------------------------------------- -- 初始化微信分享 function GlobalPlugin:initWxShare( appid, secret ) logD("GlobalPlugin:initWxShare(), appid = "..appid..", secret = "..secret) if isWin32Platform() then logD("GlobalPlugin:initWxShare(), win32") return end if isReviewVersion() then logD("GlobalPlugin:initWxShare(), review version") return end local PluginConfig = require("preload.PluginConfig") if PluginConfig and PluginConfig.isAppStoreVersion then -- 苹果商城的版本因为包名发生了变化,是不能使用多微信分享的。 return end if not self.pluginWxShare then self.pluginWxShare = PluginWechatShare:new() end if self.pluginWxShare then self.pluginWxShare:start(appid, secret); end end function GlobalPlugin:shareWxShare(tt, callback) logD("GlobalPlugin:shareWxShare(), tt = ", table.tostring(tt)) if self.pluginWxShare then self.pluginWxShare:shareGame(tt, callback) else logD("GlobalPlugin:shareWxShare(), self.pluginWxShare is nil") end end ------------------------------------------- voice ------------------------------------------- -- 成功登陆到游戏 function GlobalPlugin:startVoice() logD("GlobalPlugin:startVoice()") if self.pluginVoice then self.pluginVoice:start() else logD("GlobalPlugin:startVoice(), self.pluginVoice is nil") end end -- 开始录音 function GlobalPlugin:startRecord() logD("GlobalPlugin:startRecord()") if self.pluginVoice then self.pluginVoice:startRecord() else logD("GlobalPlugin:startRecord(), self.pluginVoice is nil") end end -- 结束录音 function GlobalPlugin:stopRecord() logD("GlobalPlugin:stopRecord()") if self.pluginVoice then self.pluginVoice:stopRecord() else logD("GlobalPlugin:stopRecord(), self.pluginVoice is nil") end end -- 取消录音 function GlobalPlugin:cancelRecord() logD("GlobalPlugin:cancelRecord()") if self.pluginVoice then self.pluginVoice:cancelRecord() else logD("GlobalPlugin:cancelRecord(), self.pluginVoice is nil") end end -- 播放录音 function GlobalPlugin:playRecord(filePath) log("GlobalPlugin:playRecord(), filePath = ", filePath); if self.pluginVoice then self.pluginVoice:playRecord(filePath) else logD("GlobalPlugin:playRecord(), self.pluginVoice is nil") end end -- 停止播放录音 function GlobalPlugin:stopPlayRecord() log("GlobalPlugin:stopPlayRecord() "); if self.pluginVoice then self.pluginVoice:stopPlayRecord() else logD("GlobalPlugin:stopPlayRecord(), self.pluginVoice is nil") end end -- 下载录音 function GlobalPlugin:downloadRecord(nUserId, recordUrl, downloadCallback) log("GlobalPlugin:downloadRecord(), nUserId = " .. nUserId .. ", recordUrl = " .. recordUrl); if self.pluginVoice then self.pluginVoice:downloadRecord(nUserId, recordUrl, downloadCallback); else logD("GlobalPlugin:downloadRecord(), self.pluginVoice is nil") end end ------------------------------------------- gvoice ------------------------------------------- -- 成功登陆到游戏 function GlobalPlugin:startGVoice() logD("GlobalPlugin:startGVoice()") if self.pluginGVoice then self.pluginGVoice:start() else logD("GlobalPlugin:startGVoice(), self.pluginGVoice is nil") end end function GlobalPlugin:ApplyMessageKey() logD("GlobalPlugin:ApplyMessageKey()") if self.pluginGVoice then self.pluginGVoice:ApplyMessageKey() else logD("GlobalPlugin:ApplyMessageKey(), self.pluginGVoice is nil") end end -- 开始录音 function GlobalPlugin:startGRecord() logD("GlobalPlugin:startGRecord()") if self.pluginGVoice then self.pluginGVoice:startRecord() else logD("GlobalPlugin:startGRecord(), self.pluginGVoice is nil") end end -- 结束录音 function GlobalPlugin:stopGRecord() logD("GlobalPlugin:stopGRecord()") if self.pluginGVoice then self.pluginGVoice:stopRecord() else logD("GlobalPlugin:stopGRecord(), self.pluginGVoice is nil") end end -- 取消录音 function GlobalPlugin:cancelGRecord() logD("GlobalPlugin:cancelGRecord()") if self.pluginGVoice then self.pluginGVoice:cancelRecord() else logD("GlobalPlugin:cancelGRecord(), self.pluginGVoice is nil") end end -- 播放录音 function GlobalPlugin:playGRecord(fileId) log("GlobalPlugin:playGRecord(), fileId = ", fileId); if self.pluginGVoice then self.pluginGVoice:playRecord(fileId) else logD("GlobalPlugin:playGRecord(), self.pluginGVoice is nil") end end -- 停止播放录音 function GlobalPlugin:stopGPlayRecord() log("GlobalPlugin:stopGPlayRecord() "); if self.pluginGVoice then self.pluginGVoice:stopPlayRecord() else logD("GlobalPlugin:stopGPlayRecord(), self.pluginGVoice is nil") end end -- 下载录音 -- function GlobalPlugin:downloadGRecord(nfileID, nUserId, filePath, downloadCallback) -- log("GlobalPlugin:downloadGRecord(), nfileID = " .. nfileID .. ", nUserId = " .. nUserId .. ", filePath = " .. filePath); function GlobalPlugin:downloadGRecord(nUserId, nfileID, downloadCallback) log("GlobalPlugin:downloadGRecord(), nUserId = " .. nUserId .. ", nfileID = " .. nfileID); if self.pluginGVoice then -- self.pluginGVoice:downloadRecord(nfileID, nUserId, filePath, downloadCallback); self.pluginGVoice:downloadRecord(nUserId, nfileID, downloadCallback); else logD("GlobalPlugin:downloadGRecord(), self.pluginGVoice is nil") end end -- 加入房间 function GlobalPlugin:JoinRoom(room) log("GlobalPlugin:JoinRoom(), room = ", room); if self.pluginGVoice then self.pluginGVoice:JoinRoom(room) else logD("GlobalPlugin:JoinRoom(), self.pluginGVoice is nil") end end -- 退出房间 function GlobalPlugin:QuitRoom(room) log("GlobalPlugin:QuitRoom(), room = ", room); if self.pluginGVoice then self.pluginGVoice:QuitRoom(room) else logD("GlobalPlugin:QuitRoom(), self.pluginGVoice is nil") end end -- 开启麦克风 function GlobalPlugin:OpenMic() log("GlobalPlugin:OpenMic() "); if self.pluginGVoice then self.pluginGVoice:OpenMic() else logD("GlobalPlugin:OpenMic(), self.pluginGVoice is nil") end end -- 关闭麦克风 function GlobalPlugin:CloseMic() log("GlobalPlugin:CloseMic() "); if self.pluginGVoice then self.pluginGVoice:CloseMic() else logD("GlobalPlugin:CloseMic(), self.pluginGVoice is nil") end end -- 开启扬声器 function GlobalPlugin:OpenSpeaker() log("GlobalPlugin:OpenSpeaker() "); if self.pluginGVoice then self.pluginGVoice:OpenSpeaker() else logD("GlobalPlugin:OpenSpeaker(), self.pluginGVoice is nil") end end -- 关闭扬声器 function GlobalPlugin:CloseSpeaker() log("GlobalPlugin:CloseSpeaker() "); if self.pluginGVoice then self.pluginGVoice:CloseSpeaker() else logD("GlobalPlugin:CloseSpeaker(), self.pluginGVoice is nil") end end function GlobalPlugin:OnApplicationPause() log("GlobalPlugin:OnApplicationPause() "); if self.pluginGVoice then self.pluginGVoice:OnApplicationPause() else logD("GlobalPlugin:OnApplicationPause(), self.pluginGVoice is nil") end end function GlobalPlugin:Update() -- log("GlobalPlugin:Update() "); if self.pluginGVoice then self.pluginGVoice:Update() else -- logD("GlobalPlugin:Update(), self.pluginGVoice is nil") end end ------------------------------------------- gps ------------------------------------------- -- 更新GPS位置信息 function GlobalPlugin:updateLocation() logD("GlobalPlugin:updateLocation()") if self.pluginGps then self.pluginGps:updateLocation() else logD("GlobalPlugin:updateLocation() self.pluginGps is nil") end end -- 获取当前的GPS位置信息 function GlobalPlugin:getLocationInfo() logD("GlobalPlugin:getLocationInfo()") if self.pluginGps then return self.pluginGps:getLocationInfo() else logD("GlobalPlugin:getLocationInfo() self.pluginGps is nil") end end -- 获取定位服务开启状态 function GlobalPlugin:getLocationEnable() logD("GlobalPlugin:getLocationEnable()") if self.pluginGps then local status = self.pluginGps:getLocationEnable() logD("GlobalPlugin:getLocationEnable(), status = ", tostring(status)) return status else logD("GlobalPlugin:getLocationEnable() self.pluginGps is nil") return false end end -- 前往打开GPS function GlobalPlugin:openGPS() logD("GlobalPlugin:openGPS()"); if self.pluginGps then self.pluginGps:openGPS(); else logD("GlobalPlugin:openGPS() self.pluginGps is nil") end end ------------------------------------------- ping ------------------------------------------- function GlobalPlugin:startPing() logD("GlobalPlugin:startPing()") if self.pluginPing then return self.pluginPing:startPing() else logD("GlobalPlugin:startPing(), self.pluginPing is nil") end end function GlobalPlugin:stopPing() logD("GlobalPlugin:stopPing()") if self.pluginPing then return self.pluginPing:stopPing() else logD("GlobalPlugin:stopPing(), self.pluginPing is nil") end end function GlobalPlugin:getPing() logD("GlobalPlugin:getPing()") if self.pluginPing then local result = self.pluginPing:getPing() logD("GlobalPlugin:getPing(), result = ", result) return result else logD("GlobalPlugin:getPing(), self.pluginPing is nil") return 0 end end ------------------------------------------- downloader ------------------------------------------- function GlobalPlugin:createTask(url,path,onFinish,onProgress) logD("GlobalPlugin:createTask(), url = " .. url .. ", path = " .. path) if self.pluginDownloader then self.pluginDownloader:createTask(url,path,onFinish,onProgress) else logD("GlobalPlugin:createTask(), self.pluginDownloader is nil") end end return GlobalPlugin