c1_lua/lua/app/common/platform.lua
2025-09-28 20:04:42 +08:00

155 lines
4.5 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local Platform = {}
---- 获取包名
function Platform:getIdentifier()
if not Platform:getIsPublishChannel() and VersionCompatible:supportSimulatedPackageName() then
return CS.BF.BFMain.DPPackageName
end
return CS.UnityEngine.Application.identifier
end
---- 是否是内网开发包
function Platform:getIsDevChannel()
return IS_DEV
end
---- 是否是外网测试包
function Platform:getIsTestChannel()
return IS_TEST
end
---- 是否是正式发布包
function Platform:getIsPublishChannel()
return IS_PUBLISH
end
-- 平台
function Platform:getPlatform()
if self._platform then
return self._platform
end
if CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.Android then
self._platform = "Android"
elseif CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.IPhonePlayer then
self._platform = "iOS"
elseif CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.OSXEditor then
self._platform = "Mac"
elseif CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.OSXPlayer then
self._platform = "Mac"
elseif CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.WindowsEditor then
self._platform = "Windows"
elseif CS.UnityEngine.Application.platform == CS.UnityEngine.RuntimePlatform.WindowsPlayer then
self._platform = "Windows"
else
self._platform = "Unknow"
end
return self._platform
end
-- 获取当前版本号
function Platform:getClientVersion()
if self.clientVersion == nil then
self.clientVersion = CS.BF.BFMain.Instance.GameLaunchMgr:GetCurrentVersion()
end
return self.clientVersion
end
-- 获取并处理当前版本号 例1.3.2 => 1*1000000 + 3 * 1000 + 2 = 1003002
function Platform:getClientVersionNum()
local version = Platform:getClientVersion()
local versionStrs = string.split(version, ".")
local versionNum1 = tonumber(versionStrs[1])
local versionNum2 = tonumber(versionStrs[2])
local versionNum3 = tonumber(versionStrs[3])
return versionNum1 * 1000000 + versionNum2 * 1000 + versionNum3
end
function Platform:isIosPlatform()
return self:getPlatform() == "iOS"
end
function Platform:isAndroidPlatform()
return self:getPlatform() == "Android"
end
-- 联网需求后端需要的平台字符串
function Platform:getPlatformStr()
if self.platformStr == nil then
if self:isIosPlatform() then
self.platformStr = "iOS"
elseif self:isAndroidPlatform() then
self.platformStr = "Android"
else
self.platformStr = "Unity"
end
end
return self.platformStr
end
-- 判断是否是T3地区
function Platform:getPlatformIsT3()
local systemLanguage = CS.UnityEngine.Application.systemLanguage
local isAndroid = self:isAndroidPlatform()
local isT3 = false
-- 测试模式打开
if EDITOR_MODE then
return true
end
-- 需要Android 且 T3地区 才会开放,目前按照系统语言来处理
if isAndroid then
-- 除美国、日本、韩国、台湾、德国、法国、英国、加拿大、澳大利亚以外的的地区为T3。
isT3 = true
if systemLanguage == CS.UnityEngine.SystemLanguage.English then -- 英语(美国/英国/加拿大/澳大利亚)
isT3 = false
elseif systemLanguage == CS.UnityEngine.SystemLanguage.Japanese then -- 日语(日本)
isT3 = false
elseif systemLanguage == CS.UnityEngine.SystemLanguage.Korean then -- 韩语(韩国)
isT3 = false
elseif systemLanguage == CS.UnityEngine.SystemLanguage.ChineseTraditional then -- 繁体(台湾)
isT3 = false
elseif systemLanguage == CS.UnityEngine.SystemLanguage.German then -- 德语(德国)
isT3 = false
elseif systemLanguage == CS.UnityEngine.SystemLanguage.French then -- 法语(法国/加拿大)
isT3 = false
end
else
return false
end
return isT3
end
function Platform:getPlatformIsThirdPay()
local systemLanguage = CS.UnityEngine.Application.systemLanguage
local isAndroid = self:isAndroidPlatform()
local isThirdPay = false
-- unity模式 并且是越南语的 情况下 打开三方支付
if EDITOR_MODE and I18N:getCurLanguage() == GConst.LANGUAGE.VIETNAMESE then
return true
end
if isAndroid and not CS.BF.BFMain.IsShenhe then
-- if systemLanguage == CS.UnityEngine.SystemLanguage.Russian then
-- isThirdPay = true
-- end
-- if self:getIdentifier() == "" then
-- isThirdPay = true
-- end
end
return isThirdPay
end
function Platform:getAdvertisingID()
if not self.advertisingID then
self.advertisingID = "none"
-- self.advertisingID = CS.BF.AdvertisingIDManager.GetAdvertisingID()
end
return self.advertisingID
end
return Platform