al
liurenjie
2021-07-24 5c78b635bb8da25ce7c5587c2aacf8fbc203d731
al
2个文件已删除
69个文件已修改
1个文件已添加
860 ■■■■ 已修改文件
BuWanVideo2.0.xcodeproj/project.pbxproj 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0.xcworkspace/xcuserdata/aeline.xcuserdatad/UserInterfaceState.xcuserstate 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0.xcworkspace/xcuserdata/aeline.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/BuyVipController.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/BuyVipController.m 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/Assets.car 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/Info.plist 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ar.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/de.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/en.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/es.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/fr.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/hi.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/id.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/it.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ja.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ko.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/pt.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ru.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/th.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/version.txt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/vi.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/BUAdSDK 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/PangleNativeBannerView.h 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/PangleNativeInterstitialView.h 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/BUFoundation 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUBase64.h 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUFoundation.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BULogMacros.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BULogManager.h 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUPlayer.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/JSAPI.m 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/LookNoteController.m 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/NormolNavView.m 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/PPTVController.m 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/ListControlelr/ListController.m 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/MainBaseController.m 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendHeaderViewCell.m 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendThreeColumnCell.m 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendTwoColumnCell.m 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecpmmendTitleView.m 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/RecommendController.m 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/RecommendMainController.m 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/View/RecommendNavView.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/View/RecommendNavView.m 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/SubregionDetailViewController.m 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/YTHNetdata.m 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/searchDetailViewController.m 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/subregionView.m 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0.xcodeproj/project.pbxproj
@@ -187,10 +187,6 @@
        705F1F83251F1CA80065350E /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 705F1F68251F1CA70065350E /* MJRefreshAutoFooter.m */; };
        705F1F84251F1CA80065350E /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 705F1F6A251F1CA70065350E /* MJRefreshComponent.m */; };
        705F1F85251F1CA80065350E /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 705F1F6D251F1CA70065350E /* MJRefreshTrailer.m */; };
        706CECB9264F6F72001FBEB7 /* BUAdSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 706CECB5264F6F6F001FBEB7 /* BUAdSDK.framework */; };
        706CECBA264F6F72001FBEB7 /* BUFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 706CECB6264F6F71001FBEB7 /* BUFoundation.framework */; };
        706CECBB264F6F72001FBEB7 /* BUCNAuxiliary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 706CECB7264F6F72001FBEB7 /* BUCNAuxiliary.framework */; };
        706CECBC264F6F72001FBEB7 /* BUAdSDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 706CECB8264F6F72001FBEB7 /* BUAdSDK.bundle */; };
        706CECC0264F76C1001FBEB7 /* PPTVNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECBF264F76C1001FBEB7 /* PPTVNavView.m */; };
        706CECC5264F94CC001FBEB7 /* PPTVPppView.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECC4264F94CC001FBEB7 /* PPTVPppView.m */; };
        706CECC9264F97EB001FBEB7 /* PPTVPopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECC8264F97EB001FBEB7 /* PPTVPopCell.m */; };
@@ -200,6 +196,10 @@
        706CECD7264FB895001FBEB7 /* DWKWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECD3264FB895001FBEB7 /* DWKWebView.m */; };
        706CECDB264FB8CB001FBEB7 /* JSAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECDA264FB8CB001FBEB7 /* JSAPI.m */; };
        706CECDE264FC2A7001FBEB7 /* PPTVBottomVIpVIew.m in Sources */ = {isa = PBXBuildFile; fileRef = 706CECDD264FC2A7001FBEB7 /* PPTVBottomVIpVIew.m */; };
        70C4921426AC1D6600D044F7 /* BUAdSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70C4921026AC1D6200D044F7 /* BUAdSDK.framework */; };
        70C4921526AC1D6600D044F7 /* BUCNAuxiliary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70C4921126AC1D6400D044F7 /* BUCNAuxiliary.framework */; };
        70C4921626AC1D6600D044F7 /* BUFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70C4921226AC1D6600D044F7 /* BUFoundation.framework */; };
        70C4921726AC1D6600D044F7 /* BUAdSDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 70C4921326AC1D6600D044F7 /* BUAdSDK.bundle */; };
        70D5934525EA1FAE00438F1A /* PPTVController.m in Sources */ = {isa = PBXBuildFile; fileRef = 70D5934425EA1FAE00438F1A /* PPTVController.m */; };
        70ED36BC266233EC00E51E79 /* CWCarousel.m in Sources */ = {isa = PBXBuildFile; fileRef = 70ED36B6266233EC00E51E79 /* CWCarousel.m */; };
        70ED36BD266233EC00E51E79 /* CWFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 70ED36B8266233EC00E51E79 /* CWFlowLayout.m */; };
@@ -736,10 +736,6 @@
        705F1F6B251F1CA70065350E /* MJRefreshFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshFooter.h; sourceTree = "<group>"; };
        705F1F6C251F1CA70065350E /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJRefreshBackFooter.h; sourceTree = "<group>"; };
        705F1F6D251F1CA70065350E /* MJRefreshTrailer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshTrailer.m; sourceTree = "<group>"; };
        706CECB5264F6F6F001FBEB7 /* BUAdSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUAdSDK.framework; sourceTree = "<group>"; };
        706CECB6264F6F71001FBEB7 /* BUFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUFoundation.framework; sourceTree = "<group>"; };
        706CECB7264F6F72001FBEB7 /* BUCNAuxiliary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUCNAuxiliary.framework; sourceTree = "<group>"; };
        706CECB8264F6F72001FBEB7 /* BUAdSDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = BUAdSDK.bundle; sourceTree = "<group>"; };
        706CECBE264F76C1001FBEB7 /* PPTVNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PPTVNavView.h; sourceTree = "<group>"; };
        706CECBF264F76C1001FBEB7 /* PPTVNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PPTVNavView.m; sourceTree = "<group>"; };
        706CECC2264F7C31001FBEB7 /* PPTVDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PPTVDelegate.h; sourceTree = "<group>"; };
@@ -760,6 +756,10 @@
        706CECDA264FB8CB001FBEB7 /* JSAPI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JSAPI.m; sourceTree = "<group>"; };
        706CECDC264FC2A7001FBEB7 /* PPTVBottomVIpVIew.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PPTVBottomVIpVIew.h; sourceTree = "<group>"; };
        706CECDD264FC2A7001FBEB7 /* PPTVBottomVIpVIew.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PPTVBottomVIpVIew.m; sourceTree = "<group>"; };
        70C4921026AC1D6200D044F7 /* BUAdSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUAdSDK.framework; sourceTree = "<group>"; };
        70C4921126AC1D6400D044F7 /* BUCNAuxiliary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUCNAuxiliary.framework; sourceTree = "<group>"; };
        70C4921226AC1D6600D044F7 /* BUFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BUFoundation.framework; sourceTree = "<group>"; };
        70C4921326AC1D6600D044F7 /* BUAdSDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = BUAdSDK.bundle; sourceTree = "<group>"; };
        70D5934325EA1FAE00438F1A /* PPTVController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PPTVController.h; sourceTree = "<group>"; };
        70D5934425EA1FAE00438F1A /* PPTVController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PPTVController.m; sourceTree = "<group>"; };
        70ED36B6266233EC00E51E79 /* CWCarousel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CWCarousel.m; sourceTree = "<group>"; };
@@ -1064,14 +1064,13 @@
                184DBB321DDB0BB00034B39B /* libc++abi.tbd in Frameworks */,
                18F5CA971E1C862D001F526F /* libc++.tbd in Frameworks */,
                7B389BE21D61B2F90043A2F2 /* libc++.1.tbd in Frameworks */,
                706CECBB264F6F72001FBEB7 /* BUCNAuxiliary.framework in Frameworks */,
                2D732550212D6B5200E09821 /* WebP.framework in Frameworks */,
                2D73254E212D626B00E09821 /* YYWebImage.framework in Frameworks */,
                2D73254C212D626600E09821 /* YYCache.framework in Frameworks */,
                706CECBA264F6F72001FBEB7 /* BUFoundation.framework in Frameworks */,
                2D73254A212D626000E09821 /* YYImage.framework in Frameworks */,
                7B8AC4F01D5D802200450285 /* CFNetwork.framework in Frameworks */,
                7B8AC5221D5D822F00450285 /* CoreMotion.framework in Frameworks */,
                70C4921526AC1D6600D044F7 /* BUCNAuxiliary.framework in Frameworks */,
                7B8AC50A1D5D80A500450285 /* Security.framework in Frameworks */,
                7B8AC4EA1D5D7FFC00450285 /* libz.tbd in Frameworks */,
                7B8AC4F61D5D804100450285 /* CoreMedia.framework in Frameworks */,
@@ -1106,7 +1105,7 @@
                7B389BDC1D61B1D10043A2F2 /* ModelIO.framework in Frameworks */,
                1845BB4B209BF212009C639B /* PassKit.framework in Frameworks */,
                7B8AC52C1D5D828000450285 /* libz.1.2.5.tbd in Frameworks */,
                706CECB9264F6F72001FBEB7 /* BUAdSDK.framework in Frameworks */,
                70C4921426AC1D6600D044F7 /* BUAdSDK.framework in Frameworks */,
                7B1FF0DF1D6711CF00E6C207 /* libiconv.tbd in Frameworks */,
                1877D1791DCAE119000CEC83 /* JavaScriptCore.framework in Frameworks */,
                1877D1771DCAE100000CEC83 /* CoreData.framework in Frameworks */,
@@ -1124,6 +1123,7 @@
                7B8AC5141D5D810A00450285 /* Accelerate.framework in Frameworks */,
                7B8AC5121D5D80F700450285 /* libxml2.tbd in Frameworks */,
                7B8AC5021D5D807F00450285 /* MapKit.framework in Frameworks */,
                70C4921626AC1D6600D044F7 /* BUFoundation.framework in Frameworks */,
                7B8AC4FE1D5D806A00450285 /* EventKitUI.framework in Frameworks */,
                7B8AC4EC1D5D800B00450285 /* libsqlite3.0.tbd in Frameworks */,
                8619598F33C90A9D1035A2BD /* Pods_BuWanVideo2_0.framework in Frameworks */,
@@ -1584,10 +1584,10 @@
        7042C94A2515A4FE0017F5D8 /* CSJ */ = {
            isa = PBXGroup;
            children = (
                706CECB8264F6F72001FBEB7 /* BUAdSDK.bundle */,
                706CECB5264F6F6F001FBEB7 /* BUAdSDK.framework */,
                706CECB7264F6F72001FBEB7 /* BUCNAuxiliary.framework */,
                706CECB6264F6F71001FBEB7 /* BUFoundation.framework */,
                70C4921326AC1D6600D044F7 /* BUAdSDK.bundle */,
                70C4921026AC1D6200D044F7 /* BUAdSDK.framework */,
                70C4921126AC1D6400D044F7 /* BUCNAuxiliary.framework */,
                70C4921226AC1D6600D044F7 /* BUFoundation.framework */,
            );
            path = CSJ;
            sourceTree = "<group>";
@@ -2759,7 +2759,6 @@
                189787871D925B5D006245B9 /* GoogleAdTableViewCell.xib in Resources */,
                70ED36CB26623CCC00E51E79 /* 04.jpg in Resources */,
                7B1FF0A71D67094500E6C207 /* CellOne.xib in Resources */,
                706CECBC264F6F72001FBEB7 /* BUAdSDK.bundle in Resources */,
                7B59CC191D5B16DC000B357F /* ADCollectionReusableView.xib in Resources */,
                18D94EAC1ECD7B6E00B6FA54 /* newADCollectionViewCell.xib in Resources */,
                18BC12B21EDEA87D001E2FB0 /* LiveListTableViewCell.xib in Resources */,
@@ -2781,6 +2780,7 @@
                7B41E9A71D4A04AE00F05CE2 /* Main.storyboard in Resources */,
                18F254201DF0090900826AD0 /* FuLiSheViewController.xib in Resources */,
                7BC24A571D5074FC00F6D2D9 /* shufflingCollectionReusableView.xib in Resources */,
                70C4921726AC1D6600D044F7 /* BUAdSDK.bundle in Resources */,
                7B59CC051D5B15C4000B357F /* IntroductionCollectionViewCell.xib in Resources */,
                18F5CAAC1E1CFE8C001F526F /* PublishGoodsViewController.xib in Resources */,
                18B1C2661DB5B26B00AB709B /* LICENSE in Resources */,
@@ -3291,7 +3291,7 @@
                    "$(PROJECT_DIR)/BuWanVideo2.0/DKADSet_iOS_SDK_1.2.0_iphoneOS",
                    "$(PROJECT_DIR)/BuWanVideo2.0/GDT_iOS_SDK",
                );
                MARKETING_VERSION = 3.1.8;
                MARKETING_VERSION = 3.1.1;
                ONLY_ACTIVE_ARCH = YES;
                OTHER_LDFLAGS = (
                    "$(inherited)",
@@ -3443,7 +3443,7 @@
                    "$(PROJECT_DIR)/BuWanVideo2.0/DKADSet_iOS_SDK_1.2.0_iphoneOS",
                    "$(PROJECT_DIR)/BuWanVideo2.0/GDT_iOS_SDK",
                );
                MARKETING_VERSION = 3.1.8;
                MARKETING_VERSION = 3.1.1;
                ONLY_ACTIVE_ARCH = NO;
                OTHER_LDFLAGS = (
                    "$(inherited)",
BuWanVideo2.0.xcworkspace/xcuserdata/aeline.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
BuWanVideo2.0.xcworkspace/xcuserdata/aeline.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -3,22 +3,4 @@
   uuid = "297DA90A-ED47-4DCA-BC7A-5F76C81057DB"
   type = "0"
   version = "2.0">
   <Breakpoints>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            uuid = "4FDB6570-9BF4-4B73-BD73-DA65D2E09288"
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "BuWanVideo2.0/Recommend/lib/OC_CWCarousel/CWCarouselProtocol.h"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "12"
            endingLineNumber = "12"
            landmarkName = "unknown"
            landmarkType = "0">
         </BreakpointContent>
      </BreakpointProxy>
   </Breakpoints>
</Bucket>
BuWanVideo2.0/BuyVipController.h
@@ -16,6 +16,8 @@
@property (nonatomic) refrshData refrshData;
@property (nonatomic, copy) NSString *url;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/BuyVipController.m
@@ -71,11 +71,8 @@
    
    [self.webView customJavascriptDialogLabelTitles:@{@"alertTitle":@"Notification",@"alertBtn":@"OK"}];
    
    //192.168.3.135
    NSString *url = @"http://192.168.3.122:8848/tejia-web/dsbridge-test.html";
    //[[NSUserDefaults standardUserDefaults] objectForKey:VIPLINK];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:_url]];
    //[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.3.122:8848/tejia-web/dsbridge-test.html"]];
    [self.webView loadRequest:request];
}
BuWanVideo2.0/CSJ/BUAdSDK.bundle/Assets.car
Binary files differ
BuWanVideo2.0/CSJ/BUAdSDK.bundle/Info.plist
Binary files differ
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ar.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "قم بإستكمال التشغيل  للحصول على المكافآت";
"Wan" = "10 ألف";
"ViewDetail" = "عرض";
"CommitScore" = "%@ تصنيف (تصنيفات)";
BuWanVideo2.0/CSJ/BUAdSDK.bundle/de.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "Bis zum Ende wiedergeben,  um Prämien zu erhalten";
"Wan" = "Zehntausend";
"ViewDetail" = "Ansehen";
"CommitScore" = "%@ Rating(s)";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/en.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"ContinuePlaying" = "Keep on";
"GetRewardAfterPlaying" = "Finish playing to get rewards!";
"ViewDetail" = "View";
"CommitScore" = "%@ score";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/es.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "Terminar la reproducción  para reclamar recompensas";
"Wan" = "10";
"ViewDetail" = "Ver";
"CommitScore" = "%@ valoración(es)";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/fr.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "Terminez la lecture pour  obtenir vos récompenses";
"Wan" = "10 000";
"ViewDetail" = "Voir";
"CommitScore" = "%@ cote(s)";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/hi.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "रिवॉर्ड्स का दावा करने के  लिए पूरा देखें";
"Wan" = "10  हज़ार";
"ViewDetail" = "देखें";
"CommitScore" = "%@ रेटिंग";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/id.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "Selesaikan pemutaran  untuk mendapatkan reward";
"Wan" = "10  ribu";
"ViewDetail" = "Lihat";
"CommitScore" = "%@ peringkat";;
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/it.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "Riproduci tutto per  richiedere le ricompense";
"Wan" = "10  mila";
"ViewDetail" = "Visualizza";
"CommitScore" = "Valutazione(i) %@";
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ja.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"ContinuePlaying" = "つづける";
"GetRewardAfterPlaying" = "遊んで報酬をゲット!";
"ViewDetail" = "チェック";
"CommitScore" = "評価数:%@";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ko.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"ContinuePlaying" = "계속하다";
"GetRewardAfterPlaying" = "리워드는 게임 플레이 이후에 지급됩니다.";
"ViewDetail" = "체크";
"CommitScore" = "%@ 평점";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/pt.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"GetRewardAfterPlaying" = "Finalizar a execução para  solicitar as premiações";
"Wan" = "10  mil";
"ViewDetail" = "Visualizar";
"CommitScore" = "%@  classificação(ões)";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/ru.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "Завершите просмотр, чтобы  получить награду";
"Wan" = "10  тысяч";
"ViewDetail" = "Вид";
"CommitScore" = "Оценки: %@";
BuWanVideo2.0/CSJ/BUAdSDK.bundle/th.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "เล่นจนจบเพื่อรับรางวัล";
"Wan" = "1 หมื่น";
"ViewDetail" = "ดู";
"CommitScore" = "%@  คะแนน";
BuWanVideo2.0/CSJ/BUAdSDK.bundle/version.txt
@@ -1 +1 @@
3.6.1.2
3.8.0.1
BuWanVideo2.0/CSJ/BUAdSDK.bundle/vi.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "Chơi hết để giành phần  thưởng";
"Wan" = "10  nghìn";
"ViewDetail" = "Xem";
"CommitScore" = "%@ xếp hạng";
BuWanVideo2.0/CSJ/BUAdSDK.bundle/zh-Hans.lproj/BULanguage.strings
@@ -36,4 +36,5 @@
"ContinuePlaying" = "继续试玩";
"GetRewardAfterPlaying" = "试玩后才可领取奖励";
"ViewDetail" = "查看详情";
"CommitScore" = "%@个评分";
// Icon
BuWanVideo2.0/CSJ/BUAdSDK.bundle/zh-Hant.lproj/BULanguage.strings
@@ -36,3 +36,4 @@
"GetRewardAfterPlaying" = "試玩後才可領取獎勵";
"Wan" = "萬";
"ViewDetail" = "查看詳情";
"CommitScore" = "%@個評分";
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/BUAdSDK
Binary files differ
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDK.h
@@ -18,11 +18,16 @@
#import <BUAdSDK/BUMaterialMeta.h>
#import <BUAdSDK/BUPlayerPublicDefine.h>
#import <BUAdSDK/BUVideoAdView.h>
#import <BUAdSDK/BUVideoAdDelegate.h>
#import <BUAdSDK/BUVideoAdReportor.h>
#import <BUAdSDK/BUMopubAdMarkUpDelegate.h>
///customize dislike style
#import <BUAdSDK/BUDislike.h>
#import <BUAdSDK/BUDislikeWords.h>
#import <BUAdSDK/BUDislikeReportor.h>
#import <BUAdSDK/BUPersonalizationPrompts.h>
/// native ads
#import <BUAdSDK/BUNativeAd.h>
@@ -41,6 +46,7 @@
/// splash ads
#import <BUAdSDK/BUSplashAdView.h>
#import <BUAdSDK/BUSplashZoomOutView.h>
/// rewarded video ads
#import <BUAdSDK/BURewardedVideoModel.h>
@@ -57,7 +63,3 @@
/// test tools
#import <BUAdSDK/BUAdSDKTestToolManager.h>
/// pangle view
#import <BUAdSDK/PangleNativeBannerView.h>
#import <BUAdSDK/PangleNativeInterstitialView.h>
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKConfiguration.h
@@ -46,18 +46,17 @@
/// Custom set the CCPA of the user,CCPA is the short of General Data Protection Regulation,the interface only works in USA.
/// CCPA  0: "sale" of personal information is permitted, 1: user has opted out of "sale" of personal information -1: default
@property (nonatomic, strong) NSNumber *CCPA;
/// Custom set the debugLog to print debug Log.
/// debugLog 0: close debug log, 1: open debug log.
@property (nonatomic, strong) NSNumber *debugLog;
@property (nonatomic, strong) NSNumber *themeStatus;
/// Custom set the AB vid of the user. Array element type is NSNumber
@property (nonatomic, strong) NSArray<NSNumber *> *abvids;
/// Custom set the tob ab sdk version of the user.
@property (nonatomic, copy) NSString *abSDKVersion;
@property (atomic, copy) NSString *abSDKVersion;
/// Custom set idfa value
/// You can change its value at any time
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKError.h
@@ -72,5 +72,20 @@
    BUUnionMedialCheckError     = 40026,    // Non-international account request for overseas delivery system
    BUUnionSlotIDRenderMthodNoMatch = 40029,// The rendering method for slot ID does not match.
    
    BUErrorCodeSysError         = 50001     // ad server error
    BUUnionCpidChannelCodeError = 40030, // Huawei browse impex cpid channeld code does not match.
    BUUnionInternationalRequestCurrencyTypeError = 40031, // International request currency type is empty.
    BUUnionOpenRTBRequestTokenError    =40032, // OpenRTB request token is empty.
    BUUnionHardCodeError   =   40033, // Hard code not return ads, return message does not adjust.
    BUUnionSDKVersionTooLow   =40041, // SDK version is too low.
    BUUnionNewInterstitialStyleVersionError  =    40042, // New interstitial style use sdk version is too low. Plese upgrade SDK version to 3.5.5.0.
    BUUnionPreviewFlowInvalid   =40043, // Preview flow invalid.
    BUErrorCodeSysError         = 50001,     // ad server error
    BUErrorCodeNetworkError =   98764,  // network error.
    BUErrorCodeUndefined    =       98765, // error undefined
};
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUAdSDKManager.h
@@ -10,6 +10,11 @@
#import "BUAdSDKDefines.h"
#import "BUMopubAdMarkUpDelegate.h"
typedef NS_ENUM(NSInteger, BUAdSDKInitializationState) {
    BUAdSDKInitializationStateNotReady = 0,
    BUAdSDKInitializationStateReady = 1
};
typedef void (^BUConfirmGDPR)(BOOL isAgreed);
typedef void (^BUCompletionHandler)(BOOL success,NSError *error);
@@ -18,6 +23,9 @@
@property (nonatomic, copy, readonly, class) NSString *SDKVersion;
/// The PangleSDK initialization state
@property (nonatomic, assign, readonly, class) BUAdSDKInitializationState initializationState;
/// The synchronize initialization method of Pangle
/// @param completionHandler Callback to the initialization state of the calling thread
+ (void)startWithSyncCompletionHandler:(BUCompletionHandler)completionHandler;
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUFullscreenVideoAd.h
@@ -112,6 +112,11 @@
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
/**
 Display video ad.
 @param rootViewController : root view controller for displaying ad.
 @return : whether it is successfully displayed.
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUMaterialMeta.h
@@ -31,6 +31,7 @@
    BUFeedADModeImagePortrait = 16,
    BUFeedADModeSquareImage   = 33, //SquareImage Currently it exists only in the oversea now. V3200 add
    BUFeedADModeSquareVideo   = 50, //SquareVideo Currently it exists only in the oversea now. V3200 add
    BUFeedADModeUnionSplashVideo = 154, // Video splash, V3800 add
};
@interface BUMaterialMeta : NSObject <NSCoding>
@@ -92,6 +93,8 @@
/// media configuration parameters.
@property (nonatomic, copy) NSDictionary *mediaExt;
/// adx name, if it exists, it is recommended to display this text
@property (nonatomic, copy) NSString *ADXName;
- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError * __autoreleasing *)error;
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeAd.h
@@ -80,6 +80,11 @@
 */
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
@end
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressAdView.h
@@ -37,6 +37,11 @@
 */
- (void)render;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
@end
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressBannerView.h
@@ -133,6 +133,11 @@
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
@end
@interface BUNativeExpressBannerView (Deprecated)
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressFullscreenVideoAd.h
@@ -130,6 +130,11 @@
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
/**
 Display video ad.
 @param rootViewController : root view controller for displaying ad.
 @return : whether it is successfully displayed.
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressInterstitialAd.h
@@ -105,6 +105,11 @@
 */
- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressRewardedVideoAd.h
@@ -127,6 +127,8 @@
@interface BUNativeExpressRewardedVideoAd : NSObject <BUMopubAdMarkUpDelegate>
@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel;
@property (nonatomic, weak, nullable) id<BUNativeExpressRewardedVideoAdDelegate> delegate;
@property (nonatomic, weak, nullable) id<BUNativeExpressRewardedVideoAdDelegate> rewardPlayAgainInteractionDelegate;
/// media configuration parameters.
@property (nonatomic, copy, readonly) NSDictionary *mediaExt;
@@ -147,6 +149,11 @@
*/
- (instancetype)initWithSlot:(BUAdSlot *)slot rewardedVideoModel:(BURewardedVideoModel *)model;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
- (void)loadAdData;
/**
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUNativeExpressSplashView.h
@@ -125,6 +125,11 @@
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
/**
 Remove splash view.
 Stop the countdown as soon as you call this method.
 移除开屏视图
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BURewardedVideoAd.h
@@ -24,7 +24,7 @@
@interface BURewardedVideoAd : NSObject <BUMopubAdMarkUpDelegate>
@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel;
@property (nonatomic, weak, nullable) id<BURewardedVideoAdDelegate> delegate;
@property (nonatomic, weak, nullable) id<BURewardedVideoAdDelegate> rewardPlayAgainInteractionDelegate;
/**
 Whether material is effective.
 Setted to YES when data is not empty and has not been displayed.
@@ -49,6 +49,11 @@
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
/**
 Display video ad.
 @param rootViewController : root view controller for displaying ad.
 @return : whether it is successfully displayed.
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/BUSplashAdView.h
@@ -76,6 +76,11 @@
 */
- (void)loadAdData;
/**
 Ad slot material id
 */
- (NSString *)getAdCreativeToken;
@end
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/PangleNativeBannerView.h
File was deleted
BuWanVideo2.0/CSJ/BUAdSDK.framework/Versions/A/Headers/PangleNativeInterstitialView.h
File was deleted
BuWanVideo2.0/CSJ/BUCNAuxiliary.framework/Versions/A/BUCNAuxiliary
Binary files differ
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/BUFoundation
Binary files differ
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUBase64.h
@@ -35,19 +35,19 @@
@interface NSData (BUBase64)
+ (NSData *)dataWithBase64EncodedString:(NSString *)string;
- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
- (NSString *)base64EncodedString;
+ (NSData *)bu_dataWithBase64EncodedString:(NSString *)string;
- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
- (NSString *)bu_base64EncodedString;
@end
@interface NSString (BUBase64)
+ (NSString *)stringWithBase64EncodedString:(NSString *)string;
- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
- (NSString *)base64EncodedString;
- (NSString *)base64DecodedString;
- (NSData *)base64DecodedData;
+ (NSString *)bu_stringWithBase64EncodedString:(NSString *)string;
- (NSString *)bu_base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
- (NSString *)bu_base64EncodedString;
- (NSString *)bu_base64DecodedString;
- (NSData *)bu_base64DecodedData;
@end
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUCommonMacros.h
@@ -28,6 +28,7 @@
#define BUCheckValidArray(__aArray)                 (__aArray && [__aArray isKindOfClass:[NSArray class]] && [__aArray count])
#define BUCheckValidDictionary(__aDictionary)       (__aDictionary && [__aDictionary isKindOfClass:[NSDictionary class]] && [__aDictionary count])
#define BUCheckValidDate(__aDate)                   (__aDate && [__aDate isKindOfClass:[NSDate class]])
#define BUCheckValidData(__aData)                   (__aData && [__aData isKindOfClass:[NSData class]])
/** Color String**/
#define BUColorString(__string)    [UIColor bu_colorWithHexString:(__string)]
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUDownloadSpeedServer.h
New file
@@ -0,0 +1,40 @@
//
//  BUDownloadSpeedServer.h
//  BUFoundation
//
//  Created by bytedance on 2021/4/22.
//
#import <Foundation/Foundation.h>
@class BUDownloadSpeedModel;
NS_ASSUME_NONNULL_BEGIN
@interface BUDownloadSpeedServer : NSObject
+ (instancetype)server;
- (void)startDownloadWithUrl:(NSURL *)url;
- (BUDownloadSpeedModel *)downloadingWithUrl:(NSURL *)url;
- (void)finishDownloadWithUrl:(NSURL *)url;
- (double)downloadSpeeds;
@end
@interface BUDownloadSpeedModel : NSObject
@property (atomic, assign) NSTimeInterval startDownloadTime;
@property (atomic, assign) NSTimeInterval finishDownloadTime;
@property (atomic, assign)    NSInteger downloadSize;
@property (nonatomic, assign) double speed;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUEnvironment.h
@@ -14,4 +14,8 @@
CTTelephonyNetworkInfo *BUDefaultTelephonyNetworkInfo(void);
@interface BUEnvironment : NSObject
@end
#endif /* BUEnvironment_h */
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUFoundation.h
@@ -128,7 +128,7 @@
#import <BUFoundation/BUZipArchive.h>
#import <BUFoundation/BUGeckoPreloadManager.h>
#import <BUFoundation/BUDownloadSpeedServer.h>
#import <BUFoundation/BU_ZFPlayer.h>
/************************************ ThirdParty***********************************/
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BULogMacros.h
@@ -25,7 +25,7 @@
#define BU_LogDebugD(BULogType, frmt, ...) BU_LogBaseD(debug, BULogType, frmt, ##__VA_ARGS__)
#define BU_LogVerboseD(BULogType, frmt, ...) BU_LogBaseD(verbose, BULogType, frmt, ##__VA_ARGS__)
#define BU_LogInternalD(BULogType, frmt, ...) BU_LogBaseD(internal, BULogType, frmt, ##__VA_ARGS__)
#define BU_LogServerD(BULogType, frmt, ...) BU_LogBaseD(server, BULogType, frmt, ##__VA_ARGS__)
#define BU_LogBaseD(level, BULogType, frmt, ...) [BULogManager level##LogWithFormat:@"[PangleUnion-%@]-[%s]-[%@]%@", BUSDKVersion, #level, BULogType, [NSString stringWithFormat:frmt, ##__VA_ARGS__]];
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BULogManager.h
@@ -18,11 +18,17 @@
    BULogManagerLevelVerbose,
};
typedef NS_ENUM(NSInteger, BULogServerControlMode) {
    BULogManagerServerControlCloseMode,
    BULogManagerServerControlDebugMode,
};
NS_ASSUME_NONNULL_BEGIN
@interface BULogManager : NSObject
@property (nonatomic, assign) BULogManagerLevel level;
@property (nonatomic, assign) BULogServerControlMode mode;
+ (void)errorLogWithFormat:(NSString *)format, ...;
+ (void)warningLogWithFormat:(NSString *)format, ...;
@@ -30,6 +36,7 @@
+ (void)debugLogWithFormat:(NSString *)format, ...;
+ (void)verboseLogWithFormat:(NSString *)format, ...;
+ (void)internalLogWithFormat:(NSString *)format, ...;
+ (void)serverLogWithFormat:(NSString *)format, ...;
+ (instancetype)sharedInstance;
@end
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUPlayer.h
@@ -107,6 +107,11 @@
- (void)replaceCurrentItemWithPlayerItem:(BUPlayerItem *)item;
- (void)insertGaosiMohuWithLayer:(CALayer *)layer;
- (void)insertGaosiMohuWithView:(UIView *)view;
@end
@interface BUPlayer (BUPlayerControl)
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/BUPlayerInternalDefine.h
@@ -48,6 +48,12 @@
 This method is called when the player is ready.
 */
- (void)playerReadyToPlay:(BUPlayer *)player;
/**
 This method is called when the player is ready, while application in background.
 */
- (void)playerReadyToPlayWhenApplicationEnterBackground:(BUPlayer *)player;
/**
 This method is called when the player plays completion or occurrs error.
 */
BuWanVideo2.0/CSJ/BUFoundation.framework/Versions/A/Headers/NSString+BUAddtion.h
@@ -50,11 +50,24 @@
 */
+ (NSDictionary*)bu_parametersOfURLString:(NSString*)urlString DEPRECATED_MSG_ATTRIBUTE("使用 `bu_parametersOfURLQueryString` 代替此方法");
+ (NSDictionary*)bu_parametersOfURLQueryString:(NSString*)urlString;
+ (NSDictionary*)bu_convertStringToDictionary:(NSString*)string;
/*
 *
 url字符串拼接参数,需要判断是否是第一个
 */
+ (NSString *)bu_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters;
+ (NSString *)bu_urlStringWithBaseUrlString:(NSString *)baseUrlString requestURLString:(NSString *)requestURLString;
+ (NSString *)bu_urlStringWithUrlString:(NSString *)urlString parameterString:(NSString *)parameterString;
/*
 * 格式转化
   222222 -> 222,222
 */
+ (NSString *)bu_convertNumberFormatter:(NSString *)str;
@end
@@ -101,4 +114,10 @@
+ (NSString *)randomStringWithCount:(NSUInteger)count;
@end
@interface NSString (BU_Size)
- (CGSize)bu_boundingRectWithSize:(CGSize)size font:(UIFont *)font;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/JSAPI.m
@@ -9,6 +9,9 @@
#import "JSAPI.h"
#import "dsbridge.h"
#define Version [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]  //build号
#define Package @"com.yeshi.buwanshequ.ios"  //相当于包名
@implementation JSAPI
- (NSString *)login:(NSString *)msg {
@@ -18,7 +21,7 @@
- (NSString *)getUserInfo:(NSString *)msg {
    NSMutableDictionary *parms = [[NSMutableDictionary alloc] init];
   NSDictionary *dictionary = [[NSUserDefaults standardUserDefaults] objectForKey:@"buUserInfo"];
    NSDictionary *dictionary = [[NSUserDefaults standardUserDefaults] objectForKey:@"buUserInfo"];
    
    if (dictionary) {
        NSMutableDictionary *data = [[NSMutableDictionary alloc] init];
@@ -47,6 +50,69 @@
- (NSString *)tryPlayFinish:(NSString *)msg {
    [[NSNotificationCenter defaultCenter] postNotificationName:@"tryPlayFinish" object:nil];
    return msg;
}
- (NSString *)getUid:(NSString *)msg {
    NSString *ids = [[NSUserDefaults standardUserDefaults] objectForKey:@"LoginUid"];
    return ids?:@"";
}
- (NSString *)getRequestBaseParams:(id)msg {
    NSMutableDictionary *parms = [NSMutableDictionary new];
    [parms addEntriesFromDictionary:msg];
    if (!msg[@"Method"]) {
        [parms setObject:@"1" forKey:@"Method"];
    }
    [parms setObject:@"ios" forKey:@"Platform"];
    NSString *sign;
    if ([YTHsharedManger startManger].Uid) {
        [parms setObject:[YTHsharedManger startManger].Uid forKey:@"Uid"];
        sign = [NSString stringWithFormat:@"%@%@%@", parms[@"Method"], [YTHsharedManger startManger].Uid,@"1"];
    }else{
        sign = [NSString stringWithFormat:@"%@%@%@", parms[@"Method"],[[UIDevice currentDevice].identifierForVendor UUIDString],@"1"];
    }
    [parms setObject:Version forKey:@"Version"];
    [parms setObject:Package forKey:@"Package"];
    [parms setObject:@"1" forKey:@"System"];
    [parms setObject:[NSString md5:sign] forKey:@"Sign"];
    [parms setObject:[[UIDevice currentDevice].identifierForVendor UUIDString] forKey:@"Device"];
    NSString *json = [self jsonStringToJsonData:parms];
    return json;
}
- (NSString *)showLoading:(id)msg {
    dispatch_async(dispatch_get_main_queue(), ^{
        [SVProgressHUD show];
    });
    return @"";
}
- (NSString *)hideLoading:(id)msg {
    dispatch_async(dispatch_get_main_queue(), ^{
        [SVProgressHUD dismiss];
    });
    return @"";
}
- (NSString *)toast:(NSString *)msg {
    dispatch_async(dispatch_get_main_queue(), ^{
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:msg preferredStyle:UIAlertControllerStyleAlert];
        [[self fetchCurrentViewController] presentViewController:alert animated:YES completion:^{
            //延时执行
            dispatch_queue_t q = dispatch_get_main_queue();
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.2 * NSEC_PER_SEC), q, ^{
                [alert dismissViewControllerAnimated:YES completion:nil];
            });
        }];
    });
    return @"";
}
- (NSString *)playFinish:(NSString *)msg {
@@ -86,7 +152,7 @@
    
    NSRange range = {0, jsonString.length};
    [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
    NSRange range2 = {0, mutStr.length};
    //去掉字符串中的换行符
    [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
@@ -102,4 +168,29 @@
    NSInteger timeSp = [datenow timeIntervalSince1970]*1000;
    return timeSp;
}
- (UIViewController *)fetchCurrentViewController {
    UIViewController* currentViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
    BOOL runLoopFind = YES;
    while (runLoopFind) {
        if (currentViewController.presentedViewController) {
            currentViewController = currentViewController.presentedViewController;
        } else if ([currentViewController isKindOfClass:[UINavigationController class]]) {
            UINavigationController* navigationController = (UINavigationController* )currentViewController;
            currentViewController = [navigationController.childViewControllers lastObject];
        } else if ([currentViewController isKindOfClass:[UITabBarController class]]) {
            UITabBarController* tabBarController = (UITabBarController* )currentViewController;
            currentViewController = tabBarController.selectedViewController;
        } else {
            NSUInteger childViewControllerCount = currentViewController.childViewControllers.count;
            if (childViewControllerCount > 0) {
                currentViewController = currentViewController.childViewControllers.lastObject;
                return currentViewController;
            } else {
                return currentViewController;
            }
        }
    }
    return currentViewController;
}
@end
BuWanVideo2.0/LookNoteController.m
@@ -31,7 +31,7 @@
- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    //获取本地的观看记录数据
    historyListDataArray = [[NSMutableArray alloc]initWithContentsOfFile:HISTORYFILE];
    
@@ -55,6 +55,19 @@
    [self promptView];
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}
/**
 设置导航栏
 */
BuWanVideo2.0/NormolNavView.m
@@ -35,7 +35,7 @@
    self.viewBG.sd_layout.leftSpaceToView(self, 0).topSpaceToView(self, kStatusBarH).rightSpaceToView(self, 0).bottomSpaceToView(self, 0);
    self.buttonBack.sd_layout.leftSpaceToView(self.viewBG, 10).centerYEqualToView(self.viewBG).widthIs(30).heightIs(30);
    
    self.labelTitle.sd_layout.leftSpaceToView(self.buttonBack, 10).centerYEqualToView(self.viewBG).rightSpaceToView(self.viewBG, 0).autoHeightRatio(0);
    self.labelTitle.sd_layout.centerXEqualToView(self.viewBG).centerYEqualToView(self.viewBG).widthIs(200).autoHeightRatio(0);
}
- (void)back {
BuWanVideo2.0/PPTVController.m
@@ -342,6 +342,7 @@
        _viewPPTVVip.buyVip = ^{
            @strongify(self)
            BuyVipController *vc = [[BuyVipController alloc] init];
            vc.url = [[NSUserDefaults standardUserDefaults] objectForKey:VIPLINK];
            @weakify(self)
            vc.refrshData = ^{
                @strongify(self)
BuWanVideo2.0/Recommend/ListControlelr/ListController.m
@@ -9,6 +9,7 @@
#import "ListController.h"
#import "XYRDetailViewController.h"
#import "OnlySpecialController.h"
#import "BuyVipController.h"
#import "RecommendHeaderViewCell.h"
#import "ToDayHotCell.h"
@@ -118,7 +119,7 @@
}
- (void)loadFooter:(void(^)(void))handel {
    [[YTHNetInterface startInterface] getHomeTypeWithUid:[YTHsharedManger startManger].Uid vtid:_parms[@"Id"] withSystem:@"1" DataKey:_parms[@"DataKey"] PageSize:10 Page:_page withBlock:^(BOOL isSuccessful, id result, NSString *error) {
    [[YTHNetInterface startInterface] getRecommendCategoryVideoListWithUid:[YTHsharedManger startManger].Uid withVideoType:_parms[@"Id"] withSystem:@"1" withBlock:^(BOOL isSuccessful, id result, NSString *error) {
        
        if (isSuccessful) {
            if (_page == 1) {
@@ -131,20 +132,30 @@
            dispatch_async(dispatch_get_main_queue(), ^{
                [self.arrayContent addObjectsFromArray:self.arrayTemp];
                [self.collectionView reloadData];
                [self.collectionView.mj_header endRefreshing];
                [self.collectionView.mj_footer endRefreshing];
                if (self.count == self.arrayContent.count) {
                    [self hideFooger];
                } else {
                    if (!self.collectionView.mj_footer) {
                        [self setFooterRefresh];
                    }
                }
                handel();
            });
        }
        [self.collectionView.mj_header endRefreshing];
        [self.collectionView.mj_footer endRefreshing];
        if (self.count == self.arrayContent.count) {
            [self hideFooger];
    }];
}
- (void)setHeaderRefresh {
    self.collectionView.mj_header=[MJRefreshNormalHeader headerWithRefreshingBlock:^{
        self.page = 1;
        [self loadFooter:^{
            
        } else {
            if (!self.collectionView.mj_footer) {
                [self setFooterRefresh];
            }
        }
        handel();
        }];
    }];
}
@@ -183,7 +194,10 @@
    } else if (LinkType == 2){//网页(网页)
        NSString *s = [parms[@"Params"] stringByReplacingOccurrencesOfString:@"\\"withString:@""];
        NSDictionary *Params = [self dictionaryWithJsonString:s];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[Params objectForKey:@"url"]]];
        BuyVipController *vc = [[BuyVipController alloc] init];
        vc.url = [Params objectForKey:@"url"];
        vc.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:vc animated:YES];
        
    } else if (LinkType == 3){//专辑
        OnlySpecialController *OnlySpecial =[OnlySpecialController new];
@@ -391,13 +405,12 @@
    } else {
        NSUInteger ids = [_parms[@"Id"] integerValue];
        if (ids == 150 || ids == 151 || ids == 152 ||ids == 153) {
            return  CGSizeMake((KScreenW - 9 - 9 - 6 - 6) / 3, 201);
            return CGSizeMake((KScreenW-9-9-6-6)/3, 41+(((KScreenW-9-9-6-6)/3))*1.39);
            
        } else {
            return  CGSizeMake((KScreenW - 9 - 9 - 8) / 2, 140);
            return CGSizeMake((KScreenW-9-9-8)/2, 41+(((KScreenW-9-9-8)/2))*0.562);
        }
    }
    return  CGSizeMake(KScreenW, 35);
}
//协议中的方法,用于返回整个CollectionView上、左、下、右距四边的间距
@@ -478,6 +491,8 @@
        [_collectionView registerClass:[RecommendChangeFooterView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"RecommendChangeFooterView"];
        
        [_collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"UICollectionReusableView"];
        [self setHeaderRefresh];
    }
    return _collectionView;
}
BuWanVideo2.0/Recommend/MainBaseController.m
@@ -8,6 +8,7 @@
#import "MainBaseController.h"
#import "SearchController.h"
#import "LookNoteController.h"
#import "RecommendNavView.h"
@@ -53,12 +54,18 @@
- (void)setupMainViewConfig {
    [self.view addSubview:self.viewRecommendNav];
    __weak typeof(self) weakSelf = self;
    @weakify(self)
    self.viewRecommendNav.onSearch = ^{
        @strongify(self)
        SearchController *vc = [[SearchController alloc] init];
        vc.ptitle = [YTHsharedManger startManger].searchTitle;
        vc.hidesBottomBarWhenPushed = YES;
        [weakSelf.navigationController pushViewController:vc animated:YES];
        [self.navigationController pushViewController:vc animated:YES];
    };
    self.viewRecommendNav.onRecord = ^{
        @strongify(self)
        LookNoteController *LookNoteLookNoteVC=[[LookNoteController alloc] init];
        [self.navigationController pushViewController:LookNoteLookNoteVC animated:YES];
    };
}
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendHeaderViewCell.m
@@ -72,7 +72,7 @@
            flowLayout.itemWidth = KScreenW - 20;
            flowLayout.itemSpace_H = 5;
            
            CWCarousel *carousel = [[CWCarousel alloc] initWithFrame:CGRectMake(0, 0, KScreenW, 156 * bannerSizeRate)
            CWCarousel *carousel = [[CWCarousel alloc] initWithFrame:CGRectMake(0, 0, KScreenW, KScreenW*bannerSizeRate)
                                                            delegate:self
                                                          datasource:self
                                                          flowLayout:flowLayout];
@@ -90,7 +90,7 @@
            
            
        } else {
            CGRect frame = CGRectMake(10, 0, KScreenW - 20, 156 * bannerSizeRate);
            CGRect frame = CGRectMake(10, 0, KScreenW - 20, (KScreenW - 20)*bannerSizeRate);
            //if (images && images.count != 0) {
            SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:frame delegate:self placeholderImage:nil];
            //cycleScrollView.imageURLStringsGroup = images;
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendThreeColumnCell.m
@@ -40,7 +40,9 @@
    [self.contentView addSubview:self.imaegViewGQ];
    [self.contentView addSubview:self.imaegViewVIP];
    
    self.imaegView.sd_layout.leftEqualToView(self.contentView).topEqualToView(self.contentView).rightEqualToView(self.contentView).heightIs(160);
    CGFloat height = (((KScreenW-9-9-6-6)/3))*1.39;
    self.imaegView.sd_layout.leftEqualToView(self.contentView).topEqualToView(self.contentView).rightEqualToView(self.contentView).heightIs(height);
    self.imaegView.sd_cornerRadius = @6;
    
    self.labelTitle.sd_layout.leftSpaceToView(self.contentView, 0).topSpaceToView(self.imaegView, 6).rightSpaceToView(self.contentView, 0).heightIs(0);
@@ -68,6 +70,25 @@
        [_imaegView setYthImageWithURL:data[@"Vpicture"] placeholderImage:BSKPlaceHolderImage];
        
        NSString *conetnt = data[@"Name"];
        //0-普清 1-高清
        NSInteger Definition = [data[@"Definition"] intValue];
        //0-免费  1-VIP  2-用券
        NSInteger Free = [data[@"Free"] intValue];
        if (Definition == 1) {
            self.imaegViewGQ.hidden = NO;
        } else {
            self.imaegViewGQ.hidden = YES;
        }
        if (Free == 1) {
            self.imaegViewVIP.hidden = NO;
        } else {
            self.imaegViewVIP.hidden = YES;
        }
        self.labelTag.text = [NSString stringWithFormat:@"%@",data[@"Tag"]];
        
        if (data[@"Score"]) {
@@ -102,6 +123,26 @@
        [_imaegView setYthImageWithURL:dataNormol[@"Vpicture"] placeholderImage:BSKPlaceHolderImage];
        
        NSString *conetnt = dataNormol[@"Name"];
        //0-普清 1-高清
        NSInteger Definition = [dataNormol[@"Definition"] intValue];
        //0-免费  1-VIP  2-用券
        NSInteger Free = [dataNormol[@"Free"] intValue];
        if (Definition == 1) {
            self.imaegViewGQ.hidden = NO;
        } else {
            self.imaegViewGQ.hidden = YES;
        }
        if (Free == 1) {
            self.imaegViewVIP.hidden = NO;
        } else {
            self.imaegViewVIP.hidden = YES;
        }
        self.labelTag.text = [NSString stringWithFormat:@"%@",dataNormol[@"Tag"]];
        
        if (dataNormol[@"Score"]) {
@@ -159,6 +200,7 @@
        [_imaegViewGQ setContentScaleFactor:[[UIScreen mainScreen] scale]];
        _imaegViewGQ.contentMode =  UIViewContentModeScaleAspectFill;
        _imaegViewGQ.clipsToBounds  = YES;
        _imaegViewGQ.hidden = YES;
    }
    return _imaegViewGQ;
}
@@ -170,6 +212,7 @@
        [_imaegViewVIP setContentScaleFactor:[[UIScreen mainScreen] scale]];
        _imaegViewVIP.contentMode =  UIViewContentModeScaleAspectFill;
        _imaegViewVIP.clipsToBounds  = YES;
        _imaegViewVIP.hidden = YES;
    }
    return _imaegViewVIP;
}
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendTwoColumnCell.m
@@ -34,7 +34,9 @@
    [self.contentView addSubview:self.imaegView];
    [self.contentView addSubview:self.labelTitle];
    
    self.imaegView.sd_layout.leftEqualToView(self.contentView).topEqualToView(self.contentView).rightEqualToView(self.contentView).heightIs(99);
    CGFloat height = ((KScreenW-9-9-8)/2)*0.562;
    self.imaegView.sd_layout.leftEqualToView(self.contentView).topEqualToView(self.contentView).rightEqualToView(self.contentView).heightIs(height);
    self.imaegView.sd_cornerRadius = @6;
    
    self.labelTitle.sd_layout.leftSpaceToView(self.contentView, 0).topSpaceToView(self.imaegView, 6).rightSpaceToView(self.contentView, 0).heightIs(0);
BuWanVideo2.0/Recommend/Recommend/Cell/RecpmmendTitleView.m
@@ -96,11 +96,17 @@
    if (data) {
        self.labelTitle.text = data[@"Name"];
        
        self.labelTag.text = data[@"HomeVideoList"][0][@"Video"][@"Tag"];
        self.arrayImage = @[data[@"HomeVideoList"][0][@"Video"][@"Hpicture"]];
        self.labelContent.text = data[@"HomeVideoList"][0][@"Video"][@"Name"];
        if ([data[@"HomeVideoList"] count] > 0) {
            self.labelTag.text = data[@"HomeVideoList"][0][@"Video"][@"Tag"];
            self.arrayImage = @[data[@"HomeVideoList"][0][@"Video"][@"Hpicture"]];
            self.labelContent.text = data[@"HomeVideoList"][0][@"Video"][@"Name"];
        } else {
            self.labelTag.hidden = YES;
            self.labelContent.hidden = YES;
        }
        
        if ([data[@"RefreshPosition"] intValue] == 0 || [data[@"RefreshPosition"] intValue] == 2) {
            self.buttonChange.hidden = YES;
BuWanVideo2.0/Recommend/Recommend/RecommendController.m
@@ -9,6 +9,7 @@
#import "RecommendController.h"
#import "OnlySpecialController.h"//专辑视图
#import "XYRDetailViewController.h"
#import "BuyVipController.h"
#import "RecommendHeaderViewCell.h"
#import "ToDayHotCell.h"
@@ -135,21 +136,26 @@
            
            dispatch_async(dispatch_get_main_queue(), ^{
                [self.arrayContent addObjectsFromArray:self.arrayTemp];
                [self.collectionView reloadData];
                [self.collectionView.mj_header endRefreshing];
                [self.collectionView.mj_footer endRefreshing];
                @weakify(self)
                [UIView performWithoutAnimation:^{
                    @strongify(self)
                    [self.collectionView reloadData];
                }];
                if (self.count == self.arrayContent.count) {
                    [self hideFooger];
                } else {
                    if (!self.collectionView.mj_footer) {
                        [self setFooterRefresh];
                    }
                }
                handel();
            });
        }
        [self.collectionView.mj_header endRefreshing];
        [self.collectionView.mj_footer endRefreshing];
        if (self.count == self.arrayContent.count) {
            [self hideFooger];
        } else {
            if (!self.collectionView.mj_footer) {
                [self setFooterRefresh];
            }
        }
        handel();
    }];
}
@@ -177,7 +183,7 @@
    if (indexpath.section == 1) {
        return;
    }
    [self cellClick:indexpath];
    [self headerClick:indexpath];
}
- (void)onEventHotSection:(NSDictionary *)parms {
@@ -203,7 +209,10 @@
    } else if (LinkType == 2){//网页(网页)
        NSString *s = [parms[@"Params"] stringByReplacingOccurrencesOfString:@"\\"withString:@""];
        NSDictionary *Params = [self dictionaryWithJsonString:s];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[Params objectForKey:@"url"]]];
        BuyVipController *vc = [[BuyVipController alloc] init];
        vc.url = [Params objectForKey:@"url"];
        vc.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:vc animated:YES];
        
    } else if (LinkType == 3){//专辑
        OnlySpecialController *OnlySpecial =[OnlySpecialController new];
@@ -252,7 +261,24 @@
- (void)cellClick:(NSIndexPath *)indexPath {
    NSDictionary *parms = [NSDictionary new];
    parms = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
    BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
    if (BigPicture) {
        parms = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row+1][@"Video"];
    } else {
        parms = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
    }
    [self onResult:parms];
}
- (void)headerClick:(NSIndexPath *)indexPath {
    NSDictionary *parms = [NSDictionary new];
    parms = self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"Video"];
    [self onResult:parms];
}
- (void)onResult:(NSDictionary *)parms {
    XYRDetailViewController *play = [[XYRDetailViewController alloc]init];
    [YTHsharedManger startManger].preController = [self fetchCurrentViewController];
    play.modalPresentationStyle = 0;
@@ -301,11 +327,13 @@
    } else {
        NSUInteger Columns = [self.arrayContent[section-1][@"Columns"] integerValue];
        if (Columns == 2 || Columns == 3) {
            BOOL BigPicture = [self.arrayContent[section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            if (BigPicture) {
                return [self.arrayContent[section-1][@"HomeVideoList"] count]-1;
            if ([self.arrayContent[section-1][@"HomeVideoList"] count] > 0) {
                BOOL BigPicture = [self.arrayContent[section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
                if (BigPicture) {
                    return [self.arrayContent[section-1][@"HomeVideoList"] count]-1;
                }
                return [self.arrayContent[section-1][@"HomeVideoList"] count];
            }
            return [self.arrayContent[section-1][@"HomeVideoList"] count];
        }
    }
    return 1;
@@ -328,26 +356,38 @@
            return cell;
            
        } else if (Columns == 2) {
            RecommendTwoColumnCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendTwoColumnCell" forIndexPath:indexPath];
            BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            if (BigPicture) {
                cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row+1][@"Video"];
            if ([self.arrayContent[indexPath.section-1][@"HomeVideoList"] count] > 0) {
                RecommendTwoColumnCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendTwoColumnCell" forIndexPath:indexPath];
                BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
                if (BigPicture) {
                    cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row+1][@"Video"];
                } else {
                    cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
                }
                return cell;
                
            } else {
                cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
                UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UICollectionViewCell" forIndexPath:indexPath];
                return cell;
            }
            return cell;
            
        } else if (Columns == 3) {
            RecommendThreeColumnCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendThreeColumnCell" forIndexPath:indexPath];
            BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            if (BigPicture) {
                cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row+1][@"Video"];
            if ([self.arrayContent[indexPath.section-1][@"HomeVideoList"] count] > 0) {
                RecommendThreeColumnCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendThreeColumnCell" forIndexPath:indexPath];
                BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
                if (BigPicture) {
                    cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row+1][@"Video"];
                } else {
                    cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
                }
                return cell;
                
            } else {
                cell.data = self.arrayContent[indexPath.section-1][@"HomeVideoList"][indexPath.row][@"Video"];
                UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UICollectionViewCell" forIndexPath:indexPath];
                return cell;
            }
            return cell;
        }
    }
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UICollectionViewCell" forIndexPath:indexPath];
@@ -361,7 +401,10 @@
        if (indexPath.section > 0) {
            RecpmmendTitleView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"RecpmmendTitleView" forIndexPath:indexPath];
            view.delegate = self;
            BOOL BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            BOOL BigPicture = NO;
            if ([self.arrayContent[indexPath.section-1][@"HomeVideoList"] count] > 0) {
                BigPicture = [self.arrayContent[indexPath.section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            }
            view.isBanaer = BigPicture;
            view.data = self.arrayContent[indexPath.section-1];
            view.index = indexPath.section;
@@ -390,9 +433,11 @@
    //宽度随便定,系统会自动取collectionView的宽度
    //高度为分组头的高度
    if (section > 0) {
        BOOL BigPicture = [self.arrayContent[section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
        if (BigPicture) {
            return CGSizeMake(KScreenW, 216 + 40 + 30);
        if ([self.arrayContent[section-1][@"HomeVideoList"] count] > 0) {
            BOOL BigPicture = [self.arrayContent[section-1][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            if (BigPicture) {
                return CGSizeMake(KScreenW, 216 + 40 + 30);
            }
        }
        return CGSizeMake(KScreenW, 47);
    }
@@ -415,7 +460,7 @@
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0) {
        CGFloat bannerSizeRate = [self.dictionaryBanaer[@"bannerSizeRate"] doubleValue];
        return  CGSizeMake(KScreenW, 5 + (156 * bannerSizeRate));
        return  CGSizeMake(KScreenW, 5 + (KScreenW * bannerSizeRate));
        
    } else {
        NSUInteger Columns = [self.arrayContent[indexPath.section-1][@"Columns"] integerValue];
@@ -423,10 +468,20 @@
            return  CGSizeMake(KScreenW, 140);
            
        } else if (Columns == 2) {
            return  CGSizeMake((KScreenW - 9 - 9 - 8) / 2, 140);
            if ([self.arrayContent[indexPath.section-1][@"HomeVideoList"] count] > 0) {
                return CGSizeMake((KScreenW-9-9-8)/2, 41+(((KScreenW-9-9-8)/2))*0.562);
            } else {
                return CGSizeMake(KScreenW, CGFLOAT_MIN);
            }
        } else if (Columns == 3) {
            return  CGSizeMake((KScreenW - 9 - 9 - 6 - 6) / 3, 201);
            if ([self.arrayContent[indexPath.section-1][@"HomeVideoList"] count] > 0) {
                return CGSizeMake((KScreenW-9-9-6-6)/3, 41+(((KScreenW-9-9-6-6)/3))*1.39);
            } else {
                return CGSizeMake(KScreenW, CGFLOAT_MIN);
            }
        }
    }
    return  CGSizeMake(KScreenW, 35);
BuWanVideo2.0/Recommend/RecommendMainController.m
@@ -18,6 +18,8 @@
@property (nonatomic, nullable, strong) NSMutableArray *arrayClassName;
@property (nonatomic, nullable, strong) NSMutableArray *arrayKeyName;
@property (nonatomic, assign) BOOL isRequest;
@end
@implementation RecommendMainController
@@ -52,7 +54,12 @@
}
-(void)loadDataFromFile {
    if (_isRequest) {
        return;
    }
    self.isRequest = YES;
    [[YTHNetInterface startInterface]cancelAll];
    
    [[YTHNetInterface startInterface] getVideoClassWithUid:[YTHsharedManger startManger].Uid WithSystem:@"1" withBlock:^(BOOL isSuccessful, id result, NSString *error) {
        if (isSuccessful) {
@@ -63,11 +70,13 @@
            }
            self.primtView.hidden = YES;
            [self setupViewConfig];
            self.isRequest = NO;
            
        } else{
            if ([error compare:@"似乎已断开与互联网的连接。"] == 0) {
                [self notHaveNetWork];
            }
            self.isRequest = NO;
        }
    }];
}
BuWanVideo2.0/Recommend/View/RecommendNavView.h
@@ -9,6 +9,7 @@
#import <UIKit/UIKit.h>
typedef void(^onSearch)(void);
typedef void(^onRecord)(void);
NS_ASSUME_NONNULL_BEGIN
@@ -17,6 +18,7 @@
@property (nonatomic, nullable, copy) NSString *title;
@property (nonatomic) onSearch onSearch;
@property (nonatomic) onRecord onRecord;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/Recommend/View/RecommendNavView.m
@@ -38,6 +38,7 @@
    [buttonRecord setImage:[UIImage imageNamed:@"home_record"] forState:UIControlStateNormal];
    [self addSubview:buttonRecord];
    buttonRecord.sd_layout.rightSpaceToView(self, 21).centerYEqualToView(_viewNav).widthIs(23).heightIs(23);
    [buttonRecord addTarget:self action:@selector(onViewRecord) forControlEvents:UIControlEventTouchUpInside];
    
    [self.viewNav addSubview:self.viewSearch];
    self.viewSearch.sd_layout.leftSpaceToView(self.viewNav, 11).centerYEqualToView(self.viewNav).rightSpaceToView(buttonRecord, 21).heightIs(34);
@@ -56,6 +57,10 @@
    label.sd_layout.leftSpaceToView(imageViewSearch, 13).centerYEqualToView(_viewSearch).heightIs(20).rightSpaceToView(_viewSearch, 0);
}
- (void)onViewRecord {
    !self.onRecord?:self.onRecord();
}
- (void)touchSearch {
    !self.onSearch?:self.onSearch();
}
BuWanVideo2.0/SubregionDetailViewController.m
@@ -10,6 +10,7 @@
#import "searchTableViewCell.h"//本视图所使用的cell与搜索视图使用的cell相同
#import "XYRVideoInfoModel.h"
#import "searchViewController.h"
#import "SearchController.h"
#import "LookNoteController.h"
#import "XYRDetailViewController.h"
#import "XYRVideoInfoModel.h"
@@ -49,7 +50,9 @@
@property (weak, nonatomic) IBOutlet UIButton *topButton;
@property (nonatomic, strong) UIView *viewTop;
@property (nonatomic, assign) BOOL isWhite;
@end
@implementation SubregionDetailViewController
@@ -78,21 +81,36 @@
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    NSString *str=[NSString stringWithFormat:@"分类的%@界面",self.titles];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    //NSString *str=[NSString stringWithFormat:@"分类的%@界面",self.titles];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    self.navigationController.navigationBar.translucent = YES;
    //[MobClick beginLogPageView:str];
}
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    NSString *str=[NSString stringWithFormat:@"分类的%@界面",self.titles];
    if (_isWhite) {
        self.isWhite = NO;
    } else {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    }
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    self.navigationController.navigationBar.translucent = NO;
    //NSString *str=[NSString stringWithFormat:@"分类的%@界面",self.titles];
    //[MobClick endLogPageView:str];
}
/**
 *  定制导航栏视图
 */
-(void)loadNavigationView{
-(void)loadNavigationView {
    [self.view addSubview:self.viewTop];
    self.viewTop.sd_layout.leftSpaceToView(self.view, 0).topSpaceToView(self.view, 0).rightSpaceToView(self.view, 0).heightIs(self.kNavHeight);
    //去掉titlie
    UIView *tview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0.01, 0.01)];
    self.navigationItem.titleView = tview;
@@ -103,38 +121,35 @@
    BackBtn.layer.masksToBounds=YES;
    BackBtn.layer.cornerRadius=15.0;
    [BackBtn addTarget:self action:@selector(backToRoot:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *backBarItem=[[UIBarButtonItem alloc] initWithCustomView:BackBtn];
    [self.viewTop addSubview:BackBtn];
    BackBtn.sd_layout.leftSpaceToView(_viewTop, 16).bottomSpaceToView(_viewTop, 7).widthIs(30).heightIs(30);
    
    //显示分类名
    UILabel *nameLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 65, 20)];
    UILabel *nameLabel=[[UILabel alloc] init];
    nameLabel.backgroundColor=[UIColor clearColor];
    nameLabel.font=[UIFont systemFontOfSize:15];
    nameLabel.textAlignment = NSTextAlignmentCenter;
    [nameLabel setText:self.titles];
    [nameLabel setTextColor:[UIColor whiteColor]];
    UIBarButtonItem *nameBarItem=[[UIBarButtonItem alloc] initWithCustomView:nameLabel];
    //添加分类名和返回按钮到导航栏
    self.navigationItem.leftBarButtonItems=[[NSArray alloc] initWithObjects:backBarItem,nameBarItem,nil];
    //观看记录
    UIButton *recordBtn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 25, 25)];
    [recordBtn setImage:[UIImage imageNamed:@"历史记录"] forState:UIControlStateNormal];
    [recordBtn addTarget:self action:@selector(JumpToRecordView) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *recordBarItem=[[UIBarButtonItem alloc] initWithCustomView:recordBtn];
    [self.viewTop addSubview:nameLabel];
    nameLabel.sd_layout.centerXEqualToView(_viewTop).bottomSpaceToView(_viewTop, 7).widthIs(100).heightIs(30);
    //搜索
    UIButton *SearchBtn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 25, 25)];
    UIButton *SearchBtn = [[UIButton alloc] init];
    [SearchBtn setImage:[UIImage imageNamed:@"搜索"] forState:UIControlStateNormal];
    [SearchBtn addTarget:self action:@selector(JumpToSearchView) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *SearchBarItem=[[UIBarButtonItem alloc] initWithCustomView:SearchBtn];
    
    //空白间距
    UILabel *WhiteLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 8, 10)];
    WhiteLabel.backgroundColor=[UIColor clearColor];
    UIBarButtonItem *WhiteBarItem=[[UIBarButtonItem alloc] initWithCustomView:WhiteLabel];
    [self.viewTop addSubview:SearchBtn];
    SearchBtn.sd_layout.rightSpaceToView(_viewTop, 16).bottomSpaceToView(_viewTop, 7).widthIs(30).heightIs(30);
    
    //添加 观看记录/下载/搜索 到导航栏
    self.navigationItem.rightBarButtonItems=[[NSArray alloc] initWithObjects:SearchBarItem,WhiteBarItem,recordBarItem,nil];
    //观看记录
    UIButton *recordBtn = [[UIButton alloc] init];
    [recordBtn setImage:[UIImage imageNamed:@"历史记录"] forState:UIControlStateNormal];
    [recordBtn addTarget:self action:@selector(JumpToRecordView) forControlEvents:UIControlEventTouchUpInside];
    [self.viewTop addSubview:recordBtn];
    recordBtn.sd_layout.rightSpaceToView(SearchBtn, 10).bottomSpaceToView(_viewTop, 7).widthIs(30).heightIs(30);
}
- (IBAction)topTaped:(UIButton *)sender {
@@ -358,6 +373,7 @@
 *  跳转到历史记录
 */
-(void)JumpToRecordView{
    self.isWhite = YES;
    LookNoteController *LookNoteLookNoteVC=[[LookNoteController alloc] init];
    [self.navigationController pushViewController:LookNoteLookNoteVC animated:YES];
}
@@ -366,8 +382,9 @@
 *  跳转到搜索
 */
-(void)JumpToSearchView{
    searchViewController *searchVC=[[searchViewController alloc] init];
    [self.navigationController pushViewController:searchVC animated:YES];
    SearchController *vc = [[SearchController alloc] init];
    vc.ptitle = [YTHsharedManger startManger].searchTitle;
    [self.navigationController pushViewController:vc animated:YES];
}
/**
@@ -831,4 +848,11 @@
    
}
- (UIView *)viewTop {
    if (!_viewTop) {
        _viewTop = [[UIView alloc] init];
        _viewTop.backgroundColor = [UIColor blackColor];
    }
    return _viewTop;
}
@end
BuWanVideo2.0/YTHNetdata.m
@@ -354,7 +354,7 @@
    [dic setObject:system forKey:@"System"];
    [dic setObject:[NSString md5:sign] forKey:@"Sign"];
    [dic setObject:[[UIDevice currentDevice].identifierForVendor UUIDString] forKey:@"Device"];
    NSLog(@"%@",dic);
    return dic;
}
//getRecommendCategoryVideoBanner
@@ -754,28 +754,30 @@
}
+ (NSMutableDictionary *)pptvVideoPlayStateWithUid:(NSString *)uid withSystem:(NSString *)system WithLoginUid:(NSString *)loginUid vid:(NSString *)vid cid:(NSString *)cid {
    NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithCapacity:0];
    
    [dic setObject:@"getHomeClass" forKey:@"Method"];
    [dic setObject:@"ios" forKey:@"Platform"];
    NSMutableDictionary *parms = [NSMutableDictionary new];
    parms[@"Method"] = @"getHomeClass";
    parms[@"Platform"] = @"ios";
    NSString *sign;
    if (uid!=nil) {
        [dic setObject:uid forKey:@"Uid"];
    if (uid) {
        [parms setObject:uid forKey:@"Uid"];
        sign = [NSString stringWithFormat:@"%@%@%@",@"getHomeClass",uid,system];
    }else{
    } else {
        sign = [NSString stringWithFormat:@"%@%@%@",@"getHomeClass",[[UIDevice currentDevice].identifierForVendor UUIDString],system];
    }
    [dic setObject:vid forKey:@"vid"];
    [dic setObject:cid forKey:@"cid"];
    parms[@"vid"] = vid;
    parms[@"cid"] = cid;
    parms[@"Version"] = Version;
    parms[@"Package"] = Package;
    parms[@"System"] = system;
    
    [dic setObject:Version forKey:@"Version"];
    [dic setObject:Package forKey:@"Package"];
    [dic setObject:system forKey:@"System"];
    [dic setObject:loginUid forKey:@"loginUid"];
    [dic setObject:[NSString md5:sign] forKey:@"Sign"];
    [dic setObject:[[UIDevice currentDevice].identifierForVendor UUIDString] forKey:@"Device"];
    NSLog(@"%@",dic);
    return dic;
    parms[@"loginUid"] = loginUid?:@"";
    parms[@"Sign"] = [NSString md5:sign];
    parms[@"Device"] = [[UIDevice currentDevice].identifierForVendor UUIDString];
    return parms;
}
#pragma mark 精彩频道视频
BuWanVideo2.0/searchDetailViewController.m
@@ -364,8 +364,14 @@
            }
            
        }else{
            [SVProgressHUD showWithStatus:error];
            //提示用户失败
            if ([error containsString:@"404"]) {
                [SVProgressHUD showWithStatus:@"网络出错"];
            } else {
                [SVProgressHUD showWithStatus:error];
            }
            // 提示用户失败
            [self.DisplayTabelView.mj_header endRefreshing];
            [self.DisplayTabelView.mj_footer endRefreshing];
        }
BuWanVideo2.0/subregionView.m
@@ -169,13 +169,13 @@
//    _nativeAd.delegate = self;
//    [_nativeAd loadAd:1];
    
    // 支持视频广告的 PlacementId 会混出视频与图片广告
//    self.nativeExpressAd = [[GDTNativeExpressAd alloc] initWithAppId:GDTADkey placementId:@"6000418684535350" adSize:CGSizeMake(KScreenW, (KScreenW-20)/16*9 + 10)];
//    self.nativeExpressAd.delegate = self;
//    // 配置视频播放属性
//    self.nativeExpressAd.videoAutoPlayOnWWAN = YES;
//    self.nativeExpressAd.videoMuted = NO;
//    [self.nativeExpressAd loadAd:1];
   //  支持视频广告的 PlacementId 会混出视频与图片广告
    self.nativeExpressAd = [[GDTNativeExpressAd alloc] initWithAppId:GDTADkey placementId:@"6000418684535350" adSize:CGSizeMake(KScreenW, (KScreenW-20)/16*9 + 10)];
    self.nativeExpressAd.delegate = self;
    // 配置视频播放属性
    self.nativeExpressAd.videoAutoPlayOnWWAN = YES;
    self.nativeExpressAd.videoMuted = NO;
    [self.nativeExpressAd loadAd:1];
}
- (void)clickRemoveAd:(id)sender {