|
- 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
|