Commit 4dee6c1df63af36b8d336d8dc4c10a123913304a
1 parent
a538f4ed
no message
Showing
2 changed files
with
88 additions
and
1 deletions
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebView.swift
| ... | ... | @@ -20,6 +20,9 @@ typealias cnWebControllerBackNavBlock = ()->Void |
| 20 | 20 | |
| 21 | 21 | //更新Web控制器导航回调 |
| 22 | 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 | 27 | //更新Web控制器 currentUrl |
| 25 | 28 | typealias cnWebControllerUpdateCurrentUrlBlock = (_ currentUrl:String)->Void |
| ... | ... | @@ -51,6 +54,9 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ |
| 51 | 54 | var webControllerBackNavBlock:cnWebControllerBackNavBlock?//back返回 |
| 52 | 55 | |
| 53 | 56 | var webControllerUpdateNavBlock:cnWebControllerUpdateNavBlock?//刷新 |
| 57 | + var webControllerUpdateNavSoundBlock:cnWebControllerUpdateNavSoundBlock?//是否显示自动播放开关 | |
| 58 | + var webControllerUpdateNavEditBlock:cnWebControllerUpdateNavEditBlock?// 是否显示编辑 | |
| 59 | + | |
| 54 | 60 | var webControllerUpdateCurrentUrlBlock:cnWebControllerUpdateCurrentUrlBlock? |
| 55 | 61 | |
| 56 | 62 | required init?(coder: NSCoder) { |
| ... | ... | @@ -361,6 +367,21 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ |
| 361 | 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 | 387 | // MARK: - 检查url |
| ... | ... | @@ -494,7 +515,14 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ |
| 494 | 515 | print("decidePolicyFornavigationAction") |
| 495 | 516 | |
| 496 | 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 | 526 | if navigationAction.request.url?.host == WjjH5 { |
| 499 | 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 | 47 | moreNavBtn.addTarget(self, action: #selector(moreNavBtnAction), for: .touchUpInside) |
| 48 | 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 | 67 | var _url:URL? |
| 52 | 68 | var url:URL? { |
| ... | ... | @@ -75,6 +91,21 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ |
| 75 | 91 | super.viewDidLoad() |
| 76 | 92 | navigationBarHidden = false |
| 77 | 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 | 109 | self.webView.webControllerUpdateNavBlock = { [weak self] isFinish , title,isDecidePolicy ,urlStr in |
| 79 | 110 | if isFinish{ |
| 80 | 111 | self!.titleName = title |
| ... | ... | @@ -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 | 199 | // MARK: - 内部链接右上角···分享 |
| 141 | 200 | @objc func moreNavBtnAction(){ |
| 142 | 201 | self.configBridgeCallHander() | ... | ... |