Commit 1d5b0471 authored by David黄金龙's avatar David黄金龙

Merge branch 'double11' into develop

* double11:
  处理 H5 联调
  几处 代码优化
  处理 H5 token刷新的问题

# Conflicts:
#	galaxy/galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
#	galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/V/YHServiceBannerView.swift
parents a10e6c06 dfc0487a
...@@ -39,14 +39,9 @@ class YHHKEventWebViewController: YHBaseViewController { ...@@ -39,14 +39,9 @@ class YHHKEventWebViewController: YHBaseViewController {
extension YHHKEventWebViewController { extension YHHKEventWebViewController {
func loadData() { func loadData() {
guard let urlString = model.list.first else { return } guard let urlString = model.list.first else { return }
// let url = NSURL(string: urlString)
// // 创建请求
// let request = NSURLRequest(url: url! as URL)
// // 加载请求
// self.webview.load(request as URLRequest)
if let url = URL(string: urlString) { if let url = URL(string: urlString) {
let request = NSURLRequest(url: url) let request = URLRequest(url: url)
webview.load(request as URLRequest) webview.load(request)
} else { } else {
let tmpUrl = YHURLEncodeHelper.urlEncodedString(urlString) let tmpUrl = YHURLEncodeHelper.urlEncodedString(urlString)
if let url = URL(string: tmpUrl) { if let url = URL(string: tmpUrl) {
......
...@@ -347,12 +347,12 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD ...@@ -347,12 +347,12 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
if YHNetworkStatusManager.shared.isNetWorkOK { if YHNetworkStatusManager.shared.isNetWorkOK {
if needReload && self.isNetWorkOkBefore == false { if needReload && self.isNetWorkOkBefore == false {
self.webview.stopLoading() self.webview.stopLoading()
let targetUrl = NSURL(string: self.url) if let targetUrl = URL(string: self.url) {
let request = NSURLRequest(url: targetUrl! as URL) let request = URLRequest(url: targetUrl)
self.webview.load(request as URLRequest) self.webview.load(request)
}
self.getData() self.getData()
} }
self.isNetWorkOkBefore = true self.isNetWorkOkBefore = true
} }
......
...@@ -102,14 +102,6 @@ private extension YHStatusAdvantageVC { ...@@ -102,14 +102,6 @@ private extension YHStatusAdvantageVC {
} }
func reloadWebUrl() { func reloadWebUrl() {
// let url = NSURL(string: url)
// // 创建请求
// let request = NSURLRequest(url: url! as URL)
// 加载请求
// webview.load(request as URLRequest)
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)
...@@ -230,11 +222,11 @@ private extension YHStatusAdvantageVC { ...@@ -230,11 +222,11 @@ private extension YHStatusAdvantageVC {
if YHNetworkStatusManager.shared.isNetWorkOK { if YHNetworkStatusManager.shared.isNetWorkOK {
if needReload && self.isNetWorkOkBefore == false { if needReload && self.isNetWorkOkBefore == false {
self.webview.stopLoading() self.webview.stopLoading()
let targetUrl = NSURL(string: self.url) if let targetUrl = URL(string: self.url) {
let request = NSURLRequest(url: targetUrl! as URL) let request = URLRequest(url: targetUrl)
self.webview.load(request as URLRequest) self.webview.load(request)
}
} }
self.isNetWorkOkBefore = true self.isNetWorkOkBefore = true
} }
......
...@@ -135,7 +135,22 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -135,7 +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
//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"
//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
...@@ -148,8 +163,17 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -148,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 {
......
...@@ -123,6 +123,20 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -123,6 +123,20 @@ 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
//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
...@@ -135,9 +149,21 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -135,9 +149,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,39 +128,127 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { ...@@ -123,39 +128,127 @@ 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 {
tUrl = url + "&param=" + token tUrl = url + "&param=" + token
} }
if let url = NSURL(string: tUrl) as? URL { if let url = URL(string: tUrl) {
let request = NSURLRequest(url: url) let request = URLRequest(url: url)
webview.load(request as URLRequest) webview.load(request)
return
} }
return
} else { } else {
printLog("理论上不存在的情况,暂时不处理") //有 param= 的情况
//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("不应该存在的场景")
}
} }
} }
//最后兜底 刷新 //最后兜底 刷新
if let url = NSURL(string: url) as? URL { if let url = URL(string: url) {
let request = NSURLRequest(url: url) let request = URLRequest(url: url)
webview.load(request as URLRequest) webview.load(request)
} }
} }
func reloadUI() { func reloadUI() {
if isNeedRefreshDataFlag { if isNeedRefreshDataFlag {
if let url = NSURL(string: url) as? URL { if let url = URL(string: url){
let request = NSURLRequest(url: url) let request = URLRequest(url: url)
webview.load(request as URLRequest) webview.load(request)
} }
} }
} }
...@@ -206,6 +299,8 @@ private extension YHH5WebViewVC { ...@@ -206,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)
...@@ -215,13 +310,14 @@ private extension YHH5WebViewVC { ...@@ -215,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()
} }
...@@ -286,9 +382,10 @@ private extension YHH5WebViewVC { ...@@ -286,9 +382,10 @@ private extension YHH5WebViewVC {
if YHNetworkStatusManager.shared.isNetWorkOK { if YHNetworkStatusManager.shared.isNetWorkOK {
if needReload && self.isNetWorkOkBefore == false { if needReload && self.isNetWorkOkBefore == false {
self.webview.stopLoading() self.webview.stopLoading()
let targetUrl = NSURL(string: self.url) if let targetUrl = URL(string: self.url) {
let request = NSURLRequest(url: targetUrl! as URL) let request = URLRequest(url: targetUrl)
self.webview.load(request as URLRequest) self.webview.load(request)
}
} }
self.isNetWorkOkBefore = true self.isNetWorkOkBefore = true
...@@ -374,19 +471,22 @@ extension YHH5WebViewVC { ...@@ -374,19 +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失效 重新登录
YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in
YHLoginManager.shared.loginSuccessActionBlock = nil
guard let self = self else { return }
self.reloadWebViewWithToken()
} }
YHOneKeyLoginManager.shared.oneKeyLogin()
} else {
printLog("当前已是登录状态")
} }
//H5 调用App的登录逻辑
YHOneKeyLoginManager.shared.oneKeyLogin()
} }
//是否隐藏导航栏 //是否隐藏导航栏
...@@ -398,6 +498,7 @@ extension YHH5WebViewVC { ...@@ -398,6 +498,7 @@ extension YHH5WebViewVC {
} else { } else {
//不隐藏 //不隐藏
isHideNavigationBar = false isHideNavigationBar = false
supportFullScreenSyn("1")
} }
gk_navigationBar.isHidden = isHideNavigationBar gk_navigationBar.isHidden = isHideNavigationBar
} }
...@@ -406,7 +507,9 @@ extension YHH5WebViewVC { ...@@ -406,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
...@@ -414,6 +517,8 @@ extension YHH5WebViewVC { ...@@ -414,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
......
...@@ -27,14 +27,7 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD ...@@ -27,14 +27,7 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
// 创建wkwebview // 创建wkwebview
webview = WKWebView(frame: CGRect(x: 0, y: statusHeight + navHeight!, width: self.view.frame.width, height: self.view.frame.height - k_Height_NavigationtBarAndStatuBar)) webview = WKWebView(frame: CGRect(x: 0, y: statusHeight + navHeight!, width: self.view.frame.width, height: self.view.frame.height - k_Height_NavigationtBarAndStatuBar))
webview.navigationDelegate = self webview.navigationDelegate = self
// // 创建网址
// let url = NSURL(string: url)
// // 创建请求
// let request = NSURLRequest(url: url! as URL)
// // 加载请求
// webview.load(request as URLRequest)
if let url = URL(string: url) { if let url = URL(string: url) {
let request = URLRequest(url: url) let request = URLRequest(url: url)
......
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