2025-06-04 05:02:57 +08:00

149 lines
3.9 KiB
Plaintext

autoImport("WebView")
WebviewPanel = class("WebviewPanel",ContainerView)
WebviewPanel.ViewType = UIViewType.BoardLayer
--https://127.0.0.1/v1/user/get_login_url?access_token=&redirect=https://127.0.0.1
function WebviewPanel:Init()
self:FindObjs()
self:AddButtonEvt()
self:AddCloseButtonEvent()
self:SetData()
self:ShowView()
end
function WebviewPanel:FindObjs()
self.content = self:FindGO("Content")
self.BG = self:FindGO("BG")
self.backwardBtn = self:FindGO("Backward")
self.forwardBtn = self:FindGO("Forward")
self.refreshBtn = self:FindGO("Refresh")
self.CloseButton = self:FindGO("CloseButton")
self.Frame = self:FindGO("Frame")
self.FrameWeb = self:FindGO("FrameWeb")
end
function WebviewPanel:AddButtonEvt()
self:AddClickEvent(self.backwardBtn,function ()
self:ClickBackwardBtn()
end)
self:AddClickEvent(self.forwardBtn,function ()
self:ClickForwardBtn()
end)
self:AddClickEvent(self.refreshBtn,function ()
self:ClickRefreshBtn()
end)
end
function WebviewPanel:AddCloseButtonEvent()
self:AddButtonEvent("CloseButton", function (go)
self:HideView(true)
self:CloseSelf();
end);
end
function WebviewPanel:ClickBackwardBtn()
ROWebView.Instance:GoBack()
end
function WebviewPanel:ClickForwardBtn()
ROWebView.Instance:GoForward()
end
function WebviewPanel:ClickRefreshBtn()
ROWebView.Instance:Reload()
end
function WebviewPanel:SetData()
if self.viewdata and self.viewdata.viewdata then
self.token = self.viewdata.viewdata.token
self.directurl = self.viewdata.viewdata.directurl
end
end
function WebviewPanel:OnEnter()
end
function WebviewPanel:ShowView()
Debug.Log("WebviewPanel:ShowView() 3")
local final =(Screen.height)/10
local finalurl = string.format("https://127.0.0.1:7881/v1/user/get_login_url?access_token=%s&redirect=https://127.0.0.1",self.token)
if ROWebView.Instance.webView~=nil then
helplog("在這一步把webview初始化")
end
ROWebView.Instance.toolBarShow = false
ROWebView.Instance:SetSavedInsets(final,0,0,0)
if ApplicationInfo.IsIphoneX() then
ROWebView.Instance:SetSavedInsets(40,35,20,35)
end
if ApplicationInfo.GetRunPlatform() == RuntimePlatform.Android then
--這裡要進一步驗證
ROWebView.Instance:SetUserAgent("Mozilla/5.0 (Android) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 ro uniwebview")
elseif ApplicationInfo.GetRunPlatform() == RuntimePlatform.IPhonePlayer then
ROWebView.Instance:SetUserAgent("Mozilla/5.0 (iPhone) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 ro uniwebview")
end
if self.directurl then
ROWebView.Instance.url = self.directurl
ROWebView.Instance:OpenButtonClicked()
ROWebView.Instance:SetInsets(final,0,0,0)
self.directurl = nil
else
local registerUrl = self:GetRegisterUrl()
Game.WWWRequestManager:SimpleRequest(finalurl,5,
function (www)
local content = www.text
local jsonRequest = json.decode(content)
if jsonRequest and jsonRequest.login_url then
ROWebView.Instance.url = jsonRequest.login_url
ROWebView.Instance:OpenButtonClicked()
ROWebView.Instance:SetInsets(final,0,0,0)
else
ROWebView.Instance.url = registerUrl
ROWebView.Instance:OpenButtonClicked()
ROWebView.Instance:SetInsets(final,0,0,0)
end
end,
function (www,error)
ROWebView.Instance.url = registerUrl
ROWebView.Instance:OpenButtonClicked()
ROWebView.Instance:SetInsets(final,0,0,0)
end,
function (www)
ROWebView.Instance.url = registerUrl
ROWebView.Instance:OpenButtonClicked()
ROWebView.Instance:SetInsets(final,0,0,0)
end)
end
end
function WebviewPanel:HideView(fade)
ROWebView.Instance:Hide(fade)
end
function WebviewPanel:Clear()
ROWebView.Instance:CleanCache()
end
function WebviewPanel:GetRegisterUrl()
local json = EnvChannel.GetHttpOperationJson()
LogUtility.InfoFormat("WebviewPanel:GetLoginUrl json:{0}",json)
if(json) then
local url = json["registerUrl"]
return url
end
end