149 lines
3.9 KiB
Plaintext
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
|