您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

577 行
15 KiB

  1. local PluginAndroidLocation = require("luaScript.Plugins.PluginAndroidLocation");
  2. local PluginAndroidGVoice = require("luaScript.Plugins.PluginAndroidGVoice");
  3. local PluginAndroidDowloadManager = require("luaScript.Plugins.PluginAndroidDowloadManager");
  4. local PluginAndroidPing = require("luaScript.Plugins.PluginAndroidPing");
  5. local PluginIosPay = require("luaScript.Plugins.PluginIosPay");
  6. local PluginIosLocation = require("luaScript.Plugins.PluginIosLocation");
  7. local PluginIosGVoice = require("luaScript.Plugins.PluginIosGVoice");
  8. local PluginIosDowloadManager = require("luaScript.Plugins.PluginIosDowloadManager");
  9. local PluginWechat = require("luaScript.Plugins.PluginWechat");
  10. local PluginWechatShare = require("luaScript.Plugins.PluginWechatShare");
  11. local PluginYaya = require("luaScript.Plugins.PluginYaya");
  12. local PluginGVoice = require("luaScript.Plugins.PluginGVoice");
  13. local PluginZhuCheng = require("luaScript.Plugins.PluginZhuCheng");
  14. local GlobalPlugin = class("GlobalPlugin");
  15. function GlobalPlugin:ctor()
  16. -- 苹果支付插件
  17. self.pluginIosPay = nil
  18. -- 微信
  19. self.pluginWechat = nil;
  20. -- 微信分享
  21. self.pluginWxShare = nil
  22. --yaya语音
  23. self.pluginVoice = nil;
  24. --腾讯语音插件
  25. self.pluginGVoice = nil
  26. -- GPS 定位插件
  27. self.pluginGps = nil
  28. -- 初始化
  29. self:init();
  30. end
  31. function GlobalPlugin:init()
  32. -- 载入平台信息
  33. local channelId = app.config.RomSetting.ChannelId;
  34. -- PC 版本强制设为100,防止配置错误导致的报错
  35. if isWin32Platform() then
  36. channelId = 100
  37. end
  38. if isAndroidPlatform() then
  39. self.pluginWechat = PluginWechat:new();
  40. self.pluginVoice = PluginYaya:new();
  41. self.pluginGps = PluginAndroidLocation:new()
  42. self.pluginDownloader = PluginAndroidDowloadManager:new()
  43. self.pluginPing = PluginAndroidPing:new()
  44. --self.pluginWxShare = PluginWechatShare:new()
  45. self.pluginGVoice = PluginGVoice:new()
  46. elseif isIOSPlatform() then
  47. self.pluginWechat = PluginWechat:new();
  48. self.pluginVoice = PluginYaya:new();
  49. self.pluginGps = PluginIosLocation:new();
  50. self.pluginDownloader = PluginIosDowloadManager:new()
  51. --self.pluginWxShare = PluginWechatShare:new()
  52. self.pluginGVoice = PluginGVoice:new()
  53. if channelId == 105 then
  54. self.pluginIosPay = PluginIosPay:new();
  55. end
  56. end
  57. -- 启动插件
  58. self:start();
  59. end
  60. -- 开启插件
  61. function GlobalPlugin:start()
  62. -- 启动登陆插件
  63. if self.pluginWechat then
  64. self.pluginWechat:start()
  65. end
  66. -- 下载SDK
  67. if self.pluginDownloader then
  68. self.pluginDownloader:start()
  69. end
  70. -- 网络监测
  71. if self.pluginPing then
  72. self.pluginPing:start()
  73. end
  74. -- 定位
  75. if self.pluginGps then
  76. local versionCode = getAppVersionName()
  77. log("versionCode:",versionCode)
  78. self.pluginGps:start()
  79. end
  80. end
  81. -- 注销账号
  82. function GlobalPlugin:logout(tt)
  83. if not isWin32Platform() then
  84. app.userManager:clearUserList();
  85. end
  86. cc.Application:getInstance():restart();
  87. end
  88. -- 跳转网页
  89. function GlobalPlugin:callUrl(url)
  90. logD("GlobalPlugin:callUrl(), url = ", url);
  91. if PluginDevice then
  92. PluginDevice:callVoid("openUrl", url);
  93. else
  94. logD("GlobalPlugin:callUrl(), PluginDevice is nil");
  95. end
  96. end
  97. function GlobalPlugin:isShowThirdLogin()
  98. return self:isSupportWeiXin()
  99. end
  100. function GlobalPlugin:shareGame(tt, shareCallback)
  101. logD("GlobalPlugin:shareGame(), tt = ", table.tostring(tt))
  102. if self.pluginWxShare then
  103. self:shareWxShare(tt, shareCallback)
  104. else
  105. self:shareWeiXin(tt, shareCallback)
  106. end
  107. end
  108. ------------------------------------------- IosPay -------------------------------------------
  109. function GlobalPlugin:startIosPay()
  110. logD("GlobalPlugin:startIosPay()")
  111. if self.pluginIosPay then
  112. self.pluginIosPay:start()
  113. else
  114. logD("GlobalPlugin:startIosPay(), self.pluginIosPay is nil")
  115. end
  116. end
  117. function GlobalPlugin:payIosPay(itemInfo)
  118. logD("GlobalPlugin:payIosPay(), tt = ", table.tostring(itemInfo))
  119. if self.pluginIosPay then
  120. self.pluginIosPay:pay(itemInfo)
  121. else
  122. logD("GlobalPlugin:payIosPay(), self.pluginIosPay is nil")
  123. end
  124. end
  125. ------------------------------------------- WeiXin -------------------------------------------
  126. function GlobalPlugin:isSupportWeiXin()
  127. logD("GlobalPlugin:isSupportWeiXin()")
  128. if self.pluginWechat then
  129. local result = self.pluginWechat:isSupport()
  130. logD("GlobalPlugin:isSupportWeiXin(), result = ", tostring(result))
  131. return result
  132. else
  133. logD("GlobalPlugin:isSupportWeiXin(), self.pluginWechat is nil")
  134. return false
  135. end
  136. end
  137. function GlobalPlugin:gotoWeiXin()
  138. logD("GlobalPlugin:gotoWeiXin()")
  139. if self.pluginWechat then
  140. self.pluginWechat:gotoWeiXin();
  141. else
  142. logD("GlobalPlugin:gotoWeiXin(), self.pluginWechat is nil")
  143. end
  144. end
  145. function GlobalPlugin:loginWeiXin(tt)
  146. logD("GlobalPlugin:loginWeiXin(), tt = ", table.tostring(tt))
  147. if self.pluginWechat then
  148. self.pluginWechat:login(tt);
  149. else
  150. logD("GlobalPlugin:loginWeiXin(), self.pluginWechat is nil")
  151. end
  152. end
  153. function GlobalPlugin:payWeiXin(tt)
  154. logD("GlobalPlugin:payWeiXin(), tt = ", table.tostring(tt))
  155. if self.pluginWechat then
  156. self.pluginWechat:pay(tt);
  157. else
  158. logD("GlobalPlugin:payWeiXin(), self.pluginWechat is nil")
  159. end
  160. end
  161. function GlobalPlugin:shareWeiXin(tt, callback)
  162. logD("GlobalPlugin:shareWeiXin(), tt = ", table.tostring(tt))
  163. if self.pluginWechat then
  164. self.pluginWechat:shareGame(tt, callback)
  165. else
  166. logD("GlobalPlugin:shareWeiXin(), self.pluginWechat is nil")
  167. end
  168. end
  169. -- 显示微信下载的对话框
  170. function GlobalPlugin:showWeiXinDownloadDialog()
  171. local text = "未安装【微信】,是否前往下载【微信】?"
  172. local okBtnImage = "res/ui/zy_tongyong/zy_button/btn_like_xiazai.png"
  173. local okCallBack = function()
  174. app.plugin:callUrl("http://weixin.qq.com/");
  175. end
  176. local cancelCallBack = function()
  177. end
  178. showConfirmDialog(text, okCallBack, cancelCallBack, 26, okBtnImage)
  179. return;
  180. end
  181. ------------------------------------------- wxshare -------------------------------------------
  182. -- 初始化微信分享
  183. function GlobalPlugin:initWxShare( appid, secret )
  184. logD("GlobalPlugin:initWxShare(), appid = "..appid..", secret = "..secret)
  185. if isWin32Platform() then
  186. logD("GlobalPlugin:initWxShare(), win32")
  187. return
  188. end
  189. if isReviewVersion() then
  190. logD("GlobalPlugin:initWxShare(), review version")
  191. return
  192. end
  193. local PluginConfig = require("preload.PluginConfig")
  194. if PluginConfig and PluginConfig.isAppStoreVersion then
  195. -- 苹果商城的版本因为包名发生了变化,是不能使用多微信分享的。
  196. return
  197. end
  198. if not self.pluginWxShare then
  199. self.pluginWxShare = PluginWechatShare:new()
  200. end
  201. if self.pluginWxShare then
  202. self.pluginWxShare:start(appid, secret);
  203. end
  204. end
  205. function GlobalPlugin:shareWxShare(tt, callback)
  206. logD("GlobalPlugin:shareWxShare(), tt = ", table.tostring(tt))
  207. if self.pluginWxShare then
  208. self.pluginWxShare:shareGame(tt, callback)
  209. else
  210. logD("GlobalPlugin:shareWxShare(), self.pluginWxShare is nil")
  211. end
  212. end
  213. ------------------------------------------- voice -------------------------------------------
  214. -- 成功登陆到游戏
  215. function GlobalPlugin:startVoice()
  216. logD("GlobalPlugin:startVoice()")
  217. if self.pluginVoice then
  218. self.pluginVoice:start()
  219. else
  220. logD("GlobalPlugin:startVoice(), self.pluginVoice is nil")
  221. end
  222. end
  223. -- 开始录音
  224. function GlobalPlugin:startRecord()
  225. logD("GlobalPlugin:startRecord()")
  226. if self.pluginVoice then
  227. self.pluginVoice:startRecord()
  228. else
  229. logD("GlobalPlugin:startRecord(), self.pluginVoice is nil")
  230. end
  231. end
  232. -- 结束录音
  233. function GlobalPlugin:stopRecord()
  234. logD("GlobalPlugin:stopRecord()")
  235. if self.pluginVoice then
  236. self.pluginVoice:stopRecord()
  237. else
  238. logD("GlobalPlugin:stopRecord(), self.pluginVoice is nil")
  239. end
  240. end
  241. -- 取消录音
  242. function GlobalPlugin:cancelRecord()
  243. logD("GlobalPlugin:cancelRecord()")
  244. if self.pluginVoice then
  245. self.pluginVoice:cancelRecord()
  246. else
  247. logD("GlobalPlugin:cancelRecord(), self.pluginVoice is nil")
  248. end
  249. end
  250. -- 播放录音
  251. function GlobalPlugin:playRecord(filePath)
  252. log("GlobalPlugin:playRecord(), filePath = ", filePath);
  253. if self.pluginVoice then
  254. self.pluginVoice:playRecord(filePath)
  255. else
  256. logD("GlobalPlugin:playRecord(), self.pluginVoice is nil")
  257. end
  258. end
  259. -- 停止播放录音
  260. function GlobalPlugin:stopPlayRecord()
  261. log("GlobalPlugin:stopPlayRecord() ");
  262. if self.pluginVoice then
  263. self.pluginVoice:stopPlayRecord()
  264. else
  265. logD("GlobalPlugin:stopPlayRecord(), self.pluginVoice is nil")
  266. end
  267. end
  268. -- 下载录音
  269. function GlobalPlugin:downloadRecord(nUserId, recordUrl, downloadCallback)
  270. log("GlobalPlugin:downloadRecord(), nUserId = " .. nUserId .. ", recordUrl = " .. recordUrl);
  271. if self.pluginVoice then
  272. self.pluginVoice:downloadRecord(nUserId, recordUrl, downloadCallback);
  273. else
  274. logD("GlobalPlugin:downloadRecord(), self.pluginVoice is nil")
  275. end
  276. end
  277. ------------------------------------------- gvoice -------------------------------------------
  278. -- 成功登陆到游戏
  279. function GlobalPlugin:startGVoice()
  280. logD("GlobalPlugin:startGVoice()")
  281. if self.pluginGVoice then
  282. self.pluginGVoice:start()
  283. else
  284. logD("GlobalPlugin:startGVoice(), self.pluginGVoice is nil")
  285. end
  286. end
  287. function GlobalPlugin:ApplyMessageKey()
  288. logD("GlobalPlugin:ApplyMessageKey()")
  289. if self.pluginGVoice then
  290. self.pluginGVoice:ApplyMessageKey()
  291. else
  292. logD("GlobalPlugin:ApplyMessageKey(), self.pluginGVoice is nil")
  293. end
  294. end
  295. -- 开始录音
  296. function GlobalPlugin:startGRecord()
  297. logD("GlobalPlugin:startGRecord()")
  298. if self.pluginGVoice then
  299. self.pluginGVoice:startRecord()
  300. else
  301. logD("GlobalPlugin:startGRecord(), self.pluginGVoice is nil")
  302. end
  303. end
  304. -- 结束录音
  305. function GlobalPlugin:stopGRecord()
  306. logD("GlobalPlugin:stopGRecord()")
  307. if self.pluginGVoice then
  308. self.pluginGVoice:stopRecord()
  309. else
  310. logD("GlobalPlugin:stopGRecord(), self.pluginGVoice is nil")
  311. end
  312. end
  313. -- 取消录音
  314. function GlobalPlugin:cancelGRecord()
  315. logD("GlobalPlugin:cancelGRecord()")
  316. if self.pluginGVoice then
  317. self.pluginGVoice:cancelRecord()
  318. else
  319. logD("GlobalPlugin:cancelGRecord(), self.pluginGVoice is nil")
  320. end
  321. end
  322. -- 播放录音
  323. function GlobalPlugin:playGRecord(fileId)
  324. log("GlobalPlugin:playGRecord(), fileId = ", fileId);
  325. if self.pluginGVoice then
  326. self.pluginGVoice:playRecord(fileId)
  327. else
  328. logD("GlobalPlugin:playGRecord(), self.pluginGVoice is nil")
  329. end
  330. end
  331. -- 停止播放录音
  332. function GlobalPlugin:stopGPlayRecord()
  333. log("GlobalPlugin:stopGPlayRecord() ");
  334. if self.pluginGVoice then
  335. self.pluginGVoice:stopPlayRecord()
  336. else
  337. logD("GlobalPlugin:stopGPlayRecord(), self.pluginGVoice is nil")
  338. end
  339. end
  340. -- 下载录音
  341. -- function GlobalPlugin:downloadGRecord(nfileID, nUserId, filePath, downloadCallback)
  342. -- log("GlobalPlugin:downloadGRecord(), nfileID = " .. nfileID .. ", nUserId = " .. nUserId .. ", filePath = " .. filePath);
  343. function GlobalPlugin:downloadGRecord(nUserId, nfileID, downloadCallback)
  344. log("GlobalPlugin:downloadGRecord(), nUserId = " .. nUserId .. ", nfileID = " .. nfileID);
  345. if self.pluginGVoice then
  346. -- self.pluginGVoice:downloadRecord(nfileID, nUserId, filePath, downloadCallback);
  347. self.pluginGVoice:downloadRecord(nUserId, nfileID, downloadCallback);
  348. else
  349. logD("GlobalPlugin:downloadGRecord(), self.pluginGVoice is nil")
  350. end
  351. end
  352. -- 加入房间
  353. function GlobalPlugin:JoinRoom(room)
  354. log("GlobalPlugin:JoinRoom(), room = ", room);
  355. if self.pluginGVoice then
  356. self.pluginGVoice:JoinRoom(room)
  357. else
  358. logD("GlobalPlugin:JoinRoom(), self.pluginGVoice is nil")
  359. end
  360. end
  361. -- 退出房间
  362. function GlobalPlugin:QuitRoom(room)
  363. log("GlobalPlugin:QuitRoom(), room = ", room);
  364. if self.pluginGVoice then
  365. self.pluginGVoice:QuitRoom(room)
  366. else
  367. logD("GlobalPlugin:QuitRoom(), self.pluginGVoice is nil")
  368. end
  369. end
  370. -- 开启麦克风
  371. function GlobalPlugin:OpenMic()
  372. log("GlobalPlugin:OpenMic() ");
  373. if self.pluginGVoice then
  374. self.pluginGVoice:OpenMic()
  375. else
  376. logD("GlobalPlugin:OpenMic(), self.pluginGVoice is nil")
  377. end
  378. end
  379. -- 关闭麦克风
  380. function GlobalPlugin:CloseMic()
  381. log("GlobalPlugin:CloseMic() ");
  382. if self.pluginGVoice then
  383. self.pluginGVoice:CloseMic()
  384. else
  385. logD("GlobalPlugin:CloseMic(), self.pluginGVoice is nil")
  386. end
  387. end
  388. -- 开启扬声器
  389. function GlobalPlugin:OpenSpeaker()
  390. log("GlobalPlugin:OpenSpeaker() ");
  391. if self.pluginGVoice then
  392. self.pluginGVoice:OpenSpeaker()
  393. else
  394. logD("GlobalPlugin:OpenSpeaker(), self.pluginGVoice is nil")
  395. end
  396. end
  397. -- 关闭扬声器
  398. function GlobalPlugin:CloseSpeaker()
  399. log("GlobalPlugin:CloseSpeaker() ");
  400. if self.pluginGVoice then
  401. self.pluginGVoice:CloseSpeaker()
  402. else
  403. logD("GlobalPlugin:CloseSpeaker(), self.pluginGVoice is nil")
  404. end
  405. end
  406. function GlobalPlugin:OnApplicationPause()
  407. log("GlobalPlugin:OnApplicationPause() ");
  408. if self.pluginGVoice then
  409. self.pluginGVoice:OnApplicationPause()
  410. else
  411. logD("GlobalPlugin:OnApplicationPause(), self.pluginGVoice is nil")
  412. end
  413. end
  414. function GlobalPlugin:Update()
  415. -- log("GlobalPlugin:Update() ");
  416. if self.pluginGVoice then
  417. self.pluginGVoice:Update()
  418. else
  419. -- logD("GlobalPlugin:Update(), self.pluginGVoice is nil")
  420. end
  421. end
  422. ------------------------------------------- gps -------------------------------------------
  423. -- 更新GPS位置信息
  424. function GlobalPlugin:updateLocation()
  425. logD("GlobalPlugin:updateLocation()")
  426. if self.pluginGps then
  427. self.pluginGps:updateLocation()
  428. else
  429. logD("GlobalPlugin:updateLocation() self.pluginGps is nil")
  430. end
  431. end
  432. -- 获取当前的GPS位置信息
  433. function GlobalPlugin:getLocationInfo()
  434. logD("GlobalPlugin:getLocationInfo()")
  435. if self.pluginGps then
  436. return self.pluginGps:getLocationInfo()
  437. else
  438. logD("GlobalPlugin:getLocationInfo() self.pluginGps is nil")
  439. end
  440. end
  441. -- 获取定位服务开启状态
  442. function GlobalPlugin:getLocationEnable()
  443. logD("GlobalPlugin:getLocationEnable()")
  444. if self.pluginGps then
  445. local status = self.pluginGps:getLocationEnable()
  446. logD("GlobalPlugin:getLocationEnable(), status = ", tostring(status))
  447. return status
  448. else
  449. logD("GlobalPlugin:getLocationEnable() self.pluginGps is nil")
  450. return false
  451. end
  452. end
  453. -- 前往打开GPS
  454. function GlobalPlugin:openGPS()
  455. logD("GlobalPlugin:openGPS()");
  456. if self.pluginGps then
  457. self.pluginGps:openGPS();
  458. else
  459. logD("GlobalPlugin:openGPS() self.pluginGps is nil")
  460. end
  461. end
  462. ------------------------------------------- ping -------------------------------------------
  463. function GlobalPlugin:startPing()
  464. logD("GlobalPlugin:startPing()")
  465. if self.pluginPing then
  466. return self.pluginPing:startPing()
  467. else
  468. logD("GlobalPlugin:startPing(), self.pluginPing is nil")
  469. end
  470. end
  471. function GlobalPlugin:stopPing()
  472. logD("GlobalPlugin:stopPing()")
  473. if self.pluginPing then
  474. return self.pluginPing:stopPing()
  475. else
  476. logD("GlobalPlugin:stopPing(), self.pluginPing is nil")
  477. end
  478. end
  479. function GlobalPlugin:getPing()
  480. logD("GlobalPlugin:getPing()")
  481. if self.pluginPing then
  482. local result = self.pluginPing:getPing()
  483. logD("GlobalPlugin:getPing(), result = ", result)
  484. return result
  485. else
  486. logD("GlobalPlugin:getPing(), self.pluginPing is nil")
  487. return 0
  488. end
  489. end
  490. ------------------------------------------- downloader -------------------------------------------
  491. function GlobalPlugin:createTask(url,path,onFinish,onProgress)
  492. logD("GlobalPlugin:createTask(), url = " .. url .. ", path = " .. path)
  493. if self.pluginDownloader then
  494. self.pluginDownloader:createTask(url,path,onFinish,onProgress)
  495. else
  496. logD("GlobalPlugin:createTask(), self.pluginDownloader is nil")
  497. end
  498. end
  499. return GlobalPlugin