Przeglądaj źródła

设置公开方法

jsonwang 3 lat temu
rodzic
commit
bcc7b47679

BIN
BFFramework/Assets/Stuckpoint/icon_blanc_back@2x.png


BIN
BFFramework/Assets/Stuckpoint/icon_blanc_back@3x.png


+ 12 - 12
BFFramework/Classes/Base/Controller/PQBaseViewController.swift

@@ -12,20 +12,20 @@ import UIKit
 import NXFramework_Swift
 public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate {
     // 侧滑拦截返回
-    var popGestureHandle: (() -> Void)?
-    var naviTitle: String? // 标题
-    var rightButton: UIButton? // 右边按钮
-    var backButton: UIButton? // 左边按钮
-    var navTitleLabel: UILabel? // 标题
-    var navHeadImageView: UIImageView? // 导航条
-    var lineView: UIView? // 导航分隔线
-    var isHiddenStatus: Bool = false { // 更新状态栏
+    public var popGestureHandle: (() -> Void)?
+    public var naviTitle: String? // 标题
+    public var rightButton: UIButton? // 右边按钮
+    public var backButton: UIButton? // 左边按钮
+    public var navTitleLabel: UILabel? // 标题
+    public var navHeadImageView: UIImageView? // 导航条
+    public var lineView: UIView? // 导航分隔线
+    public var isHiddenStatus: Bool = false { // 更新状态栏
         didSet {
             setNeedsStatusBarAppearanceUpdate()
         }
     }
 
-    lazy var manager: NetworkReachabilityManager? = {
+    lazy public var manager: NetworkReachabilityManager? = {
         let manager = NetworkReachabilityManager(host: "www.baidu.com")
         manager?.listener = { status in
             if status == .reachable(.wwan) || status == .reachable(.ethernetOrWiFi) {
@@ -35,7 +35,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         return manager
     }()
 
-    public override func viewDidLoad() {
+     override public func viewDidLoad() {
         super.viewDidLoad()
         navigationController?.isNavigationBarHidden = true
         view.backgroundColor = UIColor.black
@@ -55,7 +55,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         fd_prefersNavigationBarHidden = true
     }
 
-    func hiddenNavigation() {
+    public func hiddenNavigation() {
         navHeadImageView?.isHidden = true
         lineView?.isHidden = true
     }
@@ -68,7 +68,7 @@ public class PQBaseViewController: UIViewController, UIGestureRecognizerDelegate
         }
     }
 
-    func leftBackButton() {
+    public func leftBackButton() {
         leftButton(image: "icon_detail_back")
     }
 

+ 14 - 14
BFFramework/Classes/Base/Controller/PQBaseWebViewController.swift

@@ -10,7 +10,7 @@
 import UIKit
 import WebKit
 
-class PQBaseWebViewController: PQBaseViewController {
+public class PQBaseWebViewController: PQBaseViewController {
     var emptyData: PQEmptyModel? = {
         let emptyData = PQEmptyModel()
         emptyData.title = "网页加载失败,请重试~"
@@ -39,7 +39,7 @@ class PQBaseWebViewController: PQBaseViewController {
         return progresslayer
     }()
 
-    @objc var baseUrl: String? {
+    @objc public var baseUrl: String? {
         didSet {
             if baseUrl != nil, baseUrl?.count ?? 0 > 0 {
                 webView.load(URLRequest(url: NSURL(string: baseUrl ?? "")! as URL, cachePolicy: .reloadIgnoringCacheData))
@@ -56,7 +56,7 @@ class PQBaseWebViewController: PQBaseViewController {
 
     var isAddObserve: Bool = false
 
-    override func viewDidLoad() {
+   open override func viewDidLoad() {
         super.viewDidLoad()
         // Do any additional setup after loading the view.
         view.addSubview(webView)
@@ -64,14 +64,14 @@ class PQBaseWebViewController: PQBaseViewController {
         navHeadImageView?.backgroundColor = UIColor.white
     }
 
-    override func viewWillAppear(_ animated: Bool) {
+    public override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
         if (UIApplication.shared.keyWindow?.viewWithTag(cProtocalViewTag)) != nil {
             (UIApplication.shared.keyWindow?.viewWithTag(cProtocalViewTag))?.isHidden = true
         }
     }
 
-    override func viewWillDisappear(_ animated: Bool) {
+    public override func viewWillDisappear(_ animated: Bool) {
         super.viewWillDisappear(animated)
         if (UIApplication.shared.keyWindow?.viewWithTag(cProtocalViewTag)) != nil {
             (UIApplication.shared.keyWindow?.viewWithTag(cProtocalViewTag))?.isHidden = false
@@ -102,7 +102,7 @@ extension PQBaseWebViewController: WKNavigationDelegate {
         }
     }
 
-    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+    public override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
         if keyPath == "estimatedProgress" {
             progresslayer.opacity = 1
             let float = (change?[NSKeyValueChangeKey.newKey] as! NSNumber).floatValue
@@ -121,7 +121,7 @@ extension PQBaseWebViewController: WKNavigationDelegate {
         }
     }
 
-    func webView(_ webView: WKWebView, didFinish _: WKNavigation!) {
+    public func webView(_ webView: WKWebView, didFinish _: WKNavigation!) {
         if baseTitle == nil || baseTitle?.count ?? 0 <= 0 {
             webView.evaluateJavaScript("document.title") { [weak self] (any, _) -> Void in
                 self?.setTitle(title: any as? String)
@@ -135,7 +135,7 @@ extension PQBaseWebViewController: WKNavigationDelegate {
      
     }
 
-    func webView(_ webView: WKWebView, didFail _: WKNavigation!, withError error: Error) {
+    public func webView(_ webView: WKWebView, didFail _: WKNavigation!, withError error: Error) {
         BFLog(message: error)
         if baseTitle == nil || baseTitle?.count ?? 0 <= 0 {
             webView.evaluateJavaScript("document.title") { [weak self] (any, _) -> Void in
@@ -146,24 +146,24 @@ extension PQBaseWebViewController: WKNavigationDelegate {
      
     }
 
-    func webView(_: WKWebView, didFailProvisionalNavigation _: WKNavigation!, withError _: Error) {
+    public func webView(_: WKWebView, didFailProvisionalNavigation _: WKNavigation!, withError _: Error) {
    
     }
 
-    func webView(_: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
+    public func webView(_: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
         BFLog(message: "navigationResponse:\(String(describing: navigationResponse))")
         decisionHandler(.allow)
     }
 
-    func webView(_: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
+    public func webView(_: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
         BFLog(message: "didStartProvisionalNavigation:\(String(describing: navigation))")
     }
 
-    func webView(_: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
+    public func webView(_: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
         BFLog(message: "didReceiveServerRedirectForProvisionalNavigation:\(String(describing: navigation))")
     }
 
-    func webView(_: WKWebView, didCommit navigation: WKNavigation!) {
+    public func webView(_: WKWebView, didCommit navigation: WKNavigation!) {
         BFLog(message: "\(String(describing: navigation))")
     }
 
@@ -179,7 +179,7 @@ extension PQBaseWebViewController: WKNavigationDelegate {
 //        BFLog(message: "decidePolicyFor \(String(describing: navigationAction))")
 //        decisionHandler(.allow)
 //    }
-    override var preferredStatusBarStyle: UIStatusBarStyle {
+    public override var preferredStatusBarStyle: UIStatusBarStyle {
         if #available(iOS 13.0, *) {
             return .darkContent
         } else {

+ 14 - 14
BFFramework/Classes/Base/View/PQLoadingHUB.swift

@@ -8,14 +8,14 @@
 
 import UIKit
 
-class PQLoadingHUBView: UIView {
-    lazy var loadingImage: UIImageView = {
+public class PQLoadingHUBView: UIView {
+    lazy public var loadingImage: UIImageView = {
         let loadingImage = UIImageView()
         loadingImage.kf.setImage(with: URL(fileURLWithPath: Bundle.init().BF_mainbundle().path(forResource: "loading_pq", ofType: ".gif")!))
         return loadingImage
     }()
 
-    override init(frame: CGRect) {
+    public override init(frame: CGRect) {
         super.init(frame: frame)
         addSubview(loadingImage)
         isUserInteractionEnabled = false
@@ -25,7 +25,7 @@ class PQLoadingHUBView: UIView {
         fatalError("init(coder:) has not been implemented")
     }
 
-    override func layoutSubviews() {
+    public override func layoutSubviews() {
         super.layoutSubviews()
         // 334 * 307
         let imageW: CGFloat = 67
@@ -34,12 +34,12 @@ class PQLoadingHUBView: UIView {
     }
 }
 
-class PQLoadingHUB: NSObject {
-    static let shared = PQLoadingHUB()
-    let viewTag = 11111
-    var isLoading: Bool = false
+public class PQLoadingHUB: NSObject {
+    static public let shared = PQLoadingHUB()
+    public let viewTag = 11111
+    public var isLoading: Bool = false
 
-    func showHUB() {
+    public func showHUB() {
         DispatchQueue.main.async { [weak self] in
             let window = UIApplication.shared.keyWindow
             if (window?.viewWithTag(self!.viewTag)) == nil {
@@ -52,7 +52,7 @@ class PQLoadingHUB: NSObject {
         }
     }
 
-    func dismissHUB() {
+    public func dismissHUB() {
         DispatchQueue.main.async { [weak self] in
             let window = UIApplication.shared.keyWindow
             if (window?.viewWithTag(self!.viewTag)) != nil {
@@ -62,7 +62,7 @@ class PQLoadingHUB: NSObject {
         }
     }
 
-    func showHUB(superView: UIView, isVerticality: Bool = false) {
+    public func showHUB(superView: UIView, isVerticality: Bool = false) {
         DispatchQueue.main.async { [weak self] in
             if superView.viewWithTag(self!.viewTag) == nil {
                 let hubW: CGFloat = 100
@@ -78,7 +78,7 @@ class PQLoadingHUB: NSObject {
         }
     }
 
-    func dismissHUB(superView: UIView) {
+    public func dismissHUB(superView: UIView) {
         DispatchQueue.main.async { [weak self] in
             if superView.viewWithTag(self!.viewTag) != nil {
                 superView.viewWithTag(self!.viewTag)?.removeFromSuperview()
@@ -91,11 +91,11 @@ class PQLoadingHUB: NSObject {
         super.init()
     }
 
-    override func copy() -> Any {
+    public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }

+ 2 - 2
BFFramework/Classes/Base/ViewModel/PQBaseViewModel.swift

@@ -11,7 +11,7 @@ import UIKit
 import ObjectMapper
 import RealmSwift
 
-class PQBaseViewModel: NSObject {
+public class PQBaseViewModel: NSObject {
     
     typealias completeHander = (_ userInfo: [String: Any]?, _ msg: String?) -> Void
     
@@ -56,7 +56,7 @@ class PQBaseViewModel: NSObject {
     /// 请求系统配置
     /// - Parameter completeHander: <#completeHander description#>
     /// - Returns: <#description#>
-    class func systemConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
+  public  class func systemConfig(completeHander: @escaping (_ isSuccess: Bool) -> Void) {
         if PQSingletoMemoryUtil.shared.isFinishedCoging {
             completeHander(true)
             return

+ 1 - 1
BFFramework/Classes/Enums/Enums.swift

@@ -40,7 +40,7 @@ enum PQVIDEO_PLAY_STATUS {
 // MARK: - 页面场景
 
 /// 页面场景
-enum PAGESOURCE: String {
+public enum PAGESOURCE: String {
     /*************** 视频相关pageSource ***************/
     case sp_category = "speedApp-category" //   首页-单列
     case sp_category_recommend = "speedApp-category_recommend" // 由首页单列右划

+ 29 - 29
BFFramework/Classes/PModels/PQLoginUserInfo.swift

@@ -10,30 +10,30 @@ import UIKit
 
 // MARK: - 登录用户信息
 
-/// 登录用户信息
-class BFLoginUserInfo: NSObject {
-    static let shared = BFLoginUserInfo()
-    var uid: String = "" // 账号
-    var userCode: String = "" // 账号
-    var accessToken: String = "" // token
-    var avatarUrl: String = "" // 头像
-    var city: String = "" // 城市
-    var province: String = "" // 省市
-    var country: String = "" // 国家
-    var phoneNumber: String = "" // 电话
-    var openId: String = "" // 微信openId
-    var nickName: String = "" // 昵称
-    var gender: String = "" // 性别
-    var expiredTime: String = "" // 过期时间
-    var videos: String = "0" // 视频数
-    var idols: String = "0" // 关注数
-    var fans: String = "0" // 粉丝数
-    var otherSubscribes: String = "0" // 别人订阅我的数量
-    var userStatus: String = "1" // 1有效,2 已删除,3 已屏蔽,4 敏感
-    var isVirtualUser: Bool = false // 是否是虚拟账号
-    var mid = getMachineCode() // 设备ID
+/// 登录用户信息s
+public class BFLoginUserInfo: NSObject {
+    static public let shared = BFLoginUserInfo()
+    public var uid: String = "" // 账号
+    public  var userCode: String = "" // 账号
+    public var accessToken: String = "" // token
+    public var avatarUrl: String = "" // 头像
+    public var city: String = "" // 城市
+    public var province: String = "" // 省市
+    public  var country: String = "" // 国家
+    public  var phoneNumber: String = "" // 电话
+    public var openId: String = "" // 微信openId
+    public var nickName: String = "" // 昵称
+    public var gender: String = "" // 性别
+    public var expiredTime: String = "" // 过期时间
+    public var videos: String = "0" // 视频数
+    public  var idols: String = "0" // 关注数
+    public var fans: String = "0" // 粉丝数
+    public var otherSubscribes: String = "0" // 别人订阅我的数量
+    public  var userStatus: String = "1" // 1有效,2 已删除,3 已屏蔽,4 敏感
+    public var isVirtualUser: Bool = false // 是否是虚拟账号
+    public  var mid = getMachineCode() // 设备ID
 
-    @objc func toString() -> String {
+    @objc  public  func toString() -> String {
         let json: [String: Any] = [
             "accessToken": accessToken,
             "avatarUrl": avatarUrl,
@@ -57,7 +57,7 @@ class BFLoginUserInfo: NSObject {
         return dictionaryToJsonString(json) ?? ""
     }
 
-    override init() {
+    override public init() {
         super.init()
         resetData(isClear: false)
         if getUserDefaults(key: cMineVideos) != nil {
@@ -80,7 +80,7 @@ class BFLoginUserInfo: NSObject {
         }
     }
 
-    @objc func resetData(isClear: Bool) {
+    @objc  public  func resetData(isClear: Bool) {
         if isClear {
             UserDefaults.standard.removeObject(forKey: cUserInfoStorageKey)
             UserDefaults.standard.removeObject(forKey: cMineVideos)
@@ -115,7 +115,7 @@ class BFLoginUserInfo: NSObject {
         updateData(userInfo: userInfo)
     }
 
-    func updateData(userInfo: [String: Any]?) {
+    public  func updateData(userInfo: [String: Any]?) {
         if userInfo != nil, userInfo?.count ?? 0 > 0 {
             accessToken = "\(userInfo?["accessToken"] ?? "")"
             if userInfo?.keys.contains("token") ?? false {
@@ -164,15 +164,15 @@ class BFLoginUserInfo: NSObject {
         }
     }
 
-    func isLogin() -> Bool {
+    public  func isLogin() -> Bool {
         return accessToken.count > 0
     }
 
-    override func copy() -> Any {
+    public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }

+ 64 - 64
BFFramework/Classes/Utils/PQCommonMethodUtil.swift

@@ -18,37 +18,37 @@ import RealmSwift
 import Toast_Swift
 import NXFramework_Swift
 /// Home文件地址
-let homeDirectory = NSHomeDirectory()
+public let homeDirectory = NSHomeDirectory()
 /// docdocumens文件地址
-let documensDirectory = homeDirectory + "/Documents"
+public let documensDirectory = homeDirectory + "/Documents"
 /// library文件地址
-let libraryDirectory = homeDirectory + "/Library"
+public let libraryDirectory = homeDirectory + "/Library"
 
 /// 本地存储资源地址
-let resourceDirectory = documensDirectory + "/Resource"
+public let resourceDirectory = documensDirectory + "/Resource"
 /// 播放视频缓冲本地沙河目录
-let videoCacheDirectory = resourceDirectory + "/VideoCache"
+public let videoCacheDirectory = resourceDirectory + "/VideoCache"
 /// 相册视频导出到本地沙河目录
-let photoLibraryDirectory = resourceDirectory + "/PhotoLibrary/"
+public let photoLibraryDirectory = resourceDirectory + "/PhotoLibrary/"
 /// 背景音乐导出到本地沙河目录
-let bgMusicDirectory = resourceDirectory + "/BGMusic/"
+public let bgMusicDirectory = resourceDirectory + "/BGMusic/"
 /// 网络视频素材下载到本地沙河目录
-let downloadDirectory = resourceDirectory + "/Download/"
+public let downloadDirectory = resourceDirectory + "/Download/"
 /// 网络图片、GIF 素材下载到本地沙河目录
-let downloadImagesDirectory = resourceDirectory + "/DownloadImages/"
+public let downloadImagesDirectory = resourceDirectory + "/DownloadImages/"
 /// 临时缓存本地沙河目录地址
-let tempDirectory = resourceDirectory + "/Temp/"
+public let tempDirectory = resourceDirectory + "/Temp/"
 /// 导出声音的本地沙盒目录v
-let exportAudiosDirectory = resourceDirectory + "/ExportAudios/"
+public let exportAudiosDirectory = resourceDirectory + "/ExportAudios/"
 /// 导出合成视频的本地沙盒目录
-let exportVideosDirectory = resourceDirectory + "/ExportVideos/"
+public let exportVideosDirectory = resourceDirectory + "/ExportVideos/"
 // 版本构建号
-let versionCode = "\(Bundle.main.infoDictionary?["CFBundleVersion"] ?? "1")"
+public let versionCode = "\(Bundle.main.infoDictionary?["CFBundleVersion"] ?? "1")"
 // 版本号
-let versionName = "\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] ?? "1.0.0")"
+public let versionName = "\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] ?? "1.0.0")"
 /// 创建目录文件
 /// - Returns: <#description#>
-func createDirectory(path: String) {
+public func createDirectory(path: String) {
     let fileManager = FileManager.default
     if !fileManager.fileExists(atPath: path) {
         try? fileManager.createDirectory(atPath: path, withIntermediateDirectories: true, attributes: nil)
@@ -57,7 +57,7 @@ func createDirectory(path: String) {
 
 /// 判断文件夹是否存在
 /// - Parameter dicPath:文件夹 目录
-func directoryIsExists(dicPath: String) -> Bool {
+public func directoryIsExists(dicPath: String) -> Bool {
     BFLog(message: " dir path is: \(dicPath)")
     var directoryExists = ObjCBool(false)
     let fileExists = FileManager.default.fileExists(atPath: dicPath, isDirectory: &directoryExists)
@@ -66,7 +66,7 @@ func directoryIsExists(dicPath: String) -> Bool {
 
 /// 判断文件是否存在
 /// - Parameter filepath: 文件目录
-func fileIsExists(filePath: String) -> Bool {
+public func fileIsExists(filePath: String) -> Bool {
     BFLog(message: "file path is: \(filePath)")
 
     let fileExists = FileManager.default.fileExists(atPath: filePath)
@@ -76,7 +76,7 @@ func fileIsExists(filePath: String) -> Bool {
 /// 创建沙河文件地址
 /// - Parameter url: 原地址
 /// - Returns: <#description#>
-func createFilePath(url: String) -> Bool {
+public func createFilePath(url: String) -> Bool {
     let fileManager = FileManager.default
     if !fileManager.fileExists(atPath: url) {
         let isFinished = fileManager.createFile(atPath: url, contents: nil, attributes: nil)
@@ -85,7 +85,7 @@ func createFilePath(url: String) -> Bool {
     return true
 }
 
-func cIPHONE_X() -> Bool {
+public func cIPHONE_X() -> Bool {
     guard #available(iOS 11.0, *) else {
         return false
     }
@@ -98,7 +98,7 @@ func cIPHONE_X() -> Bool {
 /// - Parameters:
 ///   - url: 网络url
 ///   - mainView: 需要加载的视图
-func netImage(url: String, mainView: Any, placeholder: UIImage = UIImage(named: "placehold_image")!) {
+public func netImage(url: String, mainView: Any, placeholder: UIImage = UIImage(named: "placehold_image")!) {
 //    if mainView is UIImageView {
 //        (mainView as! UIImageView).kf.setImage(with: URL(string: url), placeholder: placeholder, options: url.suffix(5) == ".webp" ? [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)] : nil, progressBlock: { _, _ in
 //
@@ -113,14 +113,14 @@ func netImage(url: String, mainView: Any, placeholder: UIImage = UIImage(named:
 }
 
 /** 获取Kingfisher缓存的图片的data */
-func kf_imageCacheData(originUrl: String) -> Data? {
+public func kf_imageCacheData(originUrl: String) -> Data? {
     let diskCachePath = ImageCache.default.cachePath(forKey: originUrl)
     let data = try? Data(contentsOf: URL(fileURLWithPath: diskCachePath))
     return data
 }
 
 /** 获取Kingfisher缓存的图片 */
-func kf_imageCacheImage(originUrl: String) -> UIImage? {
+public func kf_imageCacheImage(originUrl: String) -> UIImage? {
     return ImageCache.default.retrieveImageInDiskCache(forKey: originUrl, options: [.cacheOriginalImage])
 }
 
@@ -137,7 +137,7 @@ public func BFLog<T>(message: T) {
 
 // MARK: 获取公共参数
 
-func commonParams() -> [String: Any] {
+public func commonParams() -> [String: Any] {
     let model = UIDevice.current.model
     let systemName = UIDevice.current.systemName
     let systemVersion = UIDevice.current.systemVersion
@@ -181,7 +181,7 @@ func commonParams() -> [String: Any] {
 
 /// 获取网络状态
 /// - Returns: <#description#>
-func networkStatus() -> String {
+public func networkStatus() -> String {
     let status = NetworkReachabilityManager(host: "www.baidu.com")?.networkReachabilityStatus
     var statusStr: String!
 
@@ -202,13 +202,13 @@ func networkStatus() -> String {
 
 /// 判断是否有网
 /// - Returns: <#description#>
-func isNetConnected() -> Bool {
+public func isNetConnected() -> Bool {
     return NetworkReachabilityManager(host: "www.baidu.com")?.networkReachabilityStatus != .notReachable
 }
 
 /// 获取ip地址
 /// - Returns: <#description#>
-func ipAddress() -> String {
+public func ipAddress() -> String {
     var addresses = [String]()
     var ifaddr: UnsafeMutablePointer<ifaddrs>?
     if getifaddrs(&ifaddr) == 0 {
@@ -236,7 +236,7 @@ func ipAddress() -> String {
 /// 生成唯一ID / 分享跟冷启动
 /// - Parameter desc: <#desc description#>
 /// - Returns: <#description#>
-func getUniqueId(desc: String) -> String {
+public func getUniqueId(desc: String) -> String {
     let timeStr: String = "\(Date().timeIntervalSince1970)"
     let uuid: String = getMachineCode()
     let code: String = "\(arc4random_uniform(1_000_000_000))"
@@ -247,7 +247,7 @@ func getUniqueId(desc: String) -> String {
 
 // MARK: 字典转字符串
 
-func dictionaryToJsonString(_ dic: [String: Any]) -> String? {
+public func dictionaryToJsonString(_ dic: [String: Any]) -> String? {
     BFLog(message: "dictionaryToJsonString = \(dic)")
     if !JSONSerialization.isValidJSONObject(dic) {
         return ""
@@ -263,7 +263,7 @@ func dictionaryToJsonString(_ dic: [String: Any]) -> String? {
 
 // MARK: 字符串转字典
 
-func jsonStringToDictionary(_ str: String) -> [String: Any]? {
+public func jsonStringToDictionary(_ str: String) -> [String: Any]? {
     let data = str.data(using: String.Encoding.utf8)
     if data == nil {
         return [:]
@@ -276,7 +276,7 @@ func jsonStringToDictionary(_ str: String) -> [String: Any]? {
 
 // MARK: 字符串转数组
 
-func jsonStringToArray(_ str: String) -> [[String: String]]? {
+public func jsonStringToArray(_ str: String) -> [[String: String]]? {
     let data = str.data(using: String.Encoding.utf8)
     if let array = try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? [[String: String]] {
         return array
@@ -287,7 +287,7 @@ func jsonStringToArray(_ str: String) -> [[String: String]]? {
 /// 数组转为string
 /// - Parameter array: <#array description#>
 /// - Returns: <#description#>
-func arrayToJsonString(_ array: [Any]) -> String {
+public func arrayToJsonString(_ array: [Any]) -> String {
     if !JSONSerialization.isValidJSONObject(array) {
         BFLog(message: "无法解析String")
         return ""
@@ -300,7 +300,7 @@ func arrayToJsonString(_ array: [Any]) -> String {
 /// jsonString转为数组
 /// - Parameter jsonString: <#jsonString description#>
 /// - Returns: <#description#>
-func jsonStringToArray(jsonString: String) -> [Any]? {
+public func jsonStringToArray(jsonString: String) -> [Any]? {
     let data = jsonString.data(using: String.Encoding.utf8)
     if data == nil {
         return nil
@@ -317,7 +317,7 @@ func jsonStringToArray(jsonString: String) -> [Any]? {
 ///   - font: <#font description#>
 ///   - size: <#size description#>
 /// - Returns: <#description#>
-func sizeWithText(text: String, font: UIFont, size: CGSize) -> CGSize {
+public func sizeWithText(text: String, font: UIFont, size: CGSize) -> CGSize {
     let attributes = [NSAttributedString.Key.font: font]
     let option = NSStringDrawingOptions.usesLineFragmentOrigin
     let rect: CGRect = text.boundingRect(with: size, options: option, attributes: attributes, context: nil)
@@ -331,7 +331,7 @@ func sizeWithText(text: String, font: UIFont, size: CGSize) -> CGSize {
 ///   - font: <#font description#>
 ///   - maxSize: <#maxSize description#>
 /// - Returns: <#description#>
-func sizeTextFits(attributedText: NSMutableAttributedString?, text: String?, numberOfLines: Int, font: UIFont, maxSize: CGSize) -> CGSize {
+public func sizeTextFits(attributedText: NSMutableAttributedString?, text: String?, numberOfLines: Int, font: UIFont, maxSize: CGSize) -> CGSize {
     var newSize: CGSize = CGSize(width: 0, height: 0)
     let label = UILabel(frame: CGRect.zero)
     label.font = font
@@ -346,7 +346,7 @@ func sizeTextFits(attributedText: NSMutableAttributedString?, text: String?, num
     return newSize
 }
 
-func textNumberOfLines(text: String, font: UIFont, maxSize _: CGSize) -> Int {
+public func textNumberOfLines(text: String, font: UIFont, maxSize _: CGSize) -> Int {
     let label = UILabel(frame: CGRect.zero)
     label.font = font
     label.numberOfLines = 0
@@ -361,7 +361,7 @@ func textNumberOfLines(text: String, font: UIFont, maxSize _: CGSize) -> Int {
 ///   - startColor: <#startColor description#>
 ///   - endColor: <#endColor description#>
 /// - Returns: <#description#>
-func gradientColor(size: CGSize, endPoint: CGPoint, startColor: UIColor, endColor: UIColor) -> UIColor {
+public func gradientColor(size: CGSize, endPoint: CGPoint, startColor: UIColor, endColor: UIColor) -> UIColor {
     let gradientLayer = CAGradientLayer()
     gradientLayer.frame = CGRect(origin: CGPoint(), size: size)
     gradientLayer.startPoint = CGPoint.zero
@@ -375,7 +375,7 @@ func gradientColor(size: CGSize, endPoint: CGPoint, startColor: UIColor, endColo
 
 /// 获取设备ID
 /// - Returns: <#description#>
-func getMachineCode() -> String {
+public func getMachineCode() -> String {
     let userInfo: [String: Any]? = jsonStringToDictionary(UserDefaults.standard.string(forKey: cUserInfoStorageKey) ?? "")
     if userInfo != nil && ((userInfo?.keys.contains("isVirtualUser") ?? false) && !(userInfo?["isVirtualUser"] is NSNull) && ((userInfo?["isVirtualUser"] as? Bool) ?? false)) && ((userInfo?.keys.contains("mid") ?? false) && !(userInfo?["mid"] is NSNull)) {
         BFLog(message: "虚拟账号mid:\("\(userInfo?["mid"] ?? "")")")
@@ -396,7 +396,7 @@ func getMachineCode() -> String {
 ///   - superView: <#superView description#>
 ///   - msg: <#msg description#>
 /// - Returns: <#description#>
-func cShowHUB(superView: UIView?, msg: String?) {
+ public func cShowHUB(superView: UIView?, msg: String?) {
     DispatchQueue.main.async {
         if superView == nil {
             if msg == nil {
@@ -417,7 +417,7 @@ func cShowHUB(superView: UIView?, msg: String?) {
 /// 隐藏加载中视图
 /// - Parameter superView: <#superView description#>
 /// - Returns: <#description#>
-func cHiddenHUB(superView: UIView?) {
+public func cHiddenHUB(superView: UIView?) {
     DispatchQueue.main.async {
         if superView == nil {
             UIApplication.shared.keyWindow?.hideAllToasts()
@@ -432,7 +432,7 @@ func cHiddenHUB(superView: UIView?) {
 /// 获取存储值
 /// - Parameter key: key description
 /// - Returns: description
-func getUserDefaults(key: String) -> Any? {
+public func getUserDefaults(key: String) -> Any? {
     return UserDefaults.standard.object(forKey: key)
 }
 
@@ -441,7 +441,7 @@ func getUserDefaults(key: String) -> Any? {
 ///   - key: key description
 ///   - value: value description
 /// - Returns: description
-func saveUserDefaults(key: String, value: String) {
+public func saveUserDefaults(key: String, value: String) {
     UserDefaults.standard.set(value, forKey: key)
     UserDefaults.standard.synchronize()
 }
@@ -450,7 +450,7 @@ func saveUserDefaults(key: String, value: String) {
 /// - Parameters:
 ///   - key: <#key description#>
 ///   - value: <#value description#>
-func saveUserDefaultsToJson(key: String, value: Any) {
+public func saveUserDefaultsToJson(key: String, value: Any) {
     UserDefaults.standard.set(dictionaryToJsonString([key: value, "appVersionCode": versionCode, "versionName": versionName]), forKey: key)
     UserDefaults.standard.synchronize()
 }
@@ -458,7 +458,7 @@ func saveUserDefaultsToJson(key: String, value: Any) {
 /// 获取数据带版本号
 /// - Parameter key: <#key description#>
 /// - Returns: <#description#>
-func getUserDefaultsForJson(key: String) -> Any? {
+public func getUserDefaultsForJson(key: String) -> Any? {
     let jsonStr = UserDefaults.standard.object(forKey: key)
     if jsonStr != nil {
         return jsonStringToDictionary(jsonStr as! String)?[key]
@@ -471,7 +471,7 @@ func getUserDefaultsForJson(key: String) -> Any? {
 ///   - key: key description
 ///   - value: value description
 /// - Returns: description
-func removeUserDefaults(key: String) {
+public func removeUserDefaults(key: String) {
     UserDefaults.standard.removeObject(forKey: key)
     UserDefaults.standard.synchronize()
 }
@@ -481,7 +481,7 @@ func removeUserDefaults(key: String) {
 ///   - key: key description
 ///   - value: value description
 /// - Returns: description
-func saveUserDefaults(key: String, value: Any) {
+public func saveUserDefaults(key: String, value: Any) {
     UserDefaults.standard.set(value, forKey: key)
     UserDefaults.standard.synchronize()
 }
@@ -489,7 +489,7 @@ func saveUserDefaults(key: String, value: Any) {
 /// 保存自定义model   as NSArray  当 OBJ 是数组时不能使用 Array 要使用 NSArray
 /// - Parameter object: <#object description#>
 /// - Parameter key: <#key description#>
-func saveCustomObject(customObject object: NSCoding, key: String) {
+public func saveCustomObject(customObject object: NSCoding, key: String) {
     let encodedObject = NSKeyedArchiver.archivedData(withRootObject: object)
     UserDefaults.standard.set(encodedObject, forKey: key)
     UserDefaults.standard.synchronize()
@@ -498,7 +498,7 @@ func saveCustomObject(customObject object: NSCoding, key: String) {
 
 /// 取自定义model
 /// - Parameter key: <#key description#>
-func getCustomObject(forKey key: String) -> AnyObject? {
+public func getCustomObject(forKey key: String) -> AnyObject? {
     let decodedObject = UserDefaults.standard.object(forKey: key) as? Data
 
     if decodedObject == nil {
@@ -520,21 +520,21 @@ func getCustomObject(forKey key: String) -> AnyObject? {
 ///   - aName: <#aName description#>
 ///   - anObject: <#anObject description#>
 /// - Returns: <#description#>
-func addNotification(_ observer: Any, selector aSelectorName: Selector, name aName: String, object anObject: Any?) {
+public func addNotification(_ observer: Any, selector aSelectorName: Selector, name aName: String, object anObject: Any?) {
     PQNotification.addObserver(observer, selector: aSelectorName, name: NSNotification.Name(rawValue: aName), object: anObject)
 }
 
 /// 发送通知
 /// - Parameter aName: <#aName description#>
 /// - Returns: <#description#>
-func postNotification(name aName: String, userInfo: [AnyHashable: Any]? = nil) {
+public func postNotification(name aName: String, userInfo: [AnyHashable: Any]? = nil) {
     PQNotification.post(name: NSNotification.Name(aName), object: nil, userInfo: userInfo)
 }
 
 /// 获取是否打开推送
 /// - Parameter completeHander: <#completeHander description#>
 /// - Returns: <#description#>
-func pushNotificationIsOpen(completeHander: ((_ isOpen: Bool) -> Void)?) {
+public func pushNotificationIsOpen(completeHander: ((_ isOpen: Bool) -> Void)?) {
     if #available(iOS 10.0, *) {
         UNUserNotificationCenter.current().getNotificationSettings { setttings in
             completeHander!(setttings.authorizationStatus == .authorized)
@@ -547,7 +547,7 @@ func pushNotificationIsOpen(completeHander: ((_ isOpen: Bool) -> Void)?) {
 /// 发送上传本地推送
 /// - Parameter isSuccess: 是否上传成功
 /// - Returns: <#description#>
-func sendUploadNotification(isSuccess: Bool) {
+public func sendUploadNotification(isSuccess: Bool) {
     let title: String = isSuccess ? "上传完成了!" : "上传失败了!"
     let body: String = isSuccess ? "请点击发布,完成上传。否则,您的视频可能丢失" : "快来看看怎么了?"
     sendLocalNotification(title: title, body: body)
@@ -558,7 +558,7 @@ func sendUploadNotification(isSuccess: Bool) {
 ///   - title: 标题
 ///   - body: 内容
 /// - Returns: <#description#>
-func sendLocalNotification(title: String, body: String) {
+public func sendLocalNotification(title: String, body: String) {
     // 设置推送内容
     if #available(iOS 10.0, *) {
         let content = UNMutableNotificationContent()
@@ -591,7 +591,7 @@ func sendLocalNotification(title: String, body: String) {
 }
 
 /// 打开应用设置
-func openAppSetting() {
+public func openAppSetting() {
     if UIApplication.shared.canOpenURL(URL(string: UIApplication.openSettingsURLString)!) {
         UIApplication.shared.openURL(URL(string: UIApplication.openSettingsURLString)!)
     }
@@ -600,7 +600,7 @@ func openAppSetting() {
 /// dns解析
 /// - Parameter hostUrl: speed.piaoquantv.com /
 /// - Returns: <#description#>
-func parseDNS(hostUrl: String) -> [String: Any]? {
+public func parseDNS(hostUrl: String) -> [String: Any]? {
     let host: CFHost? = CFHostCreateWithName(nil, hostUrl as CFString).takeRetainedValue()
     let start = CFAbsoluteTimeGetCurrent()
     var success: DarwinBoolean = false
@@ -633,7 +633,7 @@ func parseDNS(hostUrl: String) -> [String: Any]? {
 
 /// 获取当前日期
 /// - Returns: <#description#>
-func systemCurrentDate() -> String {
+public func systemCurrentDate() -> String {
     let dateFormatter = DateFormatter()
     dateFormatter.dateFormat = "YYYY-MM-dd"
     return dateFormatter.string(from: Date())
@@ -642,7 +642,7 @@ func systemCurrentDate() -> String {
 /// 时间戳转日期
 /// - Parameter timeInterval: <#timeInterval description#>
 /// - Returns: <#description#>
-func timeIntervalToDateString(timeInterval: TimeInterval) -> String {
+public func timeIntervalToDateString(timeInterval: TimeInterval) -> String {
     let date = Date(timeIntervalSince1970: timeInterval)
     let dateFormatter = DateFormatter()
     dateFormatter.dateFormat = "MM月dd日 HH:mm"
@@ -652,7 +652,7 @@ func timeIntervalToDateString(timeInterval: TimeInterval) -> String {
 /// 判断字符串或者字典是否为空
 /// - Parameter object: <#object description#>
 /// - Returns: <#description#>
-func isEmpty(object: Any?) -> Bool {
+public func isEmpty(object: Any?) -> Bool {
     if object == nil {
         return true
     }
@@ -665,7 +665,7 @@ func isEmpty(object: Any?) -> Bool {
     return false
 }
 
-func isEmptyObject(object: Any?) -> Bool {
+public func isEmptyObject(object: Any?) -> Bool {
     if object == nil {
         return true
     }
@@ -684,7 +684,7 @@ func isEmptyObject(object: Any?) -> Bool {
 /// <#Description#>
 /// - Parameter string: <#string description#>
 /// - Returns: <#description#>
-func isIncludeChineseIn(string: String) -> Bool {
+public func isIncludeChineseIn(string: String) -> Bool {
     for (_, value) in string.enumerated() {
         if value >= "\u{4E00}", value <= "\u{9FA5}" {
             return true
@@ -698,7 +698,7 @@ func isIncludeChineseIn(string: String) -> Bool {
 ///   - path: 地址
 ///   - data: data
 /// - Returns: <#description#>
-func contentMD5(path: String? = nil, data _: Data? = nil) -> String? {
+public func contentMD5(path: String? = nil, data _: Data? = nil) -> String? {
     if path == nil || (path?.count ?? 0) <= 0 || !FileManager.default.fileExists(atPath: path ?? "") {
         BFLog(message: "生成内容md5值:地址错误或者不存在\(String(describing: path))")
         return ""
@@ -760,7 +760,7 @@ func contentMD5(path: String? = nil, data _: Data? = nil) -> String? {
 ///   - width: <#width description#>
 ///   - baseWidth: <#baseWidth description#>
 /// - Returns: <#description#>
-func adapterWidth(width: CGFloat, baseWidth: CGFloat = 375) -> CGFloat {
+public func adapterWidth(width: CGFloat, baseWidth: CGFloat = 375) -> CGFloat {
     return width / baseWidth * cScreenWidth
 }
 
@@ -769,14 +769,14 @@ func adapterWidth(width: CGFloat, baseWidth: CGFloat = 375) -> CGFloat {
 ///   - height: <#height description#>
 ///   - baseHeight: <#baseHeight description#>
 /// - Returns: <#description#>
-func adapterHeight(height: CGFloat, baseHeight: CGFloat = 812) -> CGFloat {
+public func adapterHeight(height: CGFloat, baseHeight: CGFloat = 812) -> CGFloat {
     return height / baseHeight * cScreenHeigth
 }
 
 /// 检测URL
 /// - Parameter url: <#url description#>
 /// - Returns: <#description#>
-func isValidURL(url: String?) -> Bool {
+public func isValidURL(url: String?) -> Bool {
     if url == nil || (url?.count ?? 0) <= 4 || (!(url?.hasPrefix("http") ?? false) && !(url?.hasPrefix("https") ?? false)) {
         return false
     }
@@ -816,7 +816,7 @@ var playGifImages: [UIImage] = {
 /// - Parameter image: <#image description#>
 /// -
 /// - Returns: <#description#>
-func zipImage(image: UIImage?, size: Int) -> Data? {
+public func zipImage(image: UIImage?, size: Int) -> Data? {
     var data = image?.pngData()
     var dataKBytes = Int(data?.count ?? 0) / 1000
     var maxQuality = 0.9

+ 126 - 126
BFFramework/Classes/Utils/PQConstant.swift

@@ -10,259 +10,259 @@ import Foundation
 import Kingfisher
 import UIKit
 
-let cScreenWidth: CGFloat = UIScreen.main.bounds.width
-let cScreenHeigth: CGFloat = UIScreen.main.bounds.height
+public let cScreenWidth: CGFloat = UIScreen.main.bounds.width
+public let cScreenHeigth: CGFloat = UIScreen.main.bounds.height
 
 // 屏幕适配系数  iponneX?
-let cAdaptatWidth = cScreenWidth / 375
-let cAdaptatHeigth = cScreenHeigth / 667
+public let cAdaptatWidth = cScreenWidth / 375
+public let cAdaptatHeigth = cScreenHeigth / 667
 /// 图库大小
-let photoItemSize = CGSize(width: (cScreenWidth - cDefaultMargin) / 3, height: (cScreenWidth - cDefaultMargin) / 3) // cell 大小
+public let photoItemSize = CGSize(width: (cScreenWidth - cDefaultMargin) / 3, height: (cScreenWidth - cDefaultMargin) / 3) // cell 大小
 // add by ak 视频制作工具视频画布大小
 // 1:1
-let cVideoCannvasSizeOneToOne = CGSize(width: 1080.0, height: 1080.0)
+public let cVideoCannvasSizeOneToOne = CGSize(width: 1080.0, height: 1080.0)
 // 16:9
-let cVideoCannvasSizeSixteenToNine = CGSize(width: 1920.0, height: 1080.0)
+public let cVideoCannvasSizeSixteenToNine = CGSize(width: 1920.0, height: 1080.0)
 // 9:16
-let cVideoCannvasSizeNineToSixteen = CGSize(width: 1080.0, height: 1920.0)
+public let cVideoCannvasSizeNineToSixteen = CGSize(width: 1080.0, height: 1920.0)
 
 // add by ak 声频 hz
-let cEditAudioSampleRate = 44100
+public let cEditAudioSampleRate = 44100
 
 // 获取安全区域大小
-let cSafeAreaHeight: CGFloat = cIPHONE_X() == true ? 34.0 : 0.0
-let cDevice_iPhoneStatusBarHei: CGFloat = cIPHONE_X() == true ? 44.0 : 20.0
-let cDevice_iPhoneNavBarHei: CGFloat = 44.0
-let cDevice_iPhoneNavBarAndStatusBarHei: CGFloat = cDevice_iPhoneStatusBarHei + cDevice_iPhoneNavBarHei
-let cDevice_iPhoneTabBarHei: CGFloat = cSafeAreaHeight + 49.0
+public let cSafeAreaHeight: CGFloat = cIPHONE_X() == true ? 34.0 : 0.0
+public let cDevice_iPhoneStatusBarHei: CGFloat = cIPHONE_X() == true ? 44.0 : 20.0
+public let cDevice_iPhoneNavBarHei: CGFloat = 44.0
+public let cDevice_iPhoneNavBarAndStatusBarHei: CGFloat = cDevice_iPhoneStatusBarHei + cDevice_iPhoneNavBarHei
+public let cDevice_iPhoneTabBarHei: CGFloat = cSafeAreaHeight + 49.0
 // 遮罩颜色
-let cShadowColor: UIColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
+public let cShadowColor: UIColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
 /// 通知
-let PQNotification: NotificationCenter = NotificationCenter.default
+public let PQNotification: NotificationCenter = NotificationCenter.default
 
 /** 默认间隔 */
 public let cDefaultMargin: CGFloat = 10
 // 时间精度
-let playerTimescale: Float64 = 1000.0
-// 时间精度Int
-let playerTimescaleInt: Int32 = 1000
+public let playerTimescale: Float64 = 1000.0
+// 时间精度Ints
+public let playerTimescaleInt: Int32 = 1000
 // 最大上传大小 10G
-let maxUploadSize: Float64 = 10.0 * 1024.0 * 1024.0 * 1024.0
+public let maxUploadSize: Float64 = 10.0 * 1024.0 * 1024.0 * 1024.0
 // 最大素材大小 500M
-let maxMartialSize: Float64 = 500.0 * 1024.0 * 1024.0
+public let maxMartialSize: Float64 = 500.0 * 1024.0 * 1024.0
 /// 音频频率范围值
-let cFrequency: [CGFloat] = [9.0, 12.0, 16.5, 18, 24, 21, 18, 16.5, 12, 16.5, 18, 16.5, 12]
+public let cFrequency: [CGFloat] = [9.0, 12.0, 16.5, 18, 24, 21, 18, 16.5, 12, 16.5, 18, 16.5, 12]
 /**************** tag *******************/
 
-let cCellTag: Int = 100_001
+public let cCellTag: Int = 100_001
 /** 引导 tag */
-let cGuideTag: Int = 100_002
+public let cGuideTag: Int = 100_002
 /** 视频封面tag */
-let cCoverInfoTag: Int = 100_003
+public let cCoverInfoTag: Int = 100_003
 /** 协议tag */
-let cProtocalViewTag: Int = 100_004
+public let cProtocalViewTag: Int = 100_004
 /** 心形tag */
-let cHeartTag: Int = 100_005
+public let cHeartTag: Int = 100_005
 /** 订阅提示tag */
-let cSubcribeRemindTag: Int = 100_006
+public let cSubcribeRemindTag: Int = 100_006
 /** 订阅提示tag */
-let cPushRemindTag: Int = 100_007
+public let cPushRemindTag: Int = 100_007
 /** 活动提示tag */
-let cActivityRemindTag: Int = 100_008
+public let cActivityRemindTag: Int = 100_008
 /** pay提示tag */
-let cPayInfoTag: Int = 100_009
+public let cPayInfoTag: Int = 100_009
 /** 绑定手机号提示tag */
-let cBandinPhoneTag: Int = 100_010
+public let cBandinPhoneTag: Int = 100_010
 /// 上传最大viewTag
-let cUploadMaxCountRemindTag: Int = 100_011
+public let cUploadMaxCountRemindTag: Int = 100_011
 /// 上传提示tag
-let cUploadViewRemindTag: Int = 100_012
+public let cUploadViewRemindTag: Int = 100_012
 /// 视频制作播放背景音乐的tag
-let cVideoMKBGMPlayTag: Int = 100_013
+public let cVideoMKBGMPlayTag: Int = 100_013
 /// 上滑提示tag
-let cUpSlideViewRemindTag: Int = 100_014
+public let cUpSlideViewRemindTag: Int = 100_014
 /// 创作视频引导提示tag
-let cVideoMakeRemindTag: Int = 100_015
+public let cVideoMakeRemindTag: Int = 100_015
 /// 操作弹出tag
-let cOprationRemindTag: Int = 100_016
+public let cOprationRemindTag: Int = 100_016
 /// 气泡提示视图tag
-let cBubbleRemindViewTag: Int = 100_017
+public let cBubbleRemindViewTag: Int = 100_017
 /// 素材推荐提示tag
-let cRecommendMaterialViewTag: Int = 100_018
+public let cRecommendMaterialViewTag: Int = 100_018
 /// 气泡提示视图tag
-let cPageMaterialGuidTag: Int = 100_019
+public let cPageMaterialGuidTag: Int = 100_019
 
 /****************** 私有key ***************/
 
 // 创作工具-项目id前缀
-let cProjectIdPrefix: String = "app_no_projectdata_"
+public let cProjectIdPrefix: String = "app_no_projectdata_"
 
-let cPrimarykey: String = "@taiziliudong_2020"
+public let cPrimarykey: String = "@taiziliudong_2020"
 // ---
-let cRedEnvoStorageKey: String = "redEnvo\(cPrimarykey)"
-let cOriginStorageKey: String = "origin\(cPrimarykey)"
-let cZhiFStorageKey: String = "zhiF\(cPrimarykey)"
-let cCoinStorageKey: String = "coin\(cPrimarykey)"
-let cMoneStorageKey: String = "mone\(cPrimarykey)"
-let cAccouStorageKey: String = "accou\(cPrimarykey)"
-let cTasStorageKey: String = "tas\(cPrimarykey)"
-let cGameStorageKey: String = "game\(cPrimarykey)"
-let cSepraStorageKey: String = "sepra\(cPrimarykey)"
-let cFreeStorageKey: String = "free\(cPrimarykey)"
+public let cRedEnvoStorageKey: String = "redEnvo\(cPrimarykey)"
+public let cOriginStorageKey: String = "origin\(cPrimarykey)"
+public let cZhiFStorageKey: String = "zhiF\(cPrimarykey)"
+public let cCoinStorageKey: String = "coin\(cPrimarykey)"
+public let cMoneStorageKey: String = "mone\(cPrimarykey)"
+public let cAccouStorageKey: String = "accou\(cPrimarykey)"
+public let cTasStorageKey: String = "tas\(cPrimarykey)"
+public let cGameStorageKey: String = "game\(cPrimarykey)"
+public let cSepraStorageKey: String = "sepra\(cPrimarykey)"
+public let cFreeStorageKey: String = "free\(cPrimarykey)"
 
-let cRedImageStorageKey: String = "ic_hbs_enter\(cPrimarykey)"
-let cNewImageStorageKey: String = "icon_hbs_free\(cPrimarykey)"
+public let cRedImageStorageKey: String = "ic_hbs_enter\(cPrimarykey)"
+public let cNewImageStorageKey: String = "icon_hbs_free\(cPrimarykey)"
 
 // 用户信息key
-let cUserInfoStorageKey: String = "userInfo\(cPrimarykey)"
+public let cUserInfoStorageKey: String = "userInfo\(cPrimarykey)"
 // 是否加载过引导页
-let cGuidedInfoStorageKey: String = "guidedInfo\(cPrimarykey)"
+public let cGuidedInfoStorageKey: String = "guidedInfo\(cPrimarykey)"
 // 是否第一次安装
-let cFirstInstall: String = "firstInstall\(cPrimarykey)"
+public let cFirstInstall: String = "firstInstall\(cPrimarykey)"
 // 第一次冷启动未上传参数
-let cFirstParams: String = "firstParams\(cPrimarykey)"
+public let cFirstParams: String = "firstParams\(cPrimarykey)"
 
 // 是否显示了协议
-let cShowProtocal: String = "showProtocal\(cPrimarykey)"
+public let cShowProtocal: String = "showProtocal\(cPrimarykey)"
 
 // 是否竖滑过
-let cIsVerticalSlip: String = "isVerticalSlip\(cPrimarykey)"
+public let cIsVerticalSlip: String = "isVerticalSlip\(cPrimarykey)"
 // 是否横滑过
-let cIsSideslip: String = "isSideslip\(cPrimarykey)"
+public let cIsSideslip: String = "isSideslip\(cPrimarykey)"
 // 是否在浏览态/操作态 单击过(不包含播放结束)
-let cIsSingleClick: String = "isSingleClick\(cPrimarykey)"
+public let cIsSingleClick: String = "isSingleClick\(cPrimarykey)"
 // 是否显示过竖滑提示
-let cIsVerticalSlipTip: String = "isVerticalSlipTip\(cPrimarykey)"
+public let cIsVerticalSlipTip: String = "isVerticalSlipTip\(cPrimarykey)"
 // 是否显示过竖滑提示
-let cIsSideslipTip: String = "isSideslipTip\(cPrimarykey)"
+public let cIsSideslipTip: String = "isSideslipTip\(cPrimarykey)"
 // 是否显示过单击提示
-let cIsSingleClickTip: String = "isSingleClickTip\(cPrimarykey)"
+public let cIsSingleClickTip: String = "isSingleClickTip\(cPrimarykey)"
 // 是否显示过单击提示
-let cIsLikeTip: String = "isLikeTip\(cPrimarykey)"
+public let cIsLikeTip: String = "isLikeTip\(cPrimarykey)"
 // 是否显示过横屏提示
-let cIsLandscapeTip: String = "isLandscapeTip\(cPrimarykey)"
+public let cIsLandscapeTip: String = "isLandscapeTip\(cPrimarykey)"
 // 是否点击过
-let cIsUploadClick: String = "isUploadClick\(cPrimarykey)"
+public let cIsUploadClick: String = "isUploadClick\(cPrimarykey)"
 // 当前选中的tab
-let cSelectedTabIndex: String = "selectedTabIndex\(cPrimarykey)"
+public let cSelectedTabIndex: String = "selectedTabIndex\(cPrimarykey)"
 // 登录用户当前视频数
-let cMineVideos: String = "mineVideos\(cPrimarykey)"
+public let cMineVideos: String = "mineVideos\(cPrimarykey)"
 // 登录用户当前视频数
-let cMineFans: String = "mineFans\(cPrimarykey)"
+public let cMineFans: String = "mineFans\(cPrimarykey)"
 // 别人订阅我的数量
-let cOtherSubscribes: String = "otherSubscribes\(cPrimarykey)"
+public let cOtherSubscribes: String = "otherSubscribes\(cPrimarykey)"
 /// 登录用户关注数
-let cMineIdols: String = "mineIdols\(cPrimarykey)"
+public let cMineIdols: String = "mineIdols\(cPrimarykey)"
 // 登录用户头像
-let cAvatarUrl: String = "avatarUrl\(cPrimarykey)"
+public let cAvatarUrl: String = "avatarUrl\(cPrimarykey)"
 // 绑定手机号
-let cUpdatePhone: String = "updatePhone\(cPrimarykey)"
+public let cUpdatePhone: String = "updatePhone\(cPrimarykey)"
 // 添加视频
-let cInsertVideo: String = "InsertVideo\(cPrimarykey)"
+public let cInsertVideo: String = "InsertVideo\(cPrimarykey)"
 // 是否是新用户参加RedActivity
-let cIsNewRedActivityUser: String = "isNewRedActivityUser\(cPrimarykey)"
+public let cIsNewRedActivityUser: String = "isNewRedActivityUser\(cPrimarykey)"
 // 是否已经显示过昨天完成
-let cIsYesdayFinishRedActivity: String = "isYesdayFinishRedActivity\(cPrimarykey)"
+public let cIsYesdayFinishRedActivity: String = "isYesdayFinishRedActivity\(cPrimarykey)"
 // 是否已经显示过未完成昨天RedActivity
-let cIsYesdayNoFinishRedActivity: String = "isYesdayNoFinishRedActivity\(cPrimarykey)"
+public let cIsYesdayNoFinishRedActivity: String = "isYesdayNoFinishRedActivity\(cPrimarykey)"
 // 是否已经显示过今日已完成
-let cIsTodayFinishRedActivity: String = "isTodayFinishRedActivity\(cPrimarykey)"
+public let cIsTodayFinishRedActivity: String = "isTodayFinishRedActivity\(cPrimarykey)"
 // 是否已经显示过我的制作提示
-let cIsShowDraftBoxEntranceRemind: String = "isShowDraftBoxEntranceRemind\(cPrimarykey)"
+public let cIsShowDraftBoxEntranceRemind: String = "isShowDraftBoxEntranceRemind\(cPrimarykey)"
 // 是否展示过定位提醒
-let cIsShoWedLocationView: String = "isShoWedLocationView\(cPrimarykey)"
+public let cIsShoWedLocationView: String = "isShoWedLocationView\(cPrimarykey)"
 // 是否展示编辑封面提示
-let cIsShoWedEditCoverRemindView: String = "isShoWedEditCoverRemindView\(cPrimarykey)"
+public let cIsShoWedEditCoverRemindView: String = "isShoWedEditCoverRemindView\(cPrimarykey)"
 // 创作工具是否添加音乐去预览时提示
-let cIsShoWedAddBGMPreRemindView: String = "isShoWedAddBGMPreRemindView\(cPrimarykey)"
+public let cIsShoWedAddBGMPreRemindView: String = "isShoWedAddBGMPreRemindView\(cPrimarykey)"
 // 创作工具添加音乐提示
-let cShoWedAddBGMRemindView: String = "shoWedAddBGMRemindView\(cPrimarykey)"
+public let cShoWedAddBGMRemindView: String = "shoWedAddBGMRemindView\(cPrimarykey)"
 // 刷新已读数
-let cUpdateMsgNoReadCount: String = "updateMsgNoReadCount\(cPrimarykey)"
+public let cUpdateMsgNoReadCount: String = "updateMsgNoReadCount\(cPrimarykey)"
 
 // add by ak 是否显示过裁剪引导
-let cIsShowImageCropGuid: String = "isShowImageCropGuid\(cPrimarykey)"
+public let cIsShowImageCropGuid: String = "isShowImageCropGuid\(cPrimarykey)"
 // 编辑界面引导是否显示过 add by ak
-let cEditPageGuidIsShow: String = "cEditPageGuidIsShow\(cPrimarykey)"
+public let cEditPageGuidIsShow: String = "cEditPageGuidIsShow\(cPrimarykey)"
 // 画布引导
-let cEditPageCanvasGuidIsShow: String = "cEditPageCanvasGuidIsShow\(cPrimarykey)"
+public let cEditPageCanvasGuidIsShow: String = "cEditPageCanvasGuidIsShow\(cPrimarykey)"
 // 素材移动引导
-let cEditPageMaterialGuidIsShow: String = "cEditPageMaterialGuidIsShow\(cPrimarykey)"
+public let cEditPageMaterialGuidIsShow: String = "cEditPageMaterialGuidIsShow\(cPrimarykey)"
 // ******************* 通知key ******************* //
 
 // 关注
-let cAttendtionNotiKey: String = "attendtionNoti\(cPrimarykey)"
+public let cAttendtionNotiKey: String = "attendtionNoti\(cPrimarykey)"
 // 订阅
-let cSubscribeNotiKey: String = "subscribeNoti\(cPrimarykey)"
+public let cSubscribeNotiKey: String = "subscribeNoti\(cPrimarykey)"
 // 加入黑名单
-let cBannedNotiKey: String = "bannedNoti\(cPrimarykey)"
+public let cBannedNotiKey: String = "bannedNoti\(cPrimarykey)"
 // 喜欢
-let cFavoriteNotiKey: String = "favoriteNoti\(cPrimarykey)"
+public let cFavoriteNotiKey: String = "favoriteNoti\(cPrimarykey)"
 // 退出登录
-let cQuitSuccesssNotiKey: String = "quitSuccesssNoti\(cPrimarykey)"
+public let cQuitSuccesssNotiKey: String = "quitSuccesssNoti\(cPrimarykey)"
 // 登录成功
-let cLoginSuccesssNotiKey: String = "loginSuccesssNoti\(cPrimarykey)"
+public let cLoginSuccesssNotiKey: String = "loginSuccesssNoti\(cPrimarykey)"
 // 更新用户数据
-let cUpdateInfoNotiKey: String = "updateInfoNoti\(cPrimarykey)"
+public let cUpdateInfoNotiKey: String = "updateInfoNoti\(cPrimarykey)"
 // 是否显示手机登录 1-显示 0-不显示
-let cNeedLoginKey: String = "needLogin\(cPrimarykey)"
+public let cNeedLoginKey: String = "needLogin\(cPrimarykey)"
 // 发布视频成功通知
-let cPublishSuccessKey: String = "publishSuccess\(cPrimarykey)"
+public let cPublishSuccessKey: String = "publishSuccess\(cPrimarykey)"
 // 发布卡点视频成功通知
-let cPublishStuckPointSuccessKey: String = "publishStuckPointSuccess\(cPrimarykey)"
-let cUploadSuccessKey: String = "uploadSuccess\(cPrimarykey)"
+public let cPublishStuckPointSuccessKey: String = "publishStuckPointSuccess\(cPrimarykey)"
+public let cUploadSuccessKey: String = "uploadSuccess\(cPrimarykey)"
 /// 更新视频成功
-let cUpdateVideoSuccessKey: String = "updateVideoSuccess\(cPrimarykey)"
+public let cUpdateVideoSuccessKey: String = "updateVideoSuccess\(cPrimarykey)"
 /// 绑定手机号成功的通知
-let cBandingPhoneSuccessKey: String = "bandingPhoneSuccessKey\(cPrimarykey)"
+public let cBandingPhoneSuccessKey: String = "bandingPhoneSuccessKey\(cPrimarykey)"
 /// 图库添加图片的通知
-let cSelectedImageSuccessKey: String = "selectedImageSuccess\(cPrimarykey)"
+public let cSelectedImageSuccessKey: String = "selectedImageSuccess\(cPrimarykey)"
 /// 删除视频的通知
-let cDeleteVideoSuccessKey: String = "deleteVideoSuccess\(cPrimarykey)"
+public let cDeleteVideoSuccessKey: String = "deleteVideoSuccess\(cPrimarykey)"
 /// 导出背景音乐成功的通知
-let cExportBGMAudioSuccessKey: String = "exportBGMxAudioSuccess\(cPrimarykey)"
+public let cExportBGMAudioSuccessKey: String = "exportBGMxAudioSuccess\(cPrimarykey)"
 /// 下载资源成功/失败的key
-let cDownloadMatrialSuccessKey: String = "downloadMatrialSuccess\(cPrimarykey)"
+public let cDownloadMatrialSuccessKey: String = "downloadMatrialSuccess\(cPrimarykey)"
 /// 素材处理成功key
-let cVideoDealWithSuccessKey: String = "videoDealWithSuccess\(cPrimarykey)"
+public let cVideoDealWithSuccessKey: String = "videoDealWithSuccess\(cPrimarykey)"
 
 /// 批量下载资源成功/失败的key
-let cBatchDownloadMatrialSuccessKey: String = "batchDownloadMatrialSuccess\(cPrimarykey)"
+public let cBatchDownloadMatrialSuccessKey: String = "batchDownloadMatrialSuccess\(cPrimarykey)"
 /// 批量上传资源成功/失败的key
-let cBatchUploadMatrialSuccessKey: String = "batchUploadMatrialSuccessKey\(cPrimarykey)"
+public let cBatchUploadMatrialSuccessKey: String = "batchUploadMatrialSuccessKey\(cPrimarykey)"
 /// 再创作成功的key
-let cReCreateVideoSuccessKey: String = "reCreateVideoSuccess\(cPrimarykey)"
+public let cReCreateVideoSuccessKey: String = "reCreateVideoSuccess\(cPrimarykey)"
 /// 收藏/取消背景音乐的通知
-let cFavoriteBgmKey: String = "favoriteBgm\(cPrimarykey)"
+public let cFavoriteBgmKey: String = "favoriteBgm\(cPrimarykey)"
 /// 保存素材成功通知
-let cSaveMaterialSuccessKey: String = "saveMaterialSuccess\(cPrimarykey)"
+public let cSaveMaterialSuccessKey: String = "saveMaterialSuccess\(cPrimarykey)"
 /// 音频素材转换成文字成功
-let cAudioTransferSubTitleSuccessKey: String = "audioTransferSubTitleSuccess\(cPrimarykey)"
+public let cAudioTransferSubTitleSuccessKey: String = "audioTransferSubTitleSuccess\(cPrimarykey)"
 /// 无网
-let cLostNet: String = "lostNet\(cPrimarykey)"
+public let cLostNet: String = "lostNet\(cPrimarykey)"
 // 取消视频发布引导弹框
-let cDismissVideoMakeGuideKey: String = "dismissVideoMakeGuide\(cPrimarykey)"
+public let cDismissVideoMakeGuideKey: String = "dismissVideoMakeGuide\(cPrimarykey)"
 
 // oss 上传文件进度 add by ak
-let cOSSUploadFileProgress: String = "OSSUploadFileProgress\(cPrimarykey)"
+public let cOSSUploadFileProgress: String = "OSSUploadFileProgress\(cPrimarykey)"
 
 // 渠道
-let channelID = "AppStore"
+public let channelID = "AppStore"
 // 推送渠道
-let cPushChannel = "APPLE_TYPE"
+public let cPushChannel = "APPLE_TYPE"
 
 // MARK: 账号
 
 // 友盟账号
-let cUMAppkey: String = "5ee4a806978eea081640dfe4"
+public let cUMAppkey: String = "5ee4a806978eea081640dfe4"
 // bugly账号
-let cBuglyAppkey: String = "39065c15d0"
+public let cBuglyAppkey: String = "39065c15d0"
 // 阿里反馈账号
-let cAliFeedbackAppkey: String = "23591190"
+public let cAliFeedbackAppkey: String = "23591190"
 // 阿里反馈AppSecret
-let cAliFeedbackAppSecret: String = "3b831b2068aef36607886a3912ef4fbb"
+public let cAliFeedbackAppSecret: String = "3b831b2068aef36607886a3912ef4fbb"
 // 百度定位key
-let cBMKLocationAppkey: String = "buprQzBBojKbvDvED8Xix7xHA91ShAnL"
+public let cBMKLocationAppkey: String = "buprQzBBojKbvDvED8Xix7xHA91ShAnL"
 // 分享小程序ID
-let cShareWeappRawId: String = "gh_ecd1ea0b84cf"
+public let cShareWeappRawId: String = "gh_ecd1ea0b84cf"
 

+ 168 - 168
BFFramework/Classes/Utils/PQRequestURLUtil.swift

@@ -9,369 +9,369 @@
 import UIKit
 
 // 票圈视频主域名-线上环境
-let onlineLongvideoapi = "https://speed.piaoquantv.com/longvideoapi/"
+public let onlineLongvideoapi = "https://speed.piaoquantv.com/longvideoapi/"
 // 通用域名-eg:数据上报-线上环境
-let onlineCommonapi = "https://common.piaoquantv.com/commonapi/"
+public let onlineCommonapi = "https://common.piaoquantv.com/commonapi/"
 // 视频创作相关域名-线上环境
-let onlineClipapiApi = "https://clipapi.piaoquantv.com/longvideoapi/"
+public let onlineClipapiApi = "https://clipapi.piaoquantv.com/longvideoapi/"
 // 创作工具搜索素材相关域名-线上环境
-let onlineMaterialSearchApi = "https://search-material.piaoquantv.com/"
+public let onlineMaterialSearchApi = "https://search-material.piaoquantv.com/"
 // 消息相关域名-线上环境
-let onlineMessageApi = "https://messageapi.piaoquantv.com/"
+public let onlineMessageApi = "https://messageapi.piaoquantv.com/"
 
 // 票圈视频主域名-预发布环境
-let preLongvideoapi = "https://prespeed.piaoquantv.com/longvideoapi/"
+public let preLongvideoapi = "https://prespeed.piaoquantv.com/longvideoapi/"
 // 通用域名-eg:数据上报-预发布环境
-let preCommonapi = "https://precommon.piaoquantv.com/commonapi/"
+public let preCommonapi = "https://precommon.piaoquantv.com/commonapi/"
 // 创作工具搜索素材相关域名-预发布环境
-let preMaterialSearchApi = "https://search-material-pre.piaoquantv.com/"
+public let preMaterialSearchApi = "https://search-material-pre.piaoquantv.com/"
 // 消息相关域名-预发布环境
-let preMessageApi = "https://messageapipre.piaoquantv.com/"
+public let preMessageApi = "https://messageapipre.piaoquantv.com/"
 
 // 票圈视频主域名-测试环境
-let testLongvideoapi = "https://videotest.yishihui.com/longvideoapi/"
+public let testLongvideoapi = "https://videotest.yishihui.com/longvideoapi/"
 // 通用域名-eg:数据上报-测试环境
-let testCommonapi = "https://videotest.yishihui.com/commonapi/"
+public let testCommonapi = "https://videotest.yishihui.com/commonapi/"
 // 创作工具搜索素材相关域名-测试环境
-let testMaterialSearchApi = "https://search-material.yishihui.com/"
+public let testMaterialSearchApi = "https://search-material.yishihui.com/"
 // 消息相关域名-测试环境
-let testMessageApi = "https://messageapitest.yishihui.com/"
+public let testMessageApi = "https://messageapitest.yishihui.com/"
 
 // 票圈视频主域名-北京预发布环境
-let preBJLongvideoapi = "https://videoprebeijing.piaoquantv.com/longvideoapi/"
+public let preBJLongvideoapi = "https://videoprebeijing.piaoquantv.com/longvideoapi/"
 // 通用域名-eg:数据上报-北京预发布环境
-let preBJCommonapi = "https://precommon.piaoquantv.com/commonapi/"
+public let preBJCommonapi = "https://precommon.piaoquantv.com/commonapi/"
 
-let categroyVideoList = "video/distribute/category/videoList/v2"
-let recommandPageList = "video/recommend/app/recommandPage/list"
+public let categroyVideoList = "video/distribute/category/videoList/v2"
+public let recommandPageList = "video/recommend/app/recommandPage/list"
 
 /// 白名单展示
-let datashowAllowUrl = "datashow/allow"
+public let datashowAllowUrl = "datashow/allow"
 /// 登录
-let login = "login/app"
+public let login = "login/app"
 /// 新增虚拟账号
-let generateVirtualUserUrl = "user/virtual/app/generateVirtualUser"
+public let generateVirtualUserUrl = "user/virtual/app/generateVirtualUser"
 /// 手机号注册
-let phoneRegisterUrl = "register/app/check"
+public let phoneRegisterUrl = "register/app/check"
 /// 手机号登录
-let phoneLoginUrl = "login/app/check"
+public let phoneLoginUrl = "login/app/check"
 /// 苹果账号登录
-let appleLoginUrl = "app/iphone/login"
+public let appleLoginUrl = "app/iphone/login"
 /** 退出登录 */
-let logoutUrl = "logout/app"
+public let logoutUrl = "logout/app"
 /** 注销账号 */
-let cancellationAccUrl = "user/info/addMockData"
+public let cancellationAccUrl = "user/info/addMockData"
 /** 更新用户个人信息 */
-let updateUserinfoUrl = "user/info/update"
+public let updateUserinfoUrl = "user/info/update"
 /** 查询用户状态 1有效,2 已删除,3 已屏蔽,4 敏感 */
-let userStatusUrl = "user/info/getUserStatus"
+public let userStatusUrl = "user/info/getUserStatus"
 /** 更新用户个人信息 */
-let ossTempTokenUrl = "oss/getOssTempToken"
+public let ossTempTokenUrl = "oss/getOssTempToken"
 // add by ak 取 STS token uri
-let getStsTokenUrl = "oss/getStsToken"
+public let getStsTokenUrl = "oss/getStsToken"
 /** 谁的关注 */
-let idolsUrl = "user/idols"
+public let idolsUrl = "user/idols"
 /** 谁的粉丝 */
-let fansUrl = "user/fans"
+public let fansUrl = "user/fans"
 /** 我的订阅列表 */
-let mySubscribesUrl = "user/mySubscribes"
+public let mySubscribesUrl = "user/mySubscribes"
 /** 订阅我的列表 */
-let otherSubscribesUrl = "user/otherSubscribes"
+public let otherSubscribesUrl = "user/otherSubscribes"
 /** 个人主页头部信息 */
-let homepageHeadUrl = "user/info/homepageHead"
+public let homepageHeadUrl = "user/info/homepageHead"
 /** 获取用户扩展信息 */
-let userInfoExtUrl = "user/info/getUserInfoExt"
+public let userInfoExtUrl = "user/info/getUserInfoExt"
 /** 某人的收藏夹集合 */
-let userVideoFavoritesUrl = "videoFavorite/loadUserVideoFavorites"
+public let userVideoFavoritesUrl = "videoFavorite/loadUserVideoFavorites"
 
 /** 发送手机验证码 */
-let sendIndetifyCodeUrl = "sendIndetifyCode"
+public let sendIndetifyCodeUrl = "sendIndetifyCode"
 /** 验证手机验证码 */
-let checkIndetifyCodeUrl = "checkIndetifyCode"
+public let checkIndetifyCodeUrl = "checkIndetifyCode"
 /** 修改手机号 */
-let updatePhoneUrl = "savePhone"
+public let updatePhoneUrl = "savePhone"
 /** 最热列表 */
-let hotByCollectionIdUrl = "video/v2/loadHotVideosByCollectionId"
+public let hotByCollectionIdUrl = "video/v2/loadHotVideosByCollectionId"
 /** 最新列表 */
-let latelyByCollectionIdUrl = "video/v2/loadLatelyVideosByCollectionId"
+public let latelyByCollectionIdUrl = "video/v2/loadLatelyVideosByCollectionId"
 /** 自己喜欢列表 */
-let favoriteUrl = "video/v2/favorite/list"
+public let favoriteUrl = "video/v2/favorite/list"
 /** 视频分享列表 */
-let shareRecordListUrl = "video/shareRecordList"
+public let shareRecordListUrl = "video/shareRecordList"
 /** 关注某人 */
-let followUrl = "user/follow"
+public let followUrl = "user/follow"
 /** 取消关注某人 */
-let unfollowUrl = "user/unfollow"
+public let unfollowUrl = "user/unfollow"
 /** 订阅某人 */
-let subscribeUrl = "user/subscribe"
+public let subscribeUrl = "user/subscribe"
 /** 取消订阅某人 */
-let unsubscribe = "user/unsubscribe"
+public let unsubscribe = "user/unsubscribe"
 /** 收藏视频 */
-let favoriteVideoUrl = "video/favorite"
+public let favoriteVideoUrl = "video/favorite"
 /** 视频详情 */
-let videoDetailUrl = "video/v2/detail"
+public let videoDetailUrl = "video/v2/detail"
 /** 批量请求视频详情 */
-let videosDetailUrl = "video/v2/appCache/detail"
+public let videosDetailUrl = "video/v2/appCache/detail"
 /** 发布视频 */
-let videoSendUrl = "video/send"
+public let videoSendUrl = "video/send"
 /** 修改视频 */
-let updateVideoUrl = "video/updateVideo"
+public let updateVideoUrl = "video/updateVideo"
 /** 删除视频 */
-let deleteVideoUrl = "video/deleteVideo"
+public let deleteVideoUrl = "video/deleteVideo"
 /// 获取视频封面
-let vodeoCoverImageUrl = "video/getCoverImagePaths"
+public let vodeoCoverImageUrl = "video/getCoverImagePaths"
 
 /// 关注人列表
-let followedSingleUrl = "user/followed/single"
+public let followedSingleUrl = "user/followed/single"
 /// 关注视频列表
-let attendtionUrl = "user/followed/list"
+public let attendtionUrl = "user/followed/list"
 /// 关注视频更新数量(小红点)
-let attendtionInfoUrl = "user/followed/info"
+public let attendtionInfoUrl = "user/followed/info"
 /** 取消收藏视频 */
-let unfavoriteVideoUrl = "video/unfavorite"
+public let unfavoriteVideoUrl = "video/unfavorite"
 /** 关注人头像 */
-let idolsUpdatedUrl = "user/idolsUpdated"
+public let idolsUpdatedUrl = "user/idolsUpdated"
 /** 关注人卡片 */
-let recommendUserCardUrl = "user/info/getRecommendUserCard"
+public let recommendUserCardUrl = "user/info/getRecommendUserCard"
 /** 关注人卡片不喜欢 */
-let userCardunFollowUrl = "user/info/unFollowUid"
+public let userCardunFollowUrl = "user/info/unFollowUid"
 /** 举报视频原因列表 */
-let reportVideoListUrl = "video/report/reason/list"
+public let reportVideoListUrl = "video/report/reason/list"
 /** 举报用户原因列表 */
-let reportUserListUrl = "user/info/report/reason/list"
+public let reportUserListUrl = "user/info/report/reason/list"
 /** 举报某个视频 */
-let reportVideoUrl = "video/report"
+public let reportVideoUrl = "video/report"
 /** 举报某个用户 */
-let reportUserUrl = "user/info/report"
+public let reportUserUrl = "user/info/report"
 /** 拉黑某个用户 */
-let bannedUserUrl = "user/info/black"
+public let bannedUserUrl = "user/info/black"
 /** 取消拉黑某个用户 */
-let unBannedUserUrl = "user/info/unBlack"
+public let unBannedUserUrl = "user/info/unBlack"
 /** 某个用户是否被拉黑 */
-let isBannedUserUrl = "user/info/isBlack"
+public let isBannedUserUrl = "user/info/isBlack"
 /** 黑明单列表 */
-let bannedUserListUrl = "user/info/blackList"
+public let bannedUserListUrl = "user/info/blackList"
 /** 不感兴趣某个视频 */
-let hateVideoUrl = "videoHated/hate"
+public let hateVideoUrl = "videoHated/hate"
 /** 获取分享h5页面 */
-let h5ShareLinkUrl = "video/app/share/getVideoH5ShareLink"
+public let h5ShareLinkUrl = "video/app/share/getVideoH5ShareLink"
 /** 获取分享微信好友数据 */
-let wxFriendUrl = "video/app/share/getVideoAppShareWxFriendData"
+public let wxFriendUrl = "video/app/share/getVideoAppShareWxFriendData"
 /** 视频播放上报 */
-let reportPlayUrl = "measure/report/play"
+public let reportPlayUrl = "measure/report/play"
 /** 系统设置 */
-let systemConfigUrl = "sys/config"
+public let systemConfigUrl = "sys/config"
 /** 系统设置(新) */
-let systemAppConfigUrl = "sys/app/config"
+public let systemAppConfigUrl = "sys/app/config"
 /** 用户协议 */
-let cUserProtocol = "https://rescdn.yishihui.com/agreement/piaoquanspeedservice.html"
+public let cUserProtocol = "https://rescdn.yishihui.com/agreement/piaoquanspeedservice.html"
 /** 隐私政策 */
-let cPrivacy = "https://rescdn.yishihui.com/agreement/piaoquanspeedprivacyagreement.html"
+public let cPrivacy = "https://rescdn.yishihui.com/agreement/piaoquanspeedprivacyagreement.html"
 /** 互联网管理规定 */
-let cNetManagePrivacy = "http://www.cac.gov.cn/2017-08/25/c_1121541842.htm"
+public let cNetManagePrivacy = "http://www.cac.gov.cn/2017-08/25/c_1121541842.htm"
 // ***************** 埋点上报地址 **********************//
-let downLoadUrl = "https://rescdn.yishihui.com/"
+public let downLoadUrl = "https://rescdn.yishihui.com/"
 // 记录播放的视频
-let videoPlayReportUrl = "video/played"
+public let videoPlayReportUrl = "video/played"
 // 记录realPlay播放的视频
-let videoRealPlayReportUrl = "video/realPlayed"
+public let videoRealPlayReportUrl = "video/realPlayed"
 // 记录刷过的视频
-let videoViewReportUrl = "video/view"
+public let videoViewReportUrl = "video/view"
 // 上报视频动作记录
-let videoActionReportUrl = "video/videoActionReport"
+public let videoActionReportUrl = "video/videoActionReport"
 // 通用上报
-let staticsFrontendReportUrl = "statistics/uploadLogFromFrontend"
+public let staticsFrontendReportUrl = "statistics/uploadLogFromFrontend"
 // 通用上报-行为上报
-let staticsloadcLickReportUrl = "statistics/uploadcLickInfo"
+public let staticsloadcLickReportUrl = "statistics/uploadcLickInfo"
 // 上传行为上报
-let uploadOperationInfoReportUrl = "statistics/uploadOperationInfo"
+public let uploadOperationInfoReportUrl = "statistics/uploadOperationInfo"
 // 用户分享的上报
-let userShareReportUrl = "user/share/report"
+public let userShareReportUrl = "user/share/report"
 // 上报分享视频给微信朋友的行为
-let userShareFriendReportUrl = "video/shared/weixin/friend"
+public let userShareFriendReportUrl = "video/shared/weixin/friend"
 // 上报分享视频给朋友圈的行为
-let userShareH5ReportUrl = "video/shared/h5"
+public let userShareH5ReportUrl = "video/shared/h5"
 
 // 推送点击上报
-let pushActionReportUrl = "push/action/report"
+public let pushActionReportUrl = "push/action/report"
 // 上报DeviceToken
-let pushDeviceTokenReportUrl = "push/device/addOrUpdate"
+public let pushDeviceTokenReportUrl = "push/device/addOrUpdate"
 
 // ***************** 活动相关地址 **********************//
 
 // 参加活动
-let payActivityMoneyUrl = "order/payActivityMoney"
+public let payActivityMoneyUrl = "order/payActivityMoney"
 // 查询状态
-let payOrderStatusUrl = "order/orderStatus"
+public let payOrderStatusUrl = "order/orderStatus"
 // 更新客户端状态
-let updatePayStatusUrl = "order/updateClientPayStatus"
+public let updatePayStatusUrl = "order/updateClientPayStatus"
 // 活动入口&触达
-let activityInfoUrl = "app/activity/getActivityInfo"
+public let activityInfoUrl = "app/activity/getActivityInfo"
 // 立即报名
-let joinActivityUrl = "app/activity/joinActivity"
+public let joinActivityUrl = "app/activity/joinActivity"
 // 手动改变活动状态
-let updateActivityStatusUrl = "app/activity/updateWxAppActivityByStatus"
+public let updateActivityStatusUrl = "app/activity/updateWxAppActivityByStatus"
 /// 邀请好友
-let inviteFriendJoinUrl = "app/activity/inviteFriendJoin"
+public let inviteFriendJoinUrl = "app/activity/inviteFriendJoin"
 
 // ***************** 搜索相关地址 **********************//
 
 // 搜索用户跟视频
-let searchUserAndVideoUrl = "search/app/userandvideo/list"
+public let searchUserAndVideoUrl = "search/app/userandvideo/list"
 // 搜索用户
-let searchUserUrl = "search/app/user/list"
+public let searchUserUrl = "search/app/user/list"
 // 搜索视频
-let searchVideoUrl = "search/app/video/list"
+public let searchVideoUrl = "search/app/video/list"
 // 热门视频
-let searchHotVideoUrl = "search/app/hot/videos"
+public let searchHotVideoUrl = "search/app/hot/videos"
 // 热门词
-let searchHotWordsUrl = "search/app/hot/words"
+public let searchHotWordsUrl = "search/app/hot/words"
 // 搜索的上报
-let searchReportUrl = "search/app/report"
+public let searchReportUrl = "search/app/report"
 
 // ***************** 视频编辑相关地址 **********************//
 
 // 取发音人
-let listAllVoicesUrl = "producevideo/voice/listAllVoices"
+public let listAllVoicesUrl = "producevideo/voice/listAllVoices"
 
 // 收藏发音人
-let favoriteVoiceUrl = "producevideo/voice/favoriteVoice"
+public let favoriteVoiceUrl = "producevideo/voice/favoriteVoice"
 // 取消收藏发音人
-let unFavoriteVoiceUrl = "producevideo/voice/unFavoriteVoice"
+public let unFavoriteVoiceUrl = "producevideo/voice/unFavoriteVoice"
 // 试听文字语音
-let listeningTextSpeechUrl = "producevideo/listeningTextSpeech"
+public let listeningTextSpeechUrl = "producevideo/listeningTextSpeech"
 // 文字转语音
-let sectionTextSpeechSynthesizeUrl = "producevideo/sectionTextSpeechSynthesize"
+public let sectionTextSpeechSynthesizeUrl = "producevideo/sectionTextSpeechSynthesize"
 // 取草稿箱列表
-let listUserDraftboxUrl = "producevideo/draftbox/listUserDraftbox"
+public let listUserDraftboxUrl = "producevideo/draftbox/listUserDraftbox"
 
 // 取草稿箱信息
-let draftboxGetSdataUrl = "producevideo/draftbox/getSdata"
+public let draftboxGetSdataUrl = "producevideo/draftbox/getSdata"
 
 // 收藏列表
-let listUserfavoriteVoicesUrl = "producevideo/voice/listUserfavoriteVoices"
+public let listUserfavoriteVoicesUrl = "producevideo/voice/listUserfavoriteVoices"
 
 // 取nsl token
-let getNlsAccessTokenUrl = "producevideo/voice/getNlsAccessToken"
+public let getNlsAccessTokenUrl = "producevideo/voice/getNlsAccessToken"
 
 // 取发音人的详细信息
-let getVoiceInfoUrl = "producevideo/voice/getVoiceInfo"
+public let getVoiceInfoUrl = "producevideo/voice/getVoiceInfo"
 
 // 获取所有引导视频
-let guideVideosUrl = "producevideo/guide/listAllGuideVideos"
+public let guideVideosUrl = "producevideo/guide/listAllGuideVideos"
 // 获取背景音乐分类
-let bgmCategoryListUrl = "producevideo/bgm/app/getAllBgmCates"
+public let bgmCategoryListUrl = "producevideo/bgm/app/getAllBgmCates"
 // 获取某个分类下的背景音乐
-let bgmListUrl = "producevideo/bgm/pageCateBgm"
+public let bgmListUrl = "producevideo/bgm/pageCateBgm"
 // 收藏背景音乐列表
-let bgmFavoriteListUrl = "producevideo/bgm/listUserFavoriteBgms/v2"
+public let bgmFavoriteListUrl = "producevideo/bgm/listUserFavoriteBgms/v2"
 // 收藏某个背景音乐
-let favoriteBGMUrl = "producevideo/bgm/favoriteBgm/v2"
+public let favoriteBGMUrl = "producevideo/bgm/favoriteBgm/v2"
 // 取消收藏某个背景音乐
-let unFavoriteBGMUrl = "producevideo/bgm/unFavoriteBgm/v2"
+public let unFavoriteBGMUrl = "producevideo/bgm/unFavoriteBgm/v2"
 // 获取背景音乐信息
-let getBgmInfoUrl = "producevideo/bgm/v2/getBgmInfo"
+public let getBgmInfoUrl = "producevideo/bgm/v2/getBgmInfo"
 
 /// 搜索素材推荐请求
-let searchRecommendMaterialUrl = "v1/recommend/flow"
+public let searchRecommendMaterialUrl = "v1/recommend/flow"
 /// 搜索素材请求
-let searchMaterialUrl = "v1/search/flow"
+public let searchMaterialUrl = "v1/search/flow"
 /// 搜索背景音乐
-let searchBGMMaterialUrl = "music/search"
+public let searchBGMMaterialUrl = "music/search"
 // 取视频真地址如抖音
-let getVideoAddressUrl = "v1/search/getVideoAddress"
+public let getVideoAddressUrl = "v1/search/getVideoAddress"
 /// 通过md5查已上传的素材
-let materialByContentMd5Url = "producevideo/material/getMaterialByContentMd5"
+public let materialByContentMd5Url = "producevideo/material/getMaterialByContentMd5"
 /// 获取素材vod上传凭证
-let materialUploadAuthUrl = "producevideo/material/createMaterialUploadAuth"
+public let materialUploadAuthUrl = "producevideo/material/createMaterialUploadAuth"
 /// 批量获取素材vod上传凭证
-let batchMaterialUploadAuthUrl = "producevideo/material/batchCreateMaterialUploadAuth"
+public let batchMaterialUploadAuthUrl = "producevideo/material/batchCreateMaterialUploadAuth"
 /// 获取素材oss上传凭证
-let materialUploadStsTokenUrl = "oss/producevideo/getStsToken"
+public let materialUploadStsTokenUrl = "oss/producevideo/getStsToken"
 /// 保存素材
-let saveMaterialUrl = "producevideo/material/saveMaterial"
+public let saveMaterialUrl = "producevideo/material/saveMaterial"
 /// 音频素材转换成文字
-let audioMaterialTransferTextUrl = "producevideo/material/audioMaterialTransferText"
+public let audioMaterialTransferTextUrl = "producevideo/material/audioMaterialTransferText"
 /// 素材所有者用户信息
-let getMaterialOwnerUserInfoUrl = "producevideo/material/getMaterialOwnerUserInfo"
+public let getMaterialOwnerUserInfoUrl = "producevideo/material/getMaterialOwnerUserInfo"
 
 /// 保存草稿箱
-let saveDraftboxUrl = "producevideo/draftbox/save/v2"
+public let saveDraftboxUrl = "producevideo/draftbox/save/v2"
 /// 删除草稿箱
-let deleteDraftboxUrl = "producevideo/draftbox/delete"
+public let deleteDraftboxUrl = "producevideo/draftbox/delete"
 /// 批量删除草稿箱
-let deleteMultiDraftboxUrl = "producevideo/draftbox/deleteMulti"
+public let deleteMultiDraftboxUrl = "producevideo/draftbox/deleteMulti"
 /// 复制草稿箱
-let copyDraftboxUrl = "producevideo/draftbox/copy"
+public let copyDraftboxUrl = "producevideo/draftbox/copy"
 /// 修改草稿箱名称
-let updateDraftboxTitleUrl = "producevideo/draftbox/updateTitle"
+public let updateDraftboxTitleUrl = "producevideo/draftbox/updateTitle"
 /// 草稿箱数量
-let draftboxUserCountUrl = "producevideo/draftbox/countUserDraftbox"
+public let draftboxUserCountUrl = "producevideo/draftbox/countUserDraftbox"
 /// 保存合成视频项目数据
-let saveProjectUrl = "producevideo/saveProject"
+public let saveProjectUrl = "producevideo/saveProject"
 /// 更新合成视频项目数据
-let updateProjectUrl = "producevideo/updateProject"
+public let updateProjectUrl = "producevideo/updateProject"
 /// 发布视频后上报
-let reportSendVideoUrl = "producevideo/reportSendVideo"
+public let reportSendVideoUrl = "producevideo/reportSendVideo"
 // 文本断句 URL  t1 to t2
-let phraseSentenceURL = "producevideo/phraseSentence"
+public let phraseSentenceURL = "producevideo/phraseSentence"
 // 再创作-从项目中复制草稿
-let copyFromProjectURL = "producevideo/draftbox/copyFromProject"
+public let copyFromProjectURL = "producevideo/draftbox/copyFromProject"
 // 再创作视频列表
-let listReproduceVideoURL = "producevideo/listReproduceVideo"
+public let listReproduceVideoURL = "producevideo/listReproduceVideo"
 
 // ***************** 站内消息相关地址 **********************//
 
 // 站内消息埋点上报
-let messagePeportUrl = "message/report/station"
+public let messagePeportUrl = "message/report/station"
 // 消息未读数
-let messageUnReadInfoUrl = "message/getUnReadInfo"
+public let messageUnReadInfoUrl = "message/getUnReadInfo"
 // 常规消息列表
-let messageNormalListUrl = "message/normal/list"
+public let messageNormalListUrl = "message/normal/list"
 // 删除消息
-let messageDeleteUrl = "message/delete"
+public let messageDeleteUrl = "message/delete"
 // 常规消息已读
-let messageNormalReadUrl = "message/normal/read"
+public let messageNormalReadUrl = "message/normal/read"
 // 某种类型常规消息全部已读
-let messageReadAllUrl = "message/normal/readAllByMsgType"
+public let messageReadAllUrl = "message/normal/readAllByMsgType"
 // 分享空间消息列表
-let messageShareSpaceListUrl = "message/sharespace/list"
+public let messageShareSpaceListUrl = "message/sharespace/list"
 // 分享空间子类型消息列表
-let messageShareSpaceSubListUrl = "message/sharespace/sub/list"
+public let messageShareSpaceSubListUrl = "message/sharespace/sub/list"
 /// 某条分享动态的子类型消息数量信息
-let messageShareSpaceSubCountInfoUrl = "message/sharespace/getSubCountInfo"
+public let messageShareSpaceSubCountInfoUrl = "message/sharespace/getSubCountInfo"
 
 // 分享空间消息全部已读
-let messageShareReadAllUrl = "message/sharespace/readAll"
+public let messageShareReadAllUrl = "message/sharespace/readAll"
 // 某条分享空间消息已读
-let messageShareReadUrl = "message/sharespace/read"
+public let messageShareReadUrl = "message/sharespace/read"
 // 删除分享空间消息
-let messageDeleteShareUrl = "message/sharespace/deleteRecord"
+public let messageDeleteShareUrl = "message/sharespace/deleteRecord"
 // 分享空间某条动态的子类型消息全部已读
-let messageReadAllBySubMsgTypeUrl = "message/sharespace/readAllBySubMsgType"
+public let messageReadAllBySubMsgTypeUrl = "message/sharespace/readAllBySubMsgType"
 // 分享空间某条动态的消息全部已读
-let messageReadAllByShareIdUrl = "message/sharespace/readAllByShareId"
+public let messageReadAllByShareIdUrl = "message/sharespace/readAllByShareId"
 
 // 某条分享动态的所有未读数 add by ak commentCount enjoinCount shareCount
-let messageShareGetUnReadInfoUrl = "message/sharespace/getUnReadInfo"
+public let messageShareGetUnReadInfoUrl = "message/sharespace/getUnReadInfo"
 // 分享空间行为汇总数 API1
-let messageSharespaceGetCountInfoUrl = "video/sharespace/app/getCountInfo"
+public let messageSharespaceGetCountInfoUrl = "video/sharespace/app/getCountInfo"
 // 分享空间-评论列表 API1
-let messagePageCommentRecordUrl = "video/sharespace/app/pageCommentRecord"
+public let messagePageCommentRecordUrl = "video/sharespace/app/pageCommentRecord"
 // 分享空间-喜欢列表 API1
-let messagePageFavoriteRecordUrl = "video/sharespace/app/pageFavoriteRecord"
+public let messagePageFavoriteRecordUrl = "video/sharespace/app/pageFavoriteRecord"
 // 分享空间-播放列表 API1
-let messagePagePlayRecordUrl = "video/sharespace/app/pagePlayRecord"
+public let messagePagePlayRecordUrl = "video/sharespace/app/pagePlayRecord"
 // 分享空间-分享列表 API1
-let messagePageShareRecordUrl = "video/sharespace/app/pageShareRecord"
+public let messagePageShareRecordUrl = "video/sharespace/app/pageShareRecord"
 
 // ***************** 卡点视频相关地址 **********************//
 // 卡点音乐分类列表
-let stuckPointMusicCategoryUrl = "/producevideo/music/listRhythmMusicTag"
+public let stuckPointMusicCategoryUrl = "/producevideo/music/listRhythmMusicTag"
 // 卡点音乐某个分类下列表
-let stuckPointMusicPageUrl = "/producevideo/music/listRhythmMusic"
+public let stuckPointMusicPageUrl = "/producevideo/music/listRhythmMusic"
 // 获取某个音乐的卡点数据
-let stuckPointMusicDetailUrl = "/producevideo/music/getRhythmMusicData"
+public let stuckPointMusicDetailUrl = "/producevideo/music/getRhythmMusicData"
 // 获取项目的卡点音乐信息
-let stuckPointProjectMusicInfoUrl = "/producevideo/getProjectRhythmMusicInfo"
+public let stuckPointProjectMusicInfoUrl = "/producevideo/getProjectRhythmMusicInfo"
 

+ 5 - 5
BFFramework/Classes/Utils/PQSingletoMemoryUtil.swift

@@ -11,12 +11,12 @@ import Photos
 // MARK: - 内存缓存数据
 
 /// 内存缓存数据
-class PQSingletoMemoryUtil: NSObject {
-    static let shared = PQSingletoMemoryUtil()
+public class PQSingletoMemoryUtil: NSObject {
+    public static let shared = PQSingletoMemoryUtil()
     var isShowAttendPoint: Bool = false // 是否有关注更新
     var attendIdosUpdateCount: Int = 0 // 关注更新条数
     var isLeftSlipRemind: Bool = false
-    var needLogin: Bool = false // 是否需要显示手机登录
+    public var needLogin: Bool = false // 是否需要显示手机登录
     var isFinishedCoging: Bool = false // 是否已完成配置请求
     var isFinishedAlias: Bool = false // 是否完成绑定别名
     var selectedTabIndex: String?
@@ -129,11 +129,11 @@ class PQSingletoMemoryUtil: NSObject {
         }
     }
 
-    override func copy() -> Any {
+    public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }

+ 10 - 10
BFFramework/Classes/Utils/PQSingletonEnvUtil.swift

@@ -10,17 +10,17 @@ import Foundation
 import KeychainAccess
 
 // add by ak 开发和发布版本的不同设置  1 为正式版本发布的苹果  0 是测试 XXXX 上传苹果前要检查
-let DEVELOPMENT_ENVIRONMENT: Int = 0
+public let DEVELOPMENT_ENVIRONMENT: Int = 0
 
-enum ENVMode: String {
+public enum ENVMode: String {
     case ENVModeOnline // 线上环境
     case ENVModePre // 预发布环境
     case ENVModeTest // 测试环境
     case ENVModeBJPre // 北京区预发布环境
 }
 
-class PQENVUtil {
-    var envMode: ENVMode {
+public class PQENVUtil {
+    public var envMode: ENVMode {
         let config = NSDictionary(contentsOfFile: Bundle.main.path(forResource: "PQConfig.plist", ofType: nil) ?? "")
         BFLog(message: "config  is  = \(String(describing: config))")
 
@@ -30,7 +30,7 @@ class PQENVUtil {
         return ENVMode(rawValue: enStr)!
     }
 
-    static let shared: PQENVUtil = {
+     static public let shared: PQENVUtil = {
         let instance = PQENVUtil()
         // setup code
 
@@ -38,7 +38,7 @@ class PQENVUtil {
     }()
 
     // 票圈视频主域名
-    var longvideoapi: String {
+   public var longvideoapi: String {
         switch envMode {
         case .ENVModeTest:
             return testLongvideoapi
@@ -52,7 +52,7 @@ class PQENVUtil {
     }
 
     // 通用域名-eg:数据上报
-    var commonapi: String {
+    public var commonapi: String {
         switch envMode {
         case .ENVModeTest:
             return testCommonapi
@@ -66,7 +66,7 @@ class PQENVUtil {
     }
 
     // 视频创作相关域名
-    var clipapiapi: String {
+    public var clipapiapi: String {
         switch envMode {
         case .ENVModeTest:
             return testLongvideoapi
@@ -78,7 +78,7 @@ class PQENVUtil {
     }
 
     // 创作工具搜索素材相关域名
-    var materialSearchApi: String {
+    public var materialSearchApi: String {
         switch envMode {
         case .ENVModeTest:
             return testMaterialSearchApi
@@ -90,7 +90,7 @@ class PQENVUtil {
     }
 
     // 消息相关域名
-    var messageApi: String {
+    public var messageApi: String {
         switch envMode {
         case .ENVModeTest:
             return testMessageApi

+ 31 - 31
BFFramework/Classes/Utils/PQThirdPlatformUtil.swift

@@ -37,7 +37,7 @@ class PQThirdPlatformUtil: NSObject {
 }
 
 // MARK: - bugly相关工具类
-class PQSingleBuglyUtil: NSObject {
+public class PQSingleBuglyUtil: NSObject {
     static let shared = PQSingleBuglyUtil()
     // 注册
     func register(appID:String) {
@@ -61,11 +61,11 @@ class PQSingleBuglyUtil: NSObject {
         super.init()
     }
 
-    override func copy() -> Any {
+   public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }
@@ -82,20 +82,20 @@ class PQSingleBuglyUtil: NSObject {
      let universalLink: String = "https://speed.piaoquantv.com/"
      let scope = "snsapi_userinfo"
  */
-class WXApiInfo:NSObject {
-    let state: String = ""
-    let appid: String = ""
-    let secret: String = ""
-    let universalLink: String = ""
-    let scope = ""
+public class WXApiInfo:NSObject {
+    public var state: String = ""
+    public var appid: String = ""
+    public var secret: String = ""
+    public var universalLink: String = ""
+    public var scope = ""
 }
-class PQSingletoWXApiUtil: NSObject {
-    static let shared = PQSingletoWXApiUtil()
+public class PQSingletoWXApiUtil: NSObject {
+    public  static let shared = PQSingletoWXApiUtil()
     var openId: String? // openID
     // 回调
-    var wxApiUtilHander: ((_ userData: [String: Any]?, _ errorMsg: String?) -> Void)?
+    public var wxApiUtilHander: ((_ userData: [String: Any]?, _ errorMsg: String?) -> Void)?
     var mAppInfo:WXApiInfo = WXApiInfo.init()
-    func registerApp(appInfo:WXApiInfo) {
+    public func registerApp(appInfo:WXApiInfo) {
         mAppInfo = appInfo
         #if DEBUG
             WXApi.startLog(by: .detail) { msg in
@@ -103,22 +103,22 @@ class PQSingletoWXApiUtil: NSObject {
             }
         #endif
         WXApi.registerApp(mAppInfo.appid, universalLink: mAppInfo.universalLink)
-        #if DEBUG
-            WXApi.checkUniversalLinkReady { step, result in
-                BFLog(message: "微信回调自检--\(step),result = \(result)")
-            }
-        #endif
+//        #if DEBUG
+//            WXApi.checkUniversalLinkReady { step, result in
+//                BFLog(message: "微信回调自检--\(step),result = \(result)")
+//            }
+//        #endif
     }
 
-    func handleOpen(url: URL) -> Bool {
+    public func handleOpen(url: URL) -> Bool {
         return WXApi.handleOpen(url, delegate: self)
     }
 
-    func handleOpenUniversalLink(userActivity: NSUserActivity) -> Bool {
+    public func handleOpenUniversalLink(userActivity: NSUserActivity) -> Bool {
         return WXApi.handleOpenUniversalLink(userActivity, delegate: self)
     }
 
-    func authorize() -> PQSingletoWXApiUtil {
+    public func authorize() -> PQSingletoWXApiUtil {
         if !isInstallWX() {
             if wxApiUtilHander != nil {
                 wxApiUtilHander!(nil, "您还未安装微信客户端!")
@@ -147,7 +147,7 @@ class PQSingletoWXApiUtil: NSObject {
     ///   - videoId: 视频ID type == 1时不为空
     ///   - pageSource: 页面pageSource type == 1时不为空
     /// - Returns: <#description#>
-    func share(type: Int = 1, scene: Int32, shareWeappRawId: String? = nil, title: String?, description: String?, imageUrl: String?, path: String?, videoId: String, pageSource: PAGESOURCE, shareId: String) -> PQSingletoWXApiUtil {
+    public func share(type: Int = 1, scene: Int32, shareWeappRawId: String? = nil, title: String?, description: String?, imageUrl: String?, path: String?, videoId: String, pageSource: PAGESOURCE, shareId: String) -> PQSingletoWXApiUtil {
         if !isInstallWX() {
             if wxApiUtilHander != nil {
                 wxApiUtilHander!(nil, "您还未安装微信客户端!")
@@ -207,7 +207,7 @@ class PQSingletoWXApiUtil: NSObject {
     /// 处理发起数据
     /// - Parameter response: <#response description#>
     /// - Returns: <#description#>
-    func dealWithPayParams(response: [String: Any]) -> PQSingletoWXApiUtil {
+    public func dealWithPayParams(response: [String: Any]) -> PQSingletoWXApiUtil {
         var partnerid: String = ""
         var prepayId: String = ""
         var nonceStr: String = ""
@@ -245,7 +245,7 @@ class PQSingletoWXApiUtil: NSObject {
     ///   - package: 商家根据财付通文档填写的数据和签名
     ///   - sign: 商家根据微信开放平台文档对数据做的签名
     /// - Returns: <#description#>
-    func requestPayReq(partnerid: String, prepayId: String, nonceStr: String, timeStamp: UInt32, package: String, sign: String) {
+    public func requestPayReq(partnerid: String, prepayId: String, nonceStr: String, timeStamp: UInt32, package: String, sign: String) {
         // 调起微信
         let payReq: PayReq = PayReq()
         payReq.partnerId = partnerid
@@ -260,7 +260,7 @@ class PQSingletoWXApiUtil: NSObject {
 
     /// 是否安装了微信
     /// - Returns: <#description#>
-    func isInstallWX() -> Bool {
+   public func isInstallWX() -> Bool {
         return UIApplication.shared.canOpenURL(URL(string: "weixin://")!)
     }
 
@@ -268,17 +268,17 @@ class PQSingletoWXApiUtil: NSObject {
         super.init()
     }
 
-    override func copy() -> Any {
+    public override func copy() -> Any {
         return self
     }
 
-    override func mutableCopy() -> Any {
+    public override func mutableCopy() -> Any {
         return self
     }
 }
 
 extension PQSingletoWXApiUtil: WXApiDelegate {
-    func onReq(_ req: BaseReq) {
+    public func onReq(_ req: BaseReq) {
         BFLog(message: "微信回调拉起 -- \(req)")
         if req.isKind(of: LaunchFromWXReq.self) && ((req as! LaunchFromWXReq).message.messageExt?.count ?? 0) > 0 {
             BFLog(message: "小程序回调数据--\(String(describing: (req as! LaunchFromWXReq).message.messageExt))")
@@ -286,12 +286,12 @@ extension PQSingletoWXApiUtil: WXApiDelegate {
         }
     }
 
-    func onResp(_ resp: BaseResp) {
+    public func onResp(_ resp: BaseResp) {
         BFLog(message: "微信回调返回 -- \(resp)")
 
         if resp.isKind(of: SendAuthResp.self) {
             if (resp as! SendAuthResp).state == mAppInfo.state {
-//                accessToken(code: (resp as! SendAuthResp).code!)
+                accessToken(code: (resp as! SendAuthResp).code!)
             } else {
                 if wxApiUtilHander != nil {
                     wxApiUtilHander!(nil, "网络不可用")
@@ -304,7 +304,7 @@ extension PQSingletoWXApiUtil: WXApiDelegate {
         }
     }
 
-    func accessToken(code: String) {
+    public func accessToken(code: String) {
         let url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=\(mAppInfo.appid)&secret=\(mAppInfo.secret)&code=\(code)&grant_type=authorization_code"
         DispatchQueue.global(qos: .userInitiated).async { [weak self] in
 

+ 7 - 7
BFFramework/Classes/Utils/SWNetRequest.swift

@@ -10,21 +10,21 @@ import Alamofire
 import UIKit
 
 // 默认超时时间
-let timeoutInterval: TimeInterval = 30
+public let timeoutInterval: TimeInterval = 30
 
 // MARK: - 错误
 
 /// 错误
-struct PQError: Error {
-    var msg: String? // 提示信息
-    var code: Int // 错误吗
+public struct PQError: Error {
+    public var msg: String? // 提示信息
+    public var code: Int // 错误吗
 
     init(msg: String?, code: Int = 0) {
         self.msg = msg
         self.code = code
     }
 
-    var localizedDescription: String {
+    public var localizedDescription: String {
         return msg ?? ""
     }
 }
@@ -32,7 +32,7 @@ struct PQError: Error {
 // MARK: - 网络请求
 
 /// 网络请求
-class SWNetRequest: NSObject {
+public class SWNetRequest: NSObject {
     static let sessionManager: Alamofire.SessionManager = {
         let configuration = URLSessionConfiguration.default
         configuration.timeoutIntervalForRequest = timeoutInterval
@@ -46,7 +46,7 @@ class SWNetRequest: NSObject {
     }()
 
     /// 回调方法
-    typealias completeHander = (_ responseobject: Any?, _ extData: [String: Any]?, _ error: PQError?, _ timeline: Timeline) -> Void
+    public typealias completeHander = (_ responseobject: Any?, _ extData: [String: Any]?, _ error: PQError?, _ timeline: Timeline) -> Void
     /// get请求
     public class func getRequestData(url: String, parames: [String: Any]?, encoding: ParameterEncoding = URLEncoding.default, timeoutInterval: TimeInterval = timeoutInterval, response: @escaping completeHander) {
         requestData(method: .get, encoding: encoding, url: url, parames: parames, timeoutInterval: timeoutInterval) { responseObject, extData, error, timeline in