Commit 4dee6c1df63af36b8d336d8dc4c10a123913304a

Authored by “张旭”
1 parent a538f4ed

no message

metaCode/Classes/Main/HomePage/Controller/WebController/CNWebView.swift
@@ -20,6 +20,9 @@ typealias cnWebControllerBackNavBlock = ()->Void @@ -20,6 +20,9 @@ typealias cnWebControllerBackNavBlock = ()->Void
20 20
21 //更新Web控制器导航回调 21 //更新Web控制器导航回调
22 typealias cnWebControllerUpdateNavBlock = (_ isFinish:Bool , _ titleName:String ,_ isDecidePolicy:Bool , _ urlStr:String)->Void 22 typealias cnWebControllerUpdateNavBlock = (_ isFinish:Bool , _ titleName:String ,_ isDecidePolicy:Bool , _ urlStr:String)->Void
  23 +typealias cnWebControllerUpdateNavSoundBlock = (_ isShowSound:Bool )->Void
  24 +typealias cnWebControllerUpdateNavEditBlock = (_ isShowEdit:Bool)->Void
  25 +
23 26
24 //更新Web控制器 currentUrl 27 //更新Web控制器 currentUrl
25 typealias cnWebControllerUpdateCurrentUrlBlock = (_ currentUrl:String)->Void 28 typealias cnWebControllerUpdateCurrentUrlBlock = (_ currentUrl:String)->Void
@@ -51,6 +54,9 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ @@ -51,6 +54,9 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{
51 var webControllerBackNavBlock:cnWebControllerBackNavBlock?//back返回 54 var webControllerBackNavBlock:cnWebControllerBackNavBlock?//back返回
52 55
53 var webControllerUpdateNavBlock:cnWebControllerUpdateNavBlock?//刷新 56 var webControllerUpdateNavBlock:cnWebControllerUpdateNavBlock?//刷新
  57 + var webControllerUpdateNavSoundBlock:cnWebControllerUpdateNavSoundBlock?//是否显示自动播放开关
  58 + var webControllerUpdateNavEditBlock:cnWebControllerUpdateNavEditBlock?// 是否显示编辑
  59 +
54 var webControllerUpdateCurrentUrlBlock:cnWebControllerUpdateCurrentUrlBlock? 60 var webControllerUpdateCurrentUrlBlock:cnWebControllerUpdateCurrentUrlBlock?
55 61
56 required init?(coder: NSCoder) { 62 required init?(coder: NSCoder) {
@@ -361,6 +367,21 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ @@ -361,6 +367,21 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{
361 }.resume() 367 }.resume()
362 } 368 }
363 }) 369 })
  370 +
  371 + //h5拉起原生 AI右上角是否显示编辑按钮
  372 + self.bridge?.registerHandler("ymAiShowEditRoleBtn", handler: { data, responseCallback in
  373 + print("js call oc\(data)")
  374 + self.webControllerUpdateNavEditBlock?(true)
  375 + //显示编辑按钮
  376 +
  377 + })
  378 + //h5拉起原生 获取自动播放状态
  379 + self.bridge?.registerHandler("ymAiGetAutoPlayAudioState", handler: { data, responseCallback in
  380 + print("js call oc\(data)")
  381 +
  382 +
  383 +
  384 + })
364 } 385 }
365 386
366 // MARK: - 检查url 387 // MARK: - 检查url
@@ -494,7 +515,14 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ @@ -494,7 +515,14 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{
494 print("decidePolicyFornavigationAction") 515 print("decidePolicyFornavigationAction")
495 516
496 var urlStr = (navigationAction.request.url?.absoluteString)! 517 var urlStr = (navigationAction.request.url?.absoluteString)!
497 - 518 + if (navigationAction.request.url?.absoluteString.contains("/pages/index/index")) == true{
  519 + //ai是否显示自动播放开关
  520 + print("显示")
  521 + self.webControllerUpdateNavSoundBlock?(true)
  522 + }else{
  523 + print("不显示")
  524 + self.webControllerUpdateNavSoundBlock?(false)
  525 + }
498 if navigationAction.request.url?.host == WjjH5 { 526 if navigationAction.request.url?.host == WjjH5 {
499 self.webControllerUpdateNavBlock?(false, "", true , urlStr) 527 self.webControllerUpdateNavBlock?(false, "", true , urlStr)
500 528
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebViewController.swift
@@ -47,6 +47,22 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -47,6 +47,22 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
47 moreNavBtn.addTarget(self, action: #selector(moreNavBtnAction), for: .touchUpInside) 47 moreNavBtn.addTarget(self, action: #selector(moreNavBtnAction), for: .touchUpInside)
48 return moreNavBtn 48 return moreNavBtn
49 }() 49 }()
  50 + lazy var aiEditNavBtn: UIButton = {
  51 + let moreNavBtn = UIButton(type: .custom)
  52 + moreNavBtn.frame = CGRect(x: 0, y: KStatusBarHeight, width: (KNavigationHeight-KStatusBarHeight)*0.5, height: KNavigationHeight-KStatusBarHeight)
  53 + moreNavBtn.backgroundColor = .red
  54 + moreNavBtn.setImage(UIImage(named: "web_more"), for: .normal)
  55 + moreNavBtn.addTarget(self, action: #selector(ymAiEditRoleBtnAction), for: .touchUpInside)
  56 + return moreNavBtn
  57 + }()
  58 + lazy var aiSoundNavBtn: UIButton = {
  59 + let moreNavBtn = UIButton(type: .custom)
  60 + moreNavBtn.frame = CGRect(x: (KNavigationHeight-KStatusBarHeight)*0.5, y: KStatusBarHeight, width: (KNavigationHeight-KStatusBarHeight)*0.5, height: KNavigationHeight-KStatusBarHeight)
  61 + moreNavBtn.backgroundColor = .yellow
  62 + moreNavBtn.setImage(UIImage(named: "web_more"), for: .normal)
  63 + moreNavBtn.addTarget(self, action: #selector(aiSoundNavBtnAction), for: .touchUpInside)
  64 + return moreNavBtn
  65 + }()
50 66
51 var _url:URL? 67 var _url:URL?
52 var url:URL? { 68 var url:URL? {
@@ -75,6 +91,21 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -75,6 +91,21 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
75 super.viewDidLoad() 91 super.viewDidLoad()
76 navigationBarHidden = false 92 navigationBarHidden = false
77 self.view.addSubview(self.webView) 93 self.view.addSubview(self.webView)
  94 +
  95 + self.webView.webControllerUpdateNavSoundBlock = { isSound in
  96 + if isSound{
  97 + self.rightNavBtns = [self.aiSoundNavBtn]
  98 + }else{
  99 +
  100 + }
  101 + }
  102 + self.webView.webControllerUpdateNavEditBlock = { isEdit in
  103 + if isEdit{
  104 + self.rightNavBtns = [self.aiEditNavBtn,self.aiSoundNavBtn]
  105 + }else{
  106 +
  107 + }
  108 + }
78 self.webView.webControllerUpdateNavBlock = { [weak self] isFinish , title,isDecidePolicy ,urlStr in 109 self.webView.webControllerUpdateNavBlock = { [weak self] isFinish , title,isDecidePolicy ,urlStr in
79 if isFinish{ 110 if isFinish{
80 self!.titleName = title 111 self!.titleName = title
@@ -136,7 +167,35 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -136,7 +167,35 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
136 } 167 }
137 }) 168 })
138 } 169 }
  170 +
  171 + //点击...编辑获取h5参数oc call js
  172 + func ymAiEditRoleCallHander() -> Void {
  173 + self.webView.bridge?.callHandler("ymAiEditRole", data: nil, responseCallback: { data in
  174 + print("js call oc\(data)")
  175 + if let dic = data as? Dictionary<String, String>{
  176 + if let state = dic["state"] as? String{
  177 + UserDefaults.standard.setValue(state, forKey: "ymAiEditRole")
  178 + UserDefaults.standard.synchronize()
  179 + }
  180 +
  181 + }
139 182
  183 + })
  184 + }
  185 + //点击声音btn获取h5参数oc call js
  186 + func aiSoundCallHander() -> Void {
  187 + self.webView.bridge?.callHandler("ymAiChangeAutoPlayAudioState", data: ["state":"true"], responseCallback: { data in
  188 + print("js call oc\(data)")
  189 +
  190 + })
  191 + }
  192 + @objc func ymAiEditRoleBtnAction(){
  193 + self.ymAiEditRoleCallHander()
  194 + }
  195 + @objc func aiSoundNavBtnAction(){
  196 + self.aiSoundCallHander()
  197 + }
  198 +
140 // MARK: - 内部链接右上角···分享 199 // MARK: - 内部链接右上角···分享
141 @objc func moreNavBtnAction(){ 200 @objc func moreNavBtnAction(){
142 self.configBridgeCallHander() 201 self.configBridgeCallHander()