Commit dfc0487a authored by David黄金龙's avatar David黄金龙

处理 H5 联调

parent c8d2ae6e
...@@ -135,18 +135,22 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -135,18 +135,22 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
if model.skip_url.isEmpty == false { if model.skip_url.isEmpty == false {
switch model.skip_type { switch model.skip_type {
case 1: //跳转H5 case 1: //跳转H5
//建明的本机IP for test hjl //for test hjl 建明机器IP
//var url = "http://192.168.23.66:10300/superAppBridge.html#/schoolEvaluation" //var url = "http://192.168.23.66:10300/superAppBridge.html#/schoolEvaluation"
//for test hjl 梁辉本机IP //for test hjl 梁辉机器IP
// model.skip_url = "http://192.168.23.75:10300/superAppBridge.html#/double11-home" // model.skip_url = "http://192.168.23.75:10300/superAppBridge.html#/double11-home"
//for test hjl steve机器IP
//for test hjl 梁辉本机IP
// model.skip_url = "http://192.168.52.158:10300/superAppBridge.html#/double11-home" // model.skip_url = "http://192.168.52.158:10300/superAppBridge.html#/double11-home"
//for test hjl 测试环境 //for test hjl 测试环境
// model.skip_url = "https://test-hkdiy-h5.galaxy-immi.com/superAppBridge.html#/double11-home" // model.skip_url = "https://test-hkdiy-h5.galaxy-immi.com/superAppBridge.html#/double11-home"
//for test hjl
// model.skip_url = "http://192.168.23.35:10300/signatureQrcode/EcqtQYs%2Bxey7t6jLbn6JkQ%3D%3D"
//1.增加app token
var url = "" var url = ""
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token let token = YHLoginManager.shared.h5Token
...@@ -159,8 +163,17 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -159,8 +163,17 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
url = model.skip_url url = model.skip_url
} }
//2.增加导航栏高度
var tUrl = url
if !url.contains("navigationH=") {
tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)"
if url.contains("?") {
tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)"
}
}
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
vc.url = url vc.url = tUrl
vc.isFullScreenFlag = false vc.isFullScreenFlag = false
if model.is_double_11_flag { if model.is_double_11_flag {
vc.isHideNavigationBar = true vc.isHideNavigationBar = true
......
...@@ -123,7 +123,21 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -123,7 +123,21 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
if model.skip_url.isEmpty == false { if model.skip_url.isEmpty == false {
switch model.skip_type { switch model.skip_type {
case 1: //跳转H5 case 1: //跳转H5
// var url = "http://192.168.23.66:10300/superAppBridge.html#/schoolEvaluation"//建明的本机IP
//for test hjl 建明机器IP
//var url = "http://192.168.23.66:10300/superAppBridge.html#/schoolEvaluation"
//for test hjl 梁辉机器IP
// model.skip_url = "http://192.168.23.75:10300/superAppBridge.html#/double11-home"
//for test hjl steve机器IP
// model.skip_url = "http://192.168.52.158:10300/superAppBridge.html#/double11-home"
//for test hjl 测试环境
// model.skip_url = "https://test-hkdiy-h5.galaxy-immi.com/superAppBridge.html#/double11-home"
//1.增加app token
var url = "" var url = ""
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token let token = YHLoginManager.shared.h5Token
...@@ -136,9 +150,21 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -136,9 +150,21 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
url = model.skip_url url = model.skip_url
} }
//2.增加导航栏高度
var tUrl = url
if !url.contains("navigationH=") {
tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)"
if url.contains("?") {
tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)"
}
}
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
vc.url = url vc.url = tUrl
vc.isFullScreenFlag = false vc.isFullScreenFlag = false
if model.is_double_11_flag {
vc.isHideNavigationBar = true
}
if model.is_share_h5_flag { if model.is_share_h5_flag {
if let tModel = model.addtition_param { if let tModel = model.addtition_param {
......
...@@ -19,6 +19,11 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { ...@@ -19,6 +19,11 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
lazy var webview : DWKWebView = { lazy var webview : DWKWebView = {
let config = WKWebViewConfiguration() let config = WKWebViewConfiguration()
config.applicationNameForUserAgent = "YinHeApp" config.applicationNameForUserAgent = "YinHeApp"
if #available(iOS 14.5, *) {
config.upgradeKnownHostsToHTTPS = false
} else {
// Fallback on earlier versions
}
let webview = DWKWebView(frame: .zero, configuration: config) let webview = DWKWebView(frame: .zero, configuration: config)
webview.scrollView.contentInsetAdjustmentBehavior = .never webview.scrollView.contentInsetAdjustmentBehavior = .never
webview.navigationDelegate = self webview.navigationDelegate = self
...@@ -123,10 +128,9 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { ...@@ -123,10 +128,9 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
private extension YHH5WebViewVC { private extension YHH5WebViewVC {
func reloadWebViewWithToken() { func reloadWebViewWithToken() {
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token
if !url.contains("param=") { if !url.contains("param=") {
//无 param= 的情况
let token = YHLoginManager.shared.h5Token
var tUrl = url + "?param=" + token var tUrl = url + "?param=" + token
let urlHasParam = String.hasQueryParameters(urlString: url) let urlHasParam = String.hasQueryParameters(urlString: url)
if urlHasParam { if urlHasParam {
...@@ -136,12 +140,99 @@ private extension YHH5WebViewVC { ...@@ -136,12 +140,99 @@ private extension YHH5WebViewVC {
if let url = URL(string: tUrl) { if let url = URL(string: tUrl) {
let request = URLRequest(url: url) let request = URLRequest(url: url)
webview.load(request) webview.load(request)
return
} }
return
} else { } else {
//有 param= 的情况
//H5 发现token失效后重新刷新的场景 //H5 发现token失效后重新刷新的场景
if url.contains("?param=") {
//token是第一个参数 httts://www.baidu.com?param=
let separator = "?param="
let arr0 = url.components(separatedBy: separator)
if arr0.count == 1 {
//eg: httts://www.baidu.com?param=
let tUrl = arr0[0] + "?param=" + token
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
} else if arr0.count == 2 {
let secoundString = arr0[1]
let separator = "&"
let arr1 = secoundString.components(separatedBy: separator)
if arr1.count == 1 {
//eg: httts://www.baidu.com?param=123434324
let tUrl = arr0[0] + "?param=" + token
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
} else {
//eg: httts://www.baidu.com?param=123434324&key2=1232323
var tUrl = arr0[0] + "?param=" + token
for(index,str) in arr1.enumerated() {
if index != 0 {
tUrl = tUrl + "&" + str
}
}
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
}
}
} else if url.contains("&param=") {
//token非第一个参数
let separator = "&param="
let arr0 = url.components(separatedBy: separator)
if arr0.count == 1 {
//eg: httts://www.baidu.com?key0=123434324 &param=
let tUrl = arr0[0] + "&param=" + token
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
} else if arr0.count == 2 {
let secoundString = arr0[1]
let separator = "&"
let arr1 = secoundString.components(separatedBy: separator)
if arr1.count == 1 {
//eg: httts://www.baidu.com?key0=123434324 &param= 1234980
let tUrl = arr0[0] + "&param=" + token
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
} else {
//eg: httts://www.baidu.com?key0=123434324 &param= 1234980 & key1=34234
var tUrl = arr0[0] + "&param=" + token
for(index,str) in arr1.enumerated() {
if index != 0 {
tUrl = tUrl + "&" + str
}
}
if let url = URL(string: tUrl) {
let request = URLRequest(url: url)
webview.load(request)
return
}
}
}
} else {
printLog("不应该存在的场景")
}
} }
} }
...@@ -208,6 +299,8 @@ private extension YHH5WebViewVC { ...@@ -208,6 +299,8 @@ private extension YHH5WebViewVC {
api.delegate = self api.delegate = self
webview.addJavascriptObject(api, namespace: nil) webview.addJavascriptObject(api, namespace: nil)
printLog("hjl: 当前加载的url是:\(url)")
if let url = URL(string: url) { if let url = URL(string: url) {
let request = URLRequest(url: url) let request = URLRequest(url: url)
webview.load(request) webview.load(request)
...@@ -217,13 +310,14 @@ private extension YHH5WebViewVC { ...@@ -217,13 +310,14 @@ private extension YHH5WebViewVC {
let request = URLRequest(url: url) let request = URLRequest(url: url)
webview.load(request) webview.load(request)
} else { } else {
printLog("url: 有问题") printLog("url: 有问题 \(url)")
} }
} }
view.addSubview(webview) view.addSubview(webview)
if isFullScreenFlag { if isFullScreenFlag {
gk_navBarAlpha = 0.0
webview.snp.makeConstraints { make in webview.snp.makeConstraints { make in
make.edges.equalToSuperview() make.edges.equalToSuperview()
} }
...@@ -377,26 +471,22 @@ extension YHH5WebViewVC { ...@@ -377,26 +471,22 @@ extension YHH5WebViewVC {
//登录带token刷新 //登录带token刷新
func loginAndRefeshWithTokenSyn(_ tag : String) { func loginAndRefeshWithTokenSyn(_ tag : String) {
//判断登录状态 if tag.contains("1") {
if !YHLoginManager.shared.isLogin() { YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in
if tag.contains("1") { YHLoginManager.shared.loginSuccessActionBlock = nil
YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in guard let self = self else { return }
YHLoginManager.shared.loginSuccessActionBlock = nil self.reloadWebViewWithToken()
guard let self = self else { return } }
self.reloadWebViewWithToken() } else if tag.contains("2") {
} //H5 监测token失效 重新登录
} else if tag.contains("2") { YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in
//H5 监测token失效 重新登录 YHLoginManager.shared.loginSuccessActionBlock = nil
YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in guard let self = self else { return }
YHLoginManager.shared.loginSuccessActionBlock = nil self.reloadWebViewWithToken()
guard let self = self else { return }
self.reloadWebViewWithToken()
}
} }
YHOneKeyLoginManager.shared.oneKeyLogin()
} else {
printLog("当前已是登录状态")
} }
//H5 调用App的登录逻辑
YHOneKeyLoginManager.shared.oneKeyLogin()
} }
//是否隐藏导航栏 //是否隐藏导航栏
...@@ -408,6 +498,7 @@ extension YHH5WebViewVC { ...@@ -408,6 +498,7 @@ extension YHH5WebViewVC {
} else { } else {
//不隐藏 //不隐藏
isHideNavigationBar = false isHideNavigationBar = false
supportFullScreenSyn("1")
} }
gk_navigationBar.isHidden = isHideNavigationBar gk_navigationBar.isHidden = isHideNavigationBar
} }
...@@ -416,7 +507,9 @@ extension YHH5WebViewVC { ...@@ -416,7 +507,9 @@ extension YHH5WebViewVC {
func supportFullScreenSyn(_ tag : String) { func supportFullScreenSyn(_ tag : String) {
if tag.contains("1") { if tag.contains("1") {
//支持 //支持
isFullScreenFlag = true isFullScreenFlag = true
} else { } else {
//不支持 //不支持
isFullScreenFlag = false isFullScreenFlag = false
...@@ -424,6 +517,8 @@ extension YHH5WebViewVC { ...@@ -424,6 +517,8 @@ extension YHH5WebViewVC {
webview.snp.removeConstraints() webview.snp.removeConstraints()
if isFullScreenFlag { if isFullScreenFlag {
gk_navBarAlpha = 0.0
gk_navTitle = ""
webview.snp.remakeConstraints { make in webview.snp.remakeConstraints { make in
make.edges.equalToSuperview() make.edges.equalToSuperview()
} }
......
...@@ -247,22 +247,14 @@ extension YHJsApi { ...@@ -247,22 +247,14 @@ extension YHJsApi {
} else { } else {
//普通界面 //普通界面
if !url.isEmpty { if !url.isEmpty {
// var tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)" var tUrl = url
// let urlHasParam = String.hasQueryParameters(urlString: url) if !url.contains("avigationH=") {
// if urlHasParam { tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)"
// tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)" if url.contains("?") {
// } tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)"
// let vc = YHH5WebViewVC() }
// vc.url = tUrl
// vc.isFullScreenFlag = isFullScreen == 1 ? true : false
// vc.navTitle = navTitle
// self.delegate?.navigationController?.pushViewController(vc)
var tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)"
if url.contains("?") {
tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)"
} }
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
vc.url = tUrl vc.url = tUrl
vc.isFullScreenFlag = isFullScreen == 1 ? true : false vc.isFullScreenFlag = isFullScreen == 1 ? true : false
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment