Commit c9282a0a297256e960bb4c0c9a6d3dda01983bc2

Authored by “张旭”
1 parent def2d4db

h5交互跳转微信小程序

getpage.getBlockContents支持跳转微信小程序
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideDetailViewController.swift
... ... @@ -300,18 +300,7 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou
300 300 }
301 301 }
302 302 }else{
303   - //视频跳转播放页;课程跳转h5
304   - if albumModel.model == kCNDownSlideContentsModelModelAlbum_ugc{
305   - //视频
306   - //短剧-跳转短剧播放页
307   - navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: albumModel.contentId), animated: pushAnimated)
308   -
309   - }else if albumModel.model == "1" || albumModel.model == "2" || albumModel.model == "3" || albumModel.model == "4"{
310   - //课程
311   - CNLiveDownSlideTool.pushWebVCWithCNLiveAlbumMdl(albumModel: albumModel,controller: self)
312   - }else{
313   -
314   - }
  303 + CNLiveDownSlideTool.pushWebVCWithCNLiveAlbumMdl(albumModel: albumModel,controller: self)
315 304 }
316 305 }
317 306  
... ...
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebView.swift
... ... @@ -106,6 +106,20 @@ class CNWebView:UIView,WKNavigationDelegate{
106 106 currentViewController()?.present(browser, animated: true)
107 107  
108 108 })
  109 +
  110 + //h5拉起原生 跳转微信小程序
  111 + self.bridge?.registerHandler("wjjH5TurntoServices", handler: { data, responseCallback in
  112 +// print("js call oc\(data)")
  113 + let dic = data as! Dictionary<String, Any>
  114 + let type = dic["type"] as! String
  115 + if type == "103"{
  116 + //跳转微信小程序
  117 + let toDic = dic["to"] as! Dictionary<String, Any>
  118 + let miniAppId = toDic["id"] as! String
  119 + let miniPath = toDic["path"] as! String
  120 + CNLiveShareImageManager.pushWeChatMiniProgrem(withMiniAppId: miniAppId, path: miniPath, extMsg: "", extDic: [:])
  121 + }
  122 + })
109 123 }
110 124  
111 125 required init?(coder: NSCoder) {
... ...
metaCode/Classes/Main/HomePages/Model/CNLiveAlbumModel.swift
... ... @@ -42,6 +42,12 @@ class CNLiveAlbumModel:BaseModel{
42 42 var shareUrl = ""
43 43 var spIcon = ""
44 44 var product:CNLiveAlbumProductModel?
  45 + ///小程序地址和小程序id {"path":"page/login_hint/login_hint","id":"gh_234d4ed615a3"}
  46 + var s_to: String?
  47 + ///103时为微信小程序
  48 + var s_type: String?
  49 + ///"weixin://dl/business/?t=NnvptiuER3k"
  50 + var s_showType: String?
45 51 //还有部分属性没写
46 52 }
47 53 class CNLiveAlbumProductModel:BaseModel{
... ...
metaCode/Classes/Main/HomePages/View/HomepageDetail/CNLiveAlbumCell.swift
... ... @@ -111,6 +111,9 @@ class CNLiveAlbumCell:UITableViewCell{
111 111 //短剧-跳转短剧播放页
112 112 self.cellType = .playlet
113 113 self.playBtn.setTitle("播放", for: .normal)
  114 + }else if model.model == kCNDownSlideContentsModelModelServing{
  115 + self.cellType = .course
  116 + self.playBtn.setTitle("进入", for: .normal)
114 117 }
115 118 self.titleLabl.text = model.title
116 119 self.subTitleLabel.text = model.subTitle
... ...
metaCode/Classes/Main/Model/CNLiveDownSlideModel.swift
... ... @@ -35,6 +35,8 @@ let kCNDownSlideContentsModelModel4: String = &quot;4&quot;
35 35 let kCNDownSlideContentsModelModelAlbum: String = "album"
36 36 let kCNDownSlideContentsModelModelAlbum_video: String = "album_video"
37 37 let kCNDownSlideContentsModelModelAlbum_ugc: String = "album_ugc"
  38 +let kCNDownSlideContentsModelModelServing: String = "serving"//微信小程序
  39 +
38 40  
39 41 class CNLiveDownSlideContentsModel: BaseModel {
40 42 ///内容id
... ... @@ -57,4 +59,10 @@ class CNLiveDownSlideContentsModel: BaseModel {
57 59 var shareUrl: String?
58 60 ///model为3,4时跳转url
59 61 var thirdUrl: String?
  62 + ///小程序地址和小程序id {"path":"page/login_hint/login_hint","id":"gh_234d4ed615a3"}
  63 + var s_to: String?
  64 + ///103时为微信小程序
  65 + var s_type: String?
  66 + ///"weixin://dl/business/?t=NnvptiuER3k"
  67 + var s_showType: String?
60 68 }
... ...
metaCode/Classes/Main/Util/CNLiveDownSlideTool.swift
... ... @@ -6,6 +6,7 @@
6 6 // 跳转
7 7  
8 8 import Foundation
  9 +import CNLiveShareToolKit
9 10  
10 11 class CNLiveDownSlideTool:NSObject{
11 12 class func pushWebVCWithContentsMdl(contentMdl:CNLiveDownSlideContentsModel){
... ... @@ -39,6 +40,21 @@ class CNLiveDownSlideTool:NSObject{
39 40  
40 41 //短剧-跳转短剧播放页
41 42 navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: contentMdl.contentId ?? ""), animated: pushAnimated)
  43 + }else if contentMdl.model == kCNDownSlideContentsModelModelServing{
  44 + //跳转微信小程序
  45 + if let data = (contentMdl.s_to ?? "").data(using: .utf8) {
  46 + do {
  47 + let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
  48 + let miniAppId = jsonResult!["id"] as! String
  49 + let miniPath = jsonResult!["path"] as! String
  50 + CNLiveShareImageManager.pushWeChatMiniProgrem(withMiniAppId: miniAppId, path: miniPath, extMsg: "", extDic: [:])
  51 +
  52 + } catch {
  53 + print("JSON 解析错误")
  54 + }
  55 + } else {
  56 + print("无法将字符串转换为数据")
  57 + }
42 58 }else{
43 59 return
44 60 }
... ... @@ -74,6 +90,21 @@ class CNLiveDownSlideTool:NSObject{
74 90 //短剧-跳转短剧播放页
75 91 navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: albumModel.contentId), animated: pushAnimated)
76 92  
  93 + }else if albumModel.model == kCNDownSlideContentsModelModelServing{
  94 + //跳转微信小程序
  95 + if let data = (albumModel.s_to ?? "").data(using: .utf8) {
  96 + do {
  97 + let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
  98 + let miniAppId = jsonResult!["id"] as! String
  99 + let miniPath = jsonResult!["path"] as! String
  100 + CNLiveShareImageManager.pushWeChatMiniProgrem(withMiniAppId: miniAppId, path: miniPath, extMsg: "", extDic: [:])
  101 +
  102 + } catch {
  103 + print("JSON 解析错误")
  104 + }
  105 + } else {
  106 + print("无法将字符串转换为数据")
  107 + }
77 108 }else{
78 109 return
79 110 }
... ... @@ -110,6 +141,21 @@ class CNLiveDownSlideTool:NSObject{
110 141 }else if (contentMdl.model == kCNDownSlideContentsModelModelAlbum_ugc){
111 142 //短剧-跳转短剧播放页
112 143 navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: contentMdl.contentId!), animated: pushAnimated)
  144 + }else if contentMdl.model == kCNDownSlideContentsModelModelServing{
  145 + //跳转微信小程序
  146 + if let data = (contentMdl.s_to ?? "").data(using: .utf8) {
  147 + do {
  148 + let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
  149 + let miniAppId = jsonResult!["id"] as! String
  150 + let miniPath = jsonResult!["path"] as! String
  151 + CNLiveShareImageManager.pushWeChatMiniProgrem(withMiniAppId: miniAppId, path: miniPath, extMsg: "", extDic: [:])
  152 +
  153 + } catch {
  154 + print("JSON 解析错误")
  155 + }
  156 + } else {
  157 + print("无法将字符串转换为数据")
  158 + }
113 159 }else{
114 160 return
115 161 }
... ...