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

H5 相关优化及几个方法支持

parent 26b7b111
...@@ -39,11 +39,23 @@ class YHHKEventWebViewController: YHBaseViewController { ...@@ -39,11 +39,23 @@ 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 url = NSURL(string: urlString)
// 创建请求 // // 创建请求
let request = NSURLRequest(url: url! as URL) // let request = NSURLRequest(url: url! as URL)
// 加载请求 // // 加载请求
self.webview.load(request as URLRequest) // self.webview.load(request as URLRequest)
if let url = URL(string: urlString) {
let request = NSURLRequest(url: url)
webview.load(request as URLRequest)
} else {
let tmpUrl = YHURLEncodeHelper.urlEncodedString(urlString)
if let url = URL(string: tmpUrl) {
let request = URLRequest(url: url)
webview.load(request)
} else {
printLog("url: 有问题")
}
}
if model.tag.contains("日历") { if model.tag.contains("日历") {
picUrl = urlString picUrl = urlString
......
...@@ -113,12 +113,18 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD ...@@ -113,12 +113,18 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
api.delegate = self api.delegate = self
webview.addJavascriptObject(api, namespace: nil) webview.addJavascriptObject(api, namespace: nil)
// 创建网址 if let url = URL(string: url) {
let url = NSURL(string: url) let request = URLRequest(url: url)
// 创建请求 webview.load(request)
let request = NSURLRequest(url: url! as URL) } else {
// 加载请求 let tmpUrl = YHURLEncodeHelper.urlEncodedString(url)
webview.load(request as URLRequest) if let url = URL(string: tmpUrl) {
let request = URLRequest(url: url)
webview.load(request)
} else {
printLog("url: 有问题")
}
}
// 添加wkwebview // 添加wkwebview
self.view.addSubview(webview) self.view.addSubview(webview)
......
...@@ -102,11 +102,26 @@ private extension YHStatusAdvantageVC { ...@@ -102,11 +102,26 @@ private extension YHStatusAdvantageVC {
} }
func reloadWebUrl() { func reloadWebUrl() {
let url = NSURL(string: url) // let url = NSURL(string: url)
// 创建请求 // // 创建请求
let request = NSURLRequest(url: url! as URL) // let request = NSURLRequest(url: url! as URL)
// 加载请求 // 加载请求
webview.load(request as URLRequest) // webview.load(request as URLRequest)
if let url = URL(string: url) {
let request = URLRequest(url: url)
webview.load(request)
} else {
let tmpUrl = YHURLEncodeHelper.urlEncodedString(url)
if let url = URL(string: tmpUrl) {
let request = URLRequest(url: url)
webview.load(request)
} else {
printLog("url: 有问题")
}
}
} }
func setupUI() { func setupUI() {
......
...@@ -26,6 +26,9 @@ class YHBannerModel: SmartCodable { ...@@ -26,6 +26,9 @@ class YHBannerModel: SmartCodable {
var is_share_h5_flag : Bool = false var is_share_h5_flag : Bool = false
var addtition_param : YHBannerAdditionModel? var addtition_param : YHBannerAdditionModel?
//是否为双11活动
var is_double_11_flag : Bool = false
required init() { required init() {
} }
......
...@@ -138,8 +138,15 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -138,8 +138,15 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
//建明的本机IP for test hjl //建明的本机IP for test hjl
//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 Steve本机IP //for test hjl 梁辉本机IP
// model.skip_url = "http://192.168.23.75:10300/superAppBridge.html#/double11-home"
//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 测试环境
// model.skip_url = "https://test-hkdiy-h5.galaxy-immi.com/superAppBridge.html#/double11-home"
var url = "" var url = ""
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token let token = YHLoginManager.shared.h5Token
...@@ -155,6 +162,9 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -155,6 +162,9 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
vc.url = url vc.url = url
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 {
......
...@@ -17,11 +17,14 @@ import Photos ...@@ -17,11 +17,14 @@ import Photos
class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
lazy var webview : DWKWebView = { lazy var webview : DWKWebView = {
let webview = DWKWebView(frame: .zero) let config = WKWebViewConfiguration()
config.applicationNameForUserAgent = "YinHeApp"
let webview = DWKWebView(frame: .zero, configuration: config)
webview.scrollView.contentInsetAdjustmentBehavior = .never webview.scrollView.contentInsetAdjustmentBehavior = .never
webview.navigationDelegate = self webview.navigationDelegate = self
webview.scrollView.delegate = self webview.scrollView.delegate = self
webview.setDebugMode(false) webview.setDebugMode(false)
return webview return webview
}() }()
...@@ -73,7 +76,6 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { ...@@ -73,7 +76,6 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
//分享到H5的情况 //分享到H5的情况
var shareH5Title : String = "20秒极速测分" var shareH5Title : String = "20秒极速测分"
var shareH5Describe : String = "您的朋友邀请您进行香港优才测评,来试试吧" var shareH5Describe : String = "您的朋友邀请您进行香港优才测评,来试试吧"
//外部传进来的分享链接 //外部传进来的分享链接
var shareUrlFromOutside : String? var shareUrlFromOutside : String?
...@@ -197,13 +199,6 @@ private extension YHH5WebViewVC { ...@@ -197,13 +199,6 @@ private extension YHH5WebViewVC {
gk_navBarAlpha = 1.0 gk_navBarAlpha = 1.0
} }
if isHideNavigationBar {
gk_navBarAlpha = 0.0
} else {
}
gk_navigationBar.isHidden = isHideNavigationBar
NotificationCenter.default.addObserver(self, selector: #selector(updateNetWorkUI), name: .reachabilityChanged, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(updateNetWorkUI), name: .reachabilityChanged, object: nil)
view.backgroundColor = .white view.backgroundColor = .white
...@@ -212,9 +207,19 @@ private extension YHH5WebViewVC { ...@@ -212,9 +207,19 @@ private extension YHH5WebViewVC {
api.delegate = self api.delegate = self
webview.addJavascriptObject(api, namespace: nil) webview.addJavascriptObject(api, namespace: nil)
let url = NSURL(string: url) if let url = URL(string: url) {
let request = NSURLRequest(url: url! as URL) let request = URLRequest(url: url)
webview.load(request as URLRequest) webview.load(request)
} else {
let tmpUrl = YHURLEncodeHelper.urlEncodedString(url)
if let url = URL(string: tmpUrl) {
let request = URLRequest(url: url)
webview.load(request)
} else {
printLog("url: 有问题")
}
}
view.addSubview(webview) view.addSubview(webview)
if isFullScreenFlag { if isFullScreenFlag {
...@@ -360,6 +365,14 @@ extension YHH5WebViewVC { ...@@ -360,6 +365,14 @@ extension YHH5WebViewVC {
// MARK: - h5实现的接口 // MARK: - h5实现的接口
extension YHH5WebViewVC { extension YHH5WebViewVC {
//H5调用 App的分享
func shareH5Syn(title : String ,desc : String ,url : String) {
shareUrlFromOutside = url
shareH5Title = title
shareH5Describe = desc
share()
}
//登录带token刷新 //登录带token刷新
func loginAndRefeshWithTokenSyn(_ tag : String) { func loginAndRefeshWithTokenSyn(_ tag : String) {
//判断登录状态 //判断登录状态
......
...@@ -18,6 +18,46 @@ class YHJsApi: NSObject { ...@@ -18,6 +18,46 @@ class YHJsApi: NSObject {
} }
extension YHJsApi { extension YHJsApi {
//17、 H5调用app的分享
@objc func shareH5Syn(_ dicData: String) {
DispatchQueue.main.async {
if let data = dicData.data(using: .utf8) {
do {
if let jsonObject = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
// 转换成功,jsonObject 是一个字典
print("JSON字符串转换为字典成功: \(jsonObject)")
/*
{
ShareH5Title : "分享标题"
ShareH5Describe : "分享描述"
ShareH5Url : "分享链接"
}
*/
if !jsonObject.isEmpty,jsonObject.keys.count == 3 {
let shareH5Title : String = jsonObject["ShareH5Title"] as? String ?? ""
let shareH5Describe : String = jsonObject["ShareH5Describe"] as? String ?? ""
let shareH5Url : String = jsonObject["ShareH5Url"] as? String ?? ""
if !shareH5Title.isEmpty,!shareH5Describe.isEmpty,!shareH5Url.isEmpty {
if let delegate = self.delegate as? YHH5WebViewVC {
delegate.shareH5Syn(title: shareH5Title, desc: shareH5Describe, url: shareH5Url)
}
} else {
printLog("参数不合法...")
}
} else {
printLog("ddddd")
}
} else {
printLog("JSON字符串不是有效的字典格式")
}
} catch {
printLog("JSON解析错误: \(error)")
}
}
}
}
//16、招行聚合支付 //16、招行聚合支付
@objc func cmbPaySyn(_ payUrl : String) { @objc func cmbPaySyn(_ payUrl : String) {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
// //
import UIKit import UIKit
import WebKit @preconcurrency import WebKit
class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationDelegate { class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
...@@ -29,12 +29,26 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD ...@@ -29,12 +29,26 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
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 url = NSURL(string: url)
// 创建请求 // // 创建请求
let request = NSURLRequest(url: url! as URL) // let request = NSURLRequest(url: url! as URL)
// 加载请求 // // 加载请求
webview.load(request as URLRequest) // webview.load(request as URLRequest)
if let url = URL(string: url) {
let request = URLRequest(url: url)
webview.load(request)
} else {
let tmpUrl = YHURLEncodeHelper.urlEncodedString(url)
if let url = URL(string: tmpUrl) {
let request = URLRequest(url: url)
webview.load(request)
} else {
printLog("url: 有问题")
}
}
// 添加wkwebview // 添加wkwebview
self.view.addSubview(webview) self.view.addSubview(webview)
......
...@@ -407,25 +407,16 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -407,25 +407,16 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
case .aboutUs: case .aboutUs:
let vc = YHAboutGalaxyViewController() let vc = YHAboutGalaxyViewController()
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
// let vc = YHH5WebViewVC()
// vc.url = "https://beta-sign.galaxy-immi.com/webPayConfirm?id=Qk9sbUlzenp0OGFOdVZ4ekphQXJGWnJ0ODdBS3gxdWNJcURrOHBLbm4xND0%3D"//正式环境
//// vc.url = "https://test-sign.galaxy-immi.com/webPayConfirm?id=dXlHS3RRQUV4QmZ2KzRwM0phRTVyMXdWUnVjUjJvRHdmQmNWVDV0UW1Zbz0="//测试环境
// vc.isFullScreenFlag = false
// vc.isSupportWebviewInterBackFlag = true
// UIViewController.current?.navigationController?.pushViewController(vc)//for test hjl
case .myOrder: case .myOrder:
//我的订单 //我的订单
if let token = YHLoginManager.shared.userModel?.token,token.count > 5 { if let token = YHLoginManager.shared.userModel?.token,token.count > 5 {
var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/tohkList" var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/order/my"
// url = "&param=" + YHLoginManager.shared.h5Token url = "?param=" + YHLoginManager.shared.h5Token
url = "https://www.baidu.com"
printLog("URL: \(url)") printLog("URL: \(url)")
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
vc.url = url vc.url = url
vc.isFullScreenFlag = false vc.isFullScreenFlag = false
vc.navTitle = "我的订单" vc.navTitle = "我的订单"
vc.navTitle = "需要替换URL"//for test hjl
vc.isSupportWebviewInterBackFlag = true vc.isSupportWebviewInterBackFlag = true
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
......
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