123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //
- // WebViewJavascriptBridgeManager.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/6/21.
- // Copyright © 2019 RainbowPlanet. All rights reserved.
- //
- import UIKit
- import WebViewJavascriptBridge
- import SwiftyJSON
- import SwiftyMediator
- class WebViewJavascriptBridgeManager: NSObject {
-
- typealias CallDataClosure = (_ wbjbModel: WVJBModel) -> Void
-
- static let shared : WebViewJavascriptBridgeManager = WebViewJavascriptBridgeManager()
-
- /// 返回用户信息
- ///
- /// - Parameter bridge: 交互对象
- func callHandlerH5(bridge: WebViewJavascriptBridge?) {
- bridge?.callHandler("h5", data: UserModel.shared().getH5UserInfo())
- }
-
-
- /// 注册回调
- ///
- /// - Parameters:
- /// - bridge: 交互对象
- /// - callDataClosure: 回调
- func registerHandlerApp(bridge: WebViewJavascriptBridge?,callDataClosure:@escaping CallDataClosure) {
- bridge?.registerHandler("app", handler: { data, responseCallback in
- if let data = data {
- let jsonData = JSON(data)
- let wbjbModel = WVJBModel(JSONString: jsonData.description)
- callDataClosure(wbjbModel ?? WVJBModel())
- }
- responseCallback!(nil)
- })
- }
-
- func jump(wvjbModel:WVJBModel?,viewController:UIViewController? = nil) {
- // 链接
- if wvjbModel?.modelType == .link {
- Mediator.push(H5RouterModuleType.pushWeb(URLString: wvjbModel!.params!.url!))
- }
- // 邀请
- if wvjbModel?.modelType == .share {
- if wvjbModel?.params?.paramsModelType == .invite {
- ShareCommunityView.inviteGoodFriends()
- }
- }
- // 复制邀请码
- if wvjbModel?.modelType == .copy {
- commonCopy(string: wvjbModel!.params!.content!)
- }
-
- // 跳转原生
- if wvjbModel?.modelType == .follow {
- let followStatusModel = FollowStatusModel()
- followStatusModel.uid = wvjbModel!.params?.uid ?? 0
- followStatusModel.isFollowStatus = wvjbModel!.params?.status ?? 0
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "followApi"), object: followStatusModel, userInfo: ["isPlanet":true])
- }
-
- // 跳转预览图
- if wvjbModel?.modelType == .preview {
- if !(wvjbModel!.params?.list?.isEmpty ?? true) {
- Mediator.push(BrowsePictureRouterModuleType.pushBrowsePictureImageStrs(imageStrs: (wvjbModel!.params?.list)!, index: wvjbModel!.params?.current ?? 0))
- }
- }
-
- // 返回
- if wvjbModel?.modelType == .back {
- viewController?.navigationController?.popViewController(animated: true)
- }
-
- // 刷新U米
- if wvjbModel?.modelType == .bean {
- UserMemberTotalBeanViewModel.shared.userMemberGetTotalBeanApi()
- }
-
- // 跳转原生
- if wvjbModel?.modelType == .view {
- // 发布
- if wvjbModel?.params?.paramsModelPage == .publist {
- let pickVc = PublishViewController()
- let nav = BaseNavigationViewController.init(rootViewController: pickVc)
- BaseTabbarViewController.shared.esTabBarController.present(nav, animated: true, completion: nil)
- }
- // 推荐
- if wvjbModel?.params?.paramsModelPage == .join {
- BaseTabbarViewController.shared.esTabBarController.selectedIndex = 0
- BaseTabbarViewController.shared.v1.reloadSegmentedView()
- if viewController != nil {
- viewController?.navigationController?.popToRootViewController(animated: true)
- }
- }
- // 兑换商城
- if wvjbModel?.params?.paramsModelPage == .exchange {
- BaseTabbarViewController.shared.esTabBarController.selectedIndex = 1
- if viewController != nil {
- viewController?.navigationController?.popToRootViewController(animated: true)
- }
- }
- // 去星球
- if wvjbModel?.params?.paramsModelPage == .planet {
- BaseTabbarViewController.shared.esTabBarController.selectedIndex = 0
- BaseTabbarViewController.shared.v1.reloadSegmentedStarView()
- if viewController != nil {
- viewController?.navigationController?.popToRootViewController(animated: true)
- }
- }
-
- // 去登陆
- if wvjbModel?.params?.paramsModelPage == .signin {
- Mediator.present(RegisterLoginRouterModuleType.presentRegisterLogin)
- }
-
- // 去个人中心
- if wvjbModel?.params?.paramsModelPage == .user {
- if wvjbModel?.params?.payload?.uid != nil {
- Mediator.present(MineRouterModuleType.pushOtherPersonalCenter(uid: wvjbModel?.params?.payload?.uid ?? 0))
- }
- }
-
- // 账户(绑定微信/绑定QQ)
- if wvjbModel?.params?.paramsModelPage == .account {
- Mediator.present(MineRouterModuleType.pushAccountSecurity)
- }
-
- }
-
- }
- }
|