apple 5 năm trước cách đây
mục cha
commit
b24a0a62e2
36 tập tin đã thay đổi với 999 bổ sung3228 xóa
  1. 96 80
      ios/JianYuIOS/JianYuIOS.xcodeproj/project.pbxproj
  2. BIN
      ios/JianYuIOS/JianYuIOS.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
  3. 13 4
      ios/JianYuIOS/JianYuIOS/AppDelegate.m
  4. 2 0
      ios/JianYuIOS/JianYuIOS/BaseClass1/GlobalData.h
  5. 1 1
      ios/JianYuIOS/JianYuIOS/BaseClass1/GlobalData.m
  6. 18 12
      ios/JianYuIOS/JianYuIOS/BaseClass1/PrefixHeader.pch
  7. 56 8
      ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewExpViewController.m
  8. 74 12
      ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewMineViewController.m
  9. 115 16
      ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewSearchViewController.m
  10. 50 6
      ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewSubViewController.m
  11. 0 16
      ios/JianYuIOS/JianYuIOS/CustomView/LXProgressView.h
  12. 0 60
      ios/JianYuIOS/JianYuIOS/CustomView/LXProgressView.m
  13. 0 36
      ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgress.h
  14. 0 204
      ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgress.m
  15. 0 21
      ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgressView.h
  16. 0 75
      ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgressView.m
  17. 0 16
      ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.h
  18. 0 33
      ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.m
  19. 0 84
      ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.xib
  20. 5 0
      ios/JianYuIOS/JianYuIOS/JYTabBarController.m
  21. 0 24
      ios/JianYuIOS/JianYuIOS/ViewController.h
  22. 0 869
      ios/JianYuIOS/JianYuIOS/ViewController.m
  23. 0 102
      ios/JianYuIOS/JianYuIOS/guide/Reachability.h
  24. 0 475
      ios/JianYuIOS/JianYuIOS/guide/Reachability.m
  25. 0 59
      ios/JianYuIOS/JianYuIOS/guide/ZKControl.h
  26. 0 301
      ios/JianYuIOS/JianYuIOS/guide/ZKControl.m
  27. 0 22
      ios/JianYuIOS/JianYuIOS/guide/ZKGuideView.h
  28. 0 300
      ios/JianYuIOS/JianYuIOS/guide/ZKGuideView.m
  29. 0 57
      ios/JianYuIOS/JianYuIOS/guide/ZKMethod.h
  30. 0 182
      ios/JianYuIOS/JianYuIOS/guide/ZKMethod.m
  31. 0 22
      ios/JianYuIOS/JianYuIOS/guide/ZKPrivacyView.h
  32. 0 131
      ios/JianYuIOS/JianYuIOS/guide/ZKPrivacyView.m
  33. 48 0
      ios/JianYuIOS/JianYuIOS/tool/ZKClipboardView.h
  34. 133 0
      ios/JianYuIOS/JianYuIOS/tool/ZKClipboardView.m
  35. 49 0
      ios/JianYuIOS/JianYuIOS/tool/ZKModal.h
  36. 339 0
      ios/JianYuIOS/JianYuIOS/tool/ZKModal.m

+ 96 - 80
ios/JianYuIOS/JianYuIOS.xcodeproj/project.pbxproj

@@ -7,8 +7,6 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		181F894A2472305B00CD0019 /* NJKWebViewProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = 181F89462472305A00CD0019 /* NJKWebViewProgress.m */; };
-		181F894B2472305B00CD0019 /* NJKWebViewProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 181F89472472305A00CD0019 /* NJKWebViewProgressView.m */; };
 		182ECCFB22FD221100FFC79E /* qidongye@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 182ECCFA22FD221000FFC79E /* qidongye@2x.png */; };
 		182ECCFD22FD223A00FFC79E /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 182ECCFC22FD223A00FFC79E /* logo.png */; };
 		183DDB9224961EA400F58FB5 /* dropload.js in Resources */ = {isa = PBXBuildFile; fileRef = 183DDB6B24961EA400F58FB5 /* dropload.js */; };
@@ -51,13 +49,8 @@
 		183DDBB724961EA400F58FB5 /* weui.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 183DDB9024961EA400F58FB5 /* weui.min.js */; };
 		183DDBB824961EA400F58FB5 /* axios.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 183DDB9124961EA400F58FB5 /* axios.min.js */; };
 		1849F8FA248B6E94008F9023 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1849F8F9248B6E94008F9023 /* JavaScriptCore.framework */; };
-		184EC6532435B39200CA89F0 /* ZKGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 184EC6522435B39200CA89F0 /* ZKGuideView.m */; };
-		184EC6592435B93600CA89F0 /* ZKControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 184EC6572435B93600CA89F0 /* ZKControl.m */; };
-		184EC6632435BA1D00CA89F0 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 184EC6612435BA1D00CA89F0 /* Reachability.m */; };
-		184EC6662435C45C00CA89F0 /* ZKMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 184EC6652435C45C00CA89F0 /* ZKMethod.m */; };
 		1859ECB524923B290046A36F /* JYNewWebController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1859ECB424923B290046A36F /* JYNewWebController.m */; };
 		185F510A23A76765009F9022 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 185F510923A76765009F9022 /* CoreLocation.framework */; };
-		1876C3FC219920DE00BC23DE /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1876C3FB219920DE00BC23DE /* ViewController.m */; };
 		187B4EE321EC356100A9368D /* UIView+Extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 187B4EE221EC356100A9368D /* UIView+Extension.m */; };
 		187B4EE621EC635700A9368D /* GlobalData.m in Sources */ = {isa = PBXBuildFile; fileRef = 187B4EE521EC635700A9368D /* GlobalData.m */; };
 		188036FB2193EA09006F9D7B /* JYNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 188036F72193EA08006F9D7B /* JYNavigationController.m */; };
@@ -68,9 +61,20 @@
 		188BB1172489D12000494F58 /* JYNewSubViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 188BB1162489D12000494F58 /* JYNewSubViewController.m */; };
 		188BB11A2489D12F00494F58 /* JYNewExpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 188BB1192489D12F00494F58 /* JYNewExpViewController.m */; };
 		188BB11D2489D14800494F58 /* JYNewMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 188BB11C2489D14800494F58 /* JYNewMineViewController.m */; };
-		189970EC244441740058C0B1 /* ZKPrivacyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 189970EB244441740058C0B1 /* ZKPrivacyView.m */; };
 		18AEC20B249332C500391584 /* JYKeyCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AEC20A249332C500391584 /* JYKeyCustom.m */; };
 		18AEC262249362E900391584 /* JYOldCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AEC261249362E900391584 /* JYOldCustom.m */; };
+		18C78C1024E240CE001208F2 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78BF724E240CE001208F2 /* Reachability.m */; };
+		18C78C1124E240CE001208F2 /* ZKMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78BF824E240CE001208F2 /* ZKMethod.m */; };
+		18C78C1224E240CE001208F2 /* ZKGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78BF924E240CE001208F2 /* ZKGuideView.m */; };
+		18C78C1324E240CE001208F2 /* ZKControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78BFA24E240CE001208F2 /* ZKControl.m */; };
+		18C78C1424E240CE001208F2 /* ZKPrivacyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78BFB24E240CE001208F2 /* ZKPrivacyView.m */; };
+		18C78C1524E240CE001208F2 /* NJKWebViewProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0324E240CE001208F2 /* NJKWebViewProgress.m */; };
+		18C78C1624E240CE001208F2 /* LXProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0424E240CE001208F2 /* LXProgressView.m */; };
+		18C78C1724E240CE001208F2 /* NoNetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0524E240CE001208F2 /* NoNetView.m */; };
+		18C78C1824E240CE001208F2 /* NoNetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 18C78C0724E240CE001208F2 /* NoNetView.xib */; };
+		18C78C1924E240CE001208F2 /* NJKWebViewProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0924E240CE001208F2 /* NJKWebViewProgressView.m */; };
+		18C78C1A24E240CE001208F2 /* ZKClipboardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0C24E240CE001208F2 /* ZKClipboardView.m */; };
+		18C78C1B24E240CE001208F2 /* ZKModal.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C78C0F24E240CE001208F2 /* ZKModal.m */; };
 		18C9D8E7219A5F9F001AC829 /* UITabBar+badge.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C9D8E6219A5F9F001AC829 /* UITabBar+badge.m */; };
 		18E05CF922F11CDE001E5B44 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 18E05CF322F11CDD001E5B44 /* README.txt */; };
 		18E05CFA22F11CDE001E5B44 /* libWeChatSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18E05CF522F11CDD001E5B44 /* libWeChatSDK.a */; };
@@ -92,14 +96,12 @@
 		C519972D2020238D007946E8 /* LXMD5.m in Sources */ = {isa = PBXBuildFile; fileRef = C51997242020238D007946E8 /* LXMD5.m */; };
 		C519972E2020238D007946E8 /* LXViewControllerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C51997282020238D007946E8 /* LXViewControllerManager.m */; };
 		C519972F2020238D007946E8 /* LXDataBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C519972A2020238D007946E8 /* LXDataBaseManager.m */; };
-		C5321C76202BD89B0023CFEA /* LXProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = C5321C75202BD89B0023CFEA /* LXProgressView.m */; };
 		C550BEF920180AF000F0BC2A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C550BEF620180AF000F0BC2A /* AppDelegate.m */; };
 		C550BEFA20180AF000F0BC2A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C550BEF720180AF000F0BC2A /* main.m */; };
 		C550BEFB20180AF000F0BC2A /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C550BEF820180AF000F0BC2A /* Info.plist */; };
 		C550BF342018590A00F0BC2A /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C550BF332018590A00F0BC2A /* libsqlite3.tbd */; };
 		C550BF362018591400F0BC2A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C550BF352018591400F0BC2A /* CoreGraphics.framework */; };
 		C555EC282047DC5E0084642F /* LXNetworkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C555EC262047DC5E0084642F /* LXNetworkManager.m */; };
-		C555EC2A2047E57C0084642F /* NoNetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C555EC292047E57C0084642F /* NoNetView.xib */; };
 		C55FF3BF20230E7E0088AECC /* NewWebController.m in Sources */ = {isa = PBXBuildFile; fileRef = C55FF3BD20230E7E0088AECC /* NewWebController.m */; };
 		C55FF3C020230E7E0088AECC /* NewWebController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C55FF3BE20230E7E0088AECC /* NewWebController.xib */; };
 		C5B194D4202EA46D00F0AC76 /* arrowLeft@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5B194D3202EA46C00F0AC76 /* arrowLeft@2x.png */; };
@@ -110,7 +112,6 @@
 		C5BE6E5F2011D99100F28B36 /* JianYuIOSUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = C5BE6E5E2011D99100F28B36 /* JianYuIOSUITests.m */; };
 		C5D01D7E20282543007F207E /* back_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5D01D7D20282543007F207E /* back_normal@2x.png */; };
 		C5FE4B5220468AED00CC8A2F /* noNet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5FE4B5120468AED00CC8A2F /* noNet@2x.png */; };
-		C5FE4B5720468BC900CC8A2F /* NoNetView.m in Sources */ = {isa = PBXBuildFile; fileRef = C5FE4B5620468BC900CC8A2F /* NoNetView.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -134,10 +135,6 @@
 		0CA962A24EED00910F83394E /* libPods-JianYuIOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JianYuIOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		10D9BC27D00CB4DF3F791728 /* Pods-JianYuIOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JianYuIOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.release.xcconfig"; sourceTree = "<group>"; };
 		1800141B24CFC19200EEC1AF /* 剑鱼标讯Debug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "剑鱼标讯Debug.entitlements"; sourceTree = "<group>"; };
-		181F89462472305A00CD0019 /* NJKWebViewProgress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJKWebViewProgress.m; sourceTree = "<group>"; };
-		181F89472472305A00CD0019 /* NJKWebViewProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJKWebViewProgressView.m; sourceTree = "<group>"; };
-		181F89482472305B00CD0019 /* NJKWebViewProgress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJKWebViewProgress.h; sourceTree = "<group>"; };
-		181F89492472305B00CD0019 /* NJKWebViewProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJKWebViewProgressView.h; sourceTree = "<group>"; };
 		182ECCFA22FD221000FFC79E /* qidongye@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "qidongye@2x.png"; sourceTree = "<group>"; };
 		182ECCFC22FD223A00FFC79E /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
 		183DDB6B24961EA400F58FB5 /* dropload.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = dropload.js; sourceTree = "<group>"; };
@@ -180,18 +177,9 @@
 		183DDB9024961EA400F58FB5 /* weui.min.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = weui.min.js; sourceTree = "<group>"; };
 		183DDB9124961EA400F58FB5 /* axios.min.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = axios.min.js; sourceTree = "<group>"; };
 		1849F8F9248B6E94008F9023 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
-		184EC6512435B39200CA89F0 /* ZKGuideView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZKGuideView.h; sourceTree = "<group>"; };
-		184EC6522435B39200CA89F0 /* ZKGuideView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZKGuideView.m; sourceTree = "<group>"; };
-		184EC6572435B93600CA89F0 /* ZKControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKControl.m; sourceTree = "<group>"; };
-		184EC6582435B93600CA89F0 /* ZKControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKControl.h; sourceTree = "<group>"; };
-		184EC6612435BA1D00CA89F0 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
-		184EC6622435BA1D00CA89F0 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
-		184EC6642435C45C00CA89F0 /* ZKMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKMethod.h; sourceTree = "<group>"; };
-		184EC6652435C45C00CA89F0 /* ZKMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKMethod.m; sourceTree = "<group>"; };
 		1859ECB324923B290046A36F /* JYNewWebController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JYNewWebController.h; sourceTree = "<group>"; };
 		1859ECB424923B290046A36F /* JYNewWebController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JYNewWebController.m; sourceTree = "<group>"; };
 		185F510923A76765009F9022 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
-		1876C3FB219920DE00BC23DE /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
 		187B4EE121EC356100A9368D /* UIView+Extension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Extension.h"; sourceTree = "<group>"; };
 		187B4EE221EC356100A9368D /* UIView+Extension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Extension.m"; sourceTree = "<group>"; };
 		187B4EE421EC635700A9368D /* GlobalData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GlobalData.h; sourceTree = "<group>"; };
@@ -210,13 +198,34 @@
 		188BB1192489D12F00494F58 /* JYNewExpViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JYNewExpViewController.m; sourceTree = "<group>"; };
 		188BB11B2489D14800494F58 /* JYNewMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JYNewMineViewController.h; sourceTree = "<group>"; };
 		188BB11C2489D14800494F58 /* JYNewMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JYNewMineViewController.m; sourceTree = "<group>"; };
-		189970EA244441740058C0B1 /* ZKPrivacyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZKPrivacyView.h; sourceTree = "<group>"; };
-		189970EB244441740058C0B1 /* ZKPrivacyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZKPrivacyView.m; sourceTree = "<group>"; };
 		18AEC209249332C500391584 /* JYKeyCustom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JYKeyCustom.h; sourceTree = "<group>"; };
 		18AEC20A249332C500391584 /* JYKeyCustom.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JYKeyCustom.m; sourceTree = "<group>"; };
 		18AEC260249362E900391584 /* JYOldCustom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JYOldCustom.h; sourceTree = "<group>"; };
 		18AEC261249362E900391584 /* JYOldCustom.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JYOldCustom.m; sourceTree = "<group>"; };
 		18B2DF4021ACDA5D00B5C93F /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
+		18C78BF724E240CE001208F2 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
+		18C78BF824E240CE001208F2 /* ZKMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKMethod.m; sourceTree = "<group>"; };
+		18C78BF924E240CE001208F2 /* ZKGuideView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKGuideView.m; sourceTree = "<group>"; };
+		18C78BFA24E240CE001208F2 /* ZKControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKControl.m; sourceTree = "<group>"; };
+		18C78BFB24E240CE001208F2 /* ZKPrivacyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKPrivacyView.m; sourceTree = "<group>"; };
+		18C78BFC24E240CE001208F2 /* ZKMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKMethod.h; sourceTree = "<group>"; };
+		18C78BFD24E240CE001208F2 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
+		18C78BFE24E240CE001208F2 /* ZKControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKControl.h; sourceTree = "<group>"; };
+		18C78BFF24E240CE001208F2 /* ZKGuideView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKGuideView.h; sourceTree = "<group>"; };
+		18C78C0024E240CE001208F2 /* ZKPrivacyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKPrivacyView.h; sourceTree = "<group>"; };
+		18C78C0224E240CE001208F2 /* NJKWebViewProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJKWebViewProgressView.h; sourceTree = "<group>"; };
+		18C78C0324E240CE001208F2 /* NJKWebViewProgress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJKWebViewProgress.m; sourceTree = "<group>"; };
+		18C78C0424E240CE001208F2 /* LXProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LXProgressView.m; sourceTree = "<group>"; };
+		18C78C0524E240CE001208F2 /* NoNetView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NoNetView.m; sourceTree = "<group>"; };
+		18C78C0624E240CE001208F2 /* LXProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LXProgressView.h; sourceTree = "<group>"; };
+		18C78C0724E240CE001208F2 /* NoNetView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NoNetView.xib; sourceTree = "<group>"; };
+		18C78C0824E240CE001208F2 /* NJKWebViewProgress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJKWebViewProgress.h; sourceTree = "<group>"; };
+		18C78C0924E240CE001208F2 /* NJKWebViewProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJKWebViewProgressView.m; sourceTree = "<group>"; };
+		18C78C0A24E240CE001208F2 /* NoNetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoNetView.h; sourceTree = "<group>"; };
+		18C78C0C24E240CE001208F2 /* ZKClipboardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKClipboardView.m; sourceTree = "<group>"; };
+		18C78C0D24E240CE001208F2 /* ZKModal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKModal.h; sourceTree = "<group>"; };
+		18C78C0E24E240CE001208F2 /* ZKClipboardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZKClipboardView.h; sourceTree = "<group>"; };
+		18C78C0F24E240CE001208F2 /* ZKModal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZKModal.m; sourceTree = "<group>"; };
 		18C9D8E5219A5F9F001AC829 /* UITabBar+badge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITabBar+badge.h"; sourceTree = "<group>"; };
 		18C9D8E6219A5F9F001AC829 /* UITabBar+badge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITabBar+badge.m"; sourceTree = "<group>"; };
 		18E05CF122F11CDD001E5B44 /* WXApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApi.h; sourceTree = "<group>"; };
@@ -249,8 +258,6 @@
 		C51997292020238D007946E8 /* PrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = "<group>"; };
 		C519972A2020238D007946E8 /* LXDataBaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LXDataBaseManager.m; sourceTree = "<group>"; };
 		C519972B2020238D007946E8 /* LXUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LXUserDefaults.h; sourceTree = "<group>"; };
-		C5321C74202BD89B0023CFEA /* LXProgressView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LXProgressView.h; sourceTree = "<group>"; };
-		C5321C75202BD89B0023CFEA /* LXProgressView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LXProgressView.m; sourceTree = "<group>"; };
 		C550BEF420180AB700F0BC2A /* JianYuIOS.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = JianYuIOS.entitlements; sourceTree = "<group>"; };
 		C550BEF520180AF000F0BC2A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
 		C550BEF620180AF000F0BC2A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -260,13 +267,11 @@
 		C550BF352018591400F0BC2A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
 		C555EC262047DC5E0084642F /* LXNetworkManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LXNetworkManager.m; sourceTree = "<group>"; };
 		C555EC272047DC5E0084642F /* LXNetworkManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LXNetworkManager.h; sourceTree = "<group>"; };
-		C555EC292047E57C0084642F /* NoNetView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NoNetView.xib; sourceTree = "<group>"; };
 		C55FF3BC20230E7E0088AECC /* NewWebController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewWebController.h; sourceTree = "<group>"; };
 		C55FF3BD20230E7E0088AECC /* NewWebController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewWebController.m; sourceTree = "<group>"; };
 		C55FF3BE20230E7E0088AECC /* NewWebController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NewWebController.xib; sourceTree = "<group>"; };
 		C5B194D3202EA46C00F0AC76 /* arrowLeft@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "arrowLeft@2x.png"; sourceTree = "<group>"; };
 		C5BE6E372011D99100F28B36 /* 剑鱼标讯.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "剑鱼标讯.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		C5BE6E3D2011D99100F28B36 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
 		C5BE6E412011D99100F28B36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
 		C5BE6E432011D99100F28B36 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 		C5BE6E462011D99100F28B36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
@@ -278,8 +283,6 @@
 		C5BE6E602011D99100F28B36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		C5D01D7D20282543007F207E /* back_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back_normal@2x.png"; sourceTree = "<group>"; };
 		C5FE4B5120468AED00CC8A2F /* noNet@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "noNet@2x.png"; sourceTree = "<group>"; };
-		C5FE4B5520468BC900CC8A2F /* NoNetView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoNetView.h; sourceTree = "<group>"; };
-		C5FE4B5620468BC900CC8A2F /* NoNetView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoNetView.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -372,23 +375,6 @@
 			path = local;
 			sourceTree = "<group>";
 		};
-		184EC65D2435B9A300CA89F0 /* guide */ = {
-			isa = PBXGroup;
-			children = (
-				184EC6512435B39200CA89F0 /* ZKGuideView.h */,
-				184EC6522435B39200CA89F0 /* ZKGuideView.m */,
-				189970EA244441740058C0B1 /* ZKPrivacyView.h */,
-				189970EB244441740058C0B1 /* ZKPrivacyView.m */,
-				184EC6582435B93600CA89F0 /* ZKControl.h */,
-				184EC6572435B93600CA89F0 /* ZKControl.m */,
-				184EC6642435C45C00CA89F0 /* ZKMethod.h */,
-				184EC6652435C45C00CA89F0 /* ZKMethod.m */,
-				184EC6622435BA1D00CA89F0 /* Reachability.h */,
-				184EC6612435BA1D00CA89F0 /* Reachability.m */,
-			);
-			path = guide;
-			sourceTree = "<group>";
-		};
 		188037092193EAD1006F9D7B /* Classes(模块) */ = {
 			isa = PBXGroup;
 			children = (
@@ -406,6 +392,52 @@
 			path = "Classes(模块)";
 			sourceTree = "<group>";
 		};
+		18C78BF624E240CE001208F2 /* guide */ = {
+			isa = PBXGroup;
+			children = (
+				18C78BFE24E240CE001208F2 /* ZKControl.h */,
+				18C78BFA24E240CE001208F2 /* ZKControl.m */,
+				18C78C0024E240CE001208F2 /* ZKPrivacyView.h */,
+				18C78BFB24E240CE001208F2 /* ZKPrivacyView.m */,
+				18C78BFC24E240CE001208F2 /* ZKMethod.h */,
+				18C78BF824E240CE001208F2 /* ZKMethod.m */,
+				18C78BFD24E240CE001208F2 /* Reachability.h */,
+				18C78BF724E240CE001208F2 /* Reachability.m */,
+				18C78BFF24E240CE001208F2 /* ZKGuideView.h */,
+				18C78BF924E240CE001208F2 /* ZKGuideView.m */,
+			);
+			name = guide;
+			path = "../../../../远程办公/jyiosapp/ios/JianYuIOS/JianYuIOS/guide";
+			sourceTree = "<group>";
+		};
+		18C78C0124E240CE001208F2 /* CustomView */ = {
+			isa = PBXGroup;
+			children = (
+				18C78C0824E240CE001208F2 /* NJKWebViewProgress.h */,
+				18C78C0924E240CE001208F2 /* NJKWebViewProgressView.m */,
+				18C78C0224E240CE001208F2 /* NJKWebViewProgressView.h */,
+				18C78C0324E240CE001208F2 /* NJKWebViewProgress.m */,
+				18C78C0624E240CE001208F2 /* LXProgressView.h */,
+				18C78C0424E240CE001208F2 /* LXProgressView.m */,
+				18C78C0A24E240CE001208F2 /* NoNetView.h */,
+				18C78C0524E240CE001208F2 /* NoNetView.m */,
+				18C78C0724E240CE001208F2 /* NoNetView.xib */,
+			);
+			name = CustomView;
+			path = "../../../../远程办公/jyiosapp/ios/JianYuIOS/JianYuIOS/CustomView";
+			sourceTree = "<group>";
+		};
+		18C78C0B24E240CE001208F2 /* tool */ = {
+			isa = PBXGroup;
+			children = (
+				18C78C0C24E240CE001208F2 /* ZKClipboardView.m */,
+				18C78C0E24E240CE001208F2 /* ZKClipboardView.h */,
+				18C78C0D24E240CE001208F2 /* ZKModal.h */,
+				18C78C0F24E240CE001208F2 /* ZKModal.m */,
+			);
+			path = tool;
+			sourceTree = "<group>";
+		};
 		18E05CEF22F11CDD001E5B44 /* Libs(第三方) */ = {
 			isa = PBXGroup;
 			children = (
@@ -497,22 +529,6 @@
 			path = BaseClass1;
 			sourceTree = "<group>";
 		};
-		C5321C73202BD8800023CFEA /* CustomView */ = {
-			isa = PBXGroup;
-			children = (
-				181F89482472305B00CD0019 /* NJKWebViewProgress.h */,
-				181F89462472305A00CD0019 /* NJKWebViewProgress.m */,
-				181F89492472305B00CD0019 /* NJKWebViewProgressView.h */,
-				181F89472472305A00CD0019 /* NJKWebViewProgressView.m */,
-				C5321C74202BD89B0023CFEA /* LXProgressView.h */,
-				C5321C75202BD89B0023CFEA /* LXProgressView.m */,
-				C5FE4B5520468BC900CC8A2F /* NoNetView.h */,
-				C5FE4B5620468BC900CC8A2F /* NoNetView.m */,
-				C555EC292047E57C0084642F /* NoNetView.xib */,
-			);
-			path = CustomView;
-			sourceTree = "<group>";
-		};
 		C5493106201F04120080CD63 /* Image */ = {
 			isa = PBXGroup;
 			children = (
@@ -550,17 +566,16 @@
 		C5BE6E392011D99100F28B36 /* JianYuIOS */ = {
 			isa = PBXGroup;
 			children = (
+				18C78C0124E240CE001208F2 /* CustomView */,
+				18C78BF624E240CE001208F2 /* guide */,
+				18C78C0B24E240CE001208F2 /* tool */,
 				1800141B24CFC19200EEC1AF /* 剑鱼标讯Debug.entitlements */,
 				183DDB6A24961EA400F58FB5 /* local */,
-				184EC65D2435B9A300CA89F0 /* guide */,
 				18E05CEF22F11CDD001E5B44 /* Libs(第三方) */,
-				C5321C73202BD8800023CFEA /* CustomView */,
 				C519972120202348007946E8 /* BaseClass1 */,
 				C5493106201F04120080CD63 /* Image */,
 				C550BEF420180AB700F0BC2A /* JianYuIOS.entitlements */,
 				188037092193EAD1006F9D7B /* Classes(模块) */,
-				C5BE6E3D2011D99100F28B36 /* ViewController.h */,
-				1876C3FB219920DE00BC23DE /* ViewController.m */,
 				188036FA2193EA09006F9D7B /* JYNavigationController.h */,
 				188036F72193EA08006F9D7B /* JYNavigationController.m */,
 				188036F82193EA09006F9D7B /* JYTabBarController.h */,
@@ -725,6 +740,7 @@
 				183DDBAD24961EA400F58FB5 /* swiper.min.css in Resources */,
 				183DDBB424961EA400F58FB5 /* jquery.cookie.js in Resources */,
 				183DDBA724961EA400F58FB5 /* jquery.min.js in Resources */,
+				18C78C1824E240CE001208F2 /* NoNetView.xib in Resources */,
 				C5D01D7E20282543007F207E /* back_normal@2x.png in Resources */,
 				183DDB9324961EA400F58FB5 /* template-web.js in Resources */,
 				183DDBA424961EA400F58FB5 /* 20200522173921005m1D95f05.png in Resources */,
@@ -762,7 +778,6 @@
 				183DDBB224961EA400F58FB5 /* layout.css in Resources */,
 				C5BE6E472011D99100F28B36 /* LaunchScreen.storyboard in Resources */,
 				C5BE6E442011D99100F28B36 /* Assets.xcassets in Resources */,
-				C555EC2A2047E57C0084642F /* NoNetView.xib in Resources */,
 				183DDB9924961EA400F58FB5 /* swiper.min.js in Resources */,
 				183DDBA624961EA400F58FB5 /* 20200522173921005m1D95f05.jpg in Resources */,
 				183DDB9F24961EA400F58FB5 /* bg_4.jpg in Resources */,
@@ -839,35 +854,36 @@
 			files = (
 				1859ECB524923B290046A36F /* JYNewWebController.m in Sources */,
 				18EF1114232F683C006D4579 /* UIDevice+Hardware.m in Sources */,
-				1876C3FC219920DE00BC23DE /* ViewController.m in Sources */,
 				C55FF3BF20230E7E0088AECC /* NewWebController.m in Sources */,
 				C519972D2020238D007946E8 /* LXMD5.m in Sources */,
 				18C9D8E7219A5F9F001AC829 /* UITabBar+badge.m in Sources */,
+				18C78C1424E240CE001208F2 /* ZKPrivacyView.m in Sources */,
 				C555EC282047DC5E0084642F /* LXNetworkManager.m in Sources */,
-				189970EC244441740058C0B1 /* ZKPrivacyView.m in Sources */,
 				C519972F2020238D007946E8 /* LXDataBaseManager.m in Sources */,
 				187B4EE321EC356100A9368D /* UIView+Extension.m in Sources */,
+				18C78C1224E240CE001208F2 /* ZKGuideView.m in Sources */,
 				188BB11D2489D14800494F58 /* JYNewMineViewController.m in Sources */,
 				188BB11A2489D12F00494F58 /* JYNewExpViewController.m in Sources */,
 				18AEC262249362E900391584 /* JYOldCustom.m in Sources */,
 				188BB1172489D12000494F58 /* JYNewSubViewController.m in Sources */,
-				184EC6662435C45C00CA89F0 /* ZKMethod.m in Sources */,
 				C550BEFA20180AF000F0BC2A /* main.m in Sources */,
 				188036FC2193EA09006F9D7B /* JYTabBarController.m in Sources */,
-				184EC6532435B39200CA89F0 /* ZKGuideView.m in Sources */,
+				18C78C1324E240CE001208F2 /* ZKControl.m in Sources */,
 				188036FB2193EA09006F9D7B /* JYNavigationController.m in Sources */,
-				C5321C76202BD89B0023CFEA /* LXProgressView.m in Sources */,
 				C519972C2020238D007946E8 /* LXUserDefaults.m in Sources */,
-				181F894A2472305B00CD0019 /* NJKWebViewProgress.m in Sources */,
+				18C78C1524E240CE001208F2 /* NJKWebViewProgress.m in Sources */,
+				18C78C1024E240CE001208F2 /* Reachability.m in Sources */,
+				18C78C1924E240CE001208F2 /* NJKWebViewProgressView.m in Sources */,
 				188BB1142489D11300494F58 /* JYNewSearchViewController.m in Sources */,
-				C5FE4B5720468BC900CC8A2F /* NoNetView.m in Sources */,
+				18C78C1124E240CE001208F2 /* ZKMethod.m in Sources */,
 				C519972E2020238D007946E8 /* LXViewControllerManager.m in Sources */,
 				18AEC20B249332C500391584 /* JYKeyCustom.m in Sources */,
-				184EC6592435B93600CA89F0 /* ZKControl.m in Sources */,
-				181F894B2472305B00CD0019 /* NJKWebViewProgressView.m in Sources */,
+				18C78C1B24E240CE001208F2 /* ZKModal.m in Sources */,
 				C550BEF920180AF000F0BC2A /* AppDelegate.m in Sources */,
+				18C78C1A24E240CE001208F2 /* ZKClipboardView.m in Sources */,
+				18C78C1724E240CE001208F2 /* NoNetView.m in Sources */,
 				187B4EE621EC635700A9368D /* GlobalData.m in Sources */,
-				184EC6632435BA1D00CA89F0 /* Reachability.m in Sources */,
+				18C78C1624E240CE001208F2 /* LXProgressView.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

BIN
ios/JianYuIOS/JianYuIOS.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate


+ 13 - 4
ios/JianYuIOS/JianYuIOS/AppDelegate.m

@@ -55,7 +55,7 @@
     NSLog(@"初始化");
 //    NSLog(@"%@",[[GlobalData shareInstance] getDocumentPath]);
 //    NSLog(@"%@",[[GlobalData shareInstance] getfsCachedData]);
-    [LXDataBaseManager shareDataBaseManager];//初始化单例
+    [GlobalData shareInstance];
     [LXViewControllerManager shareViewControllerManager];
     [self initJPush:launchOptions];
     [self initUM];
@@ -222,7 +222,7 @@
 
 - (void)applicationDidBecomeActive:(UIApplication *)application {
     // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
-    
+    //后台进入前台
     [self removeImgView];
     [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
     [JPUSHService setBadge:0];
@@ -230,6 +230,16 @@
     [LXUserDefaults saveNotifyState:[[UIApplication sharedApplication] currentUserNotificationSettings].types != UIUserNotificationTypeNone ? 1 : 0];
     [LXUserDefaults saveIsInstallWeiXin:[[UMSocialManager defaultManager] isInstall:UMSocialPlatformType_WechatSession]?@"1":@"0"];
     [[NSNotificationCenter defaultCenter] postNotificationName:kUpdateNotifyState object:nil];
+    
+    //查看粘贴板数据
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    //发通知
+    //你身边的人都在用剑鱼标讯超级订阅找商机就差你了!%20复制这条信息:CEWYJJLKN,打开【剑鱼标讯APP】识别复制口令,快速获取全国招标项目!
+    NSLog(@"粘贴板内容:%@",content);
+    if ([content containsString:@"剑鱼标讯"]&&[GlobalData shareInstance].isOpen == YES) {
+        //如果符合条件发送通知
+        [[NSNotificationCenter defaultCenter] postNotificationName:UpdateClipboard object:nil userInfo:@{@"content":content}];
+    }
 }
 
 
@@ -383,8 +393,7 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
             
             if([userInfo[@"type"] isEqualToString:@"message"]||[userInfo[@"type"] isEqualToString:@"titleMessage"]) {
                 
-                [[LXDataBaseManager shareDataBaseManager] changeCatagoryTypeWithURL:userInfo[@"url"]];
-                
+
                 NSDictionary * infoDic;
                 if(self.wakeUpBool) {
                     //刚启动

+ 2 - 0
ios/JianYuIOS/JianYuIOS/BaseClass1/GlobalData.h

@@ -15,6 +15,8 @@
 @property (nonatomic,assign)BOOL subIsRed;
 @property (nonatomic,assign)BOOL mineIsRed;//红点
 @property (nonatomic,assign)BOOL isReLogin;//是否重新登录
+@property (nonatomic,assign)BOOL isOpen;//是否打开-启动
+
 //@property (nonatomic,assign)BOOL isSideslip;//是否侧滑
 
 //Plist 表相关

+ 1 - 1
ios/JianYuIOS/JianYuIOS/BaseClass1/GlobalData.m

@@ -60,7 +60,7 @@
     self.subIsRed = NO;
     self.mineIsRed = NO;
     self.isReLogin = NO;
-//    self.isSideslip = NO;
+    self.isOpen = NO;
 }
 
 -(NSString *)getPlistPath {

+ 18 - 12
ios/JianYuIOS/JianYuIOS/BaseClass1/PrefixHeader.pch

@@ -11,7 +11,7 @@
 
 #import "constant.h"
 #import "LXUserDefaults.h"
-#import "LXDataBaseManager.h"
+
 #import "LXProgressView.h"
 #import "LXNetworkManager.h"
 #import "AppDelegate.h"
@@ -28,7 +28,7 @@
 
 //色值转换
 #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
-
+#define UIColorRGBA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:a]
 
 // 判断是否是iPhone X  及其以上
 #define iPhoneX (HEIGHT>=812)
@@ -100,8 +100,6 @@ _Pragma("clang diagnostic pop")\
 #define ClickPayMethods @"ClickPayMethods"
 //支付回调通知
 #define AlipayWXpayStatus @"AlipayWXpayStatus"
-
-
 //前往登录通知-tabbar
 #define LoginIndexTabBar @"LoginIndexTabBar"
 //刷新非当前页
@@ -110,9 +108,14 @@ _Pragma("clang diagnostic pop")\
 #define RefreshAllVC @"RefreshAllVC"
 //只刷新我的和百宝箱
 #define RefreshExpAndMine @"RefreshExpAndMine"
-
 //通知-后台唤起-
 #define RemoteNotifications @"RemoteNotifications"
+//通知-粘贴板数据
+#define UpdateClipboard @"UpdateClipboard"
+
+
+
+
 
 //渐变色
 #define ColorGradientArray [NSArray arrayWithObjects:(id)UIColorFromRGB(0x094303).CGColor,(id)UIColorFromRGB(0x343d32).CGColor,(id)UIColorFromRGB(0xB2B7B7).CGColor, nil]
@@ -138,8 +141,9 @@ _Pragma("clang diagnostic pop")\
 #import "NJKWebViewProgress.h"
 #import "JYNewWebController.h"
 
-//#define kHost @"http://web-jydev-wss.jianyu360.cn/" //王山
 
+//#define kHost @"http://web-jydev-ws.jianyu360.cn/" //王山
+//
 //#define kHost @"http://web-jydev-zyh.jianyu360.cn/" //张雨涵
 
 //#define kHost @"http://web-jydev-wcj.jianyu360.cn/" //王传近
@@ -150,16 +154,18 @@ _Pragma("clang diagnostic pop")\
 
 //#define kHost @"http://web-jydev-xzh.jianyu360.cn/" //徐志恒
 
-//#define kHost @"http://web-jydev-zyx.jianyu360.cn/"   //邹雨轩
-
-
-
+//#define kHost @"http://web-jydev-zyx.jianyu360.cn/"
 
-//#define kHost @"http://app-jytest.jianyu360.cn/"  //测试1
+//#define kHost @"https://app-jytest.jianyu360.cn/"  //老测试
+//#define kHost @"http://anti.jianyu360.cn/"         //新测试
+//#define kHost @"https://app3-jytest.jianyu360.cn/" //app3测试
 
-#define kHost @"http://app2-jytest.jianyu360.cn/"  //测试2
+//#define kHost @"https://res.jianyu360.com/"   //正式https
+#define kHost @"http://res.jianyu360.com/"    //正式http
 
 
+//#define kHost @"http://app2-jytest.jianyu360.cn/"  //测试http
+//#define kHost @"https://app2-jytest.jianyu360.cn/" //测试https
 
 //#define kHost @"http://app-i1.jianyu360.com/"   //新正式
 

+ 56 - 8
ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewExpViewController.m

@@ -83,6 +83,8 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
                            @"callPhone",
                            @"openOtherAppLinks",
                            @"inPurchasingVip",
+                           @"wirteRight",
+                           @"clearRight",
         ];
         for (NSString*jsName in jsArr) {
             [config.userContentController addScriptMessageHandler:self name:jsName];
@@ -169,6 +171,10 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
     
     //监听购买结果
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiptData:) name:@"receiptData" object:nil];
+    
+    
+    //粘贴板-
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateClipboard:) name:UpdateClipboard object:nil];
 }
 
 #pragma mark – Gesture Recognizer –
@@ -195,7 +201,11 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
         if (touchPoint.x - startTouch.x > width*0.125) {
             [UIView animateWithDuration:0.3 animations:^{
                 [self moveViewWithX:width];
-                [self.webView goBack];
+//                [self.webView goBack];
+                
+                NSString *jsName = @"window.history.back()";
+                [self executeCallJS:jsName];
+                
             } completion:^(BOOL finished) {
                 _isMoving = NO;
                 [self moveViewWithX:0];
@@ -281,6 +291,10 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
        [self jsOpenOtherAppLinks:message.body];
     }else if ([message.name isEqualToString:@"inPurchasingVip"]) {
        [self jsInPurchasingVip:message.body];
+    }else if ([message.name isEqualToString:@"wirteRight"]) {
+        [self jsWirteRight:message.body];
+    }else if ([message.name isEqualToString:@"clearRight"]) {
+        [self jsClearRight:message.body];
     }else {
         
     }
@@ -325,6 +339,10 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
             NSDictionary *dict = @{@"type":@"string",
                                    @"value":[self jsGetPhoneBrand:paramdict]};
             completionHandler([self convertToJsonData:dict]);
+        }else if (type && [type isEqualToString:@"readRight"]) {
+            NSDictionary *dict = @{@"type":@"string",
+                                   @"value":[self jsReadRight:paramdict]};
+            completionHandler([self convertToJsonData:dict]);
         }else {
             completionHandler(@"");
         }
@@ -362,7 +380,7 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
 -(void)isExitCallToJS:(NSString *)jsStr withMethodName:(NSString *)name{
     NSString *jsName = [NSString stringWithFormat:@"function exist(){return !window['%@']};exist()",name];
     [_webView evaluateJavaScript:jsName completionHandler:^(id _Nullable result, NSError * _Nullable error) {
-        NSLog(@"是否存在 result:%@,error:%@",result,error);
+//        NSLog(@"是否存在 result:%@,error:%@",result,error);
         if ([result intValue]==0) {
             [self executeCallJS:jsStr];
         }else {
@@ -371,11 +389,11 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
     }];
 }
 -(void)executeCallJS:(NSString *)jsStr {
-     NSLog(@"OC调JS交互%@:",jsStr);
+//     NSLog(@"OC调JS交互%@:",jsStr);
     [_webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
        if (error!=nil) {
            NSLog(@"result:%@,error:%@",result,error);
-           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
+//           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
            [[GlobalData shareInstance] addOnePlistData:@{
                @"detail":[[self stringByEvaluatingJavaScriptFromString:@"document.location.href"] stringByAppendingString:[NSString stringWithFormat:@"\nJS异常方法:%@\n%@",jsStr,[error description]]],
                @"reqTime":[NSNumber numberWithInt:0],
@@ -834,7 +852,7 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
           if (@available(iOS 10.0, *)) {
               [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                   if (!success) {
-                      [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+                      [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
                   }
               }];
           } else {
@@ -850,17 +868,33 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
     }else{
         //一般是没有安装
         NSLog(@"跳转下载app链接");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
     }
 }
 
+
+#pragma mark  粘贴板
+-(void)jsWirteRight:(NSDictionary *)dict {
+    NSString *txt = [NSString stringWithFormat:@"%@",dict[@"txt"]];
+    [[UIPasteboard generalPasteboard]setString:txt];
+}
+-(void)jsClearRight:(NSDictionary *)dict {
+    //清粘贴板数据
+    [[UIPasteboard generalPasteboard]setString:@""];
+}
+-(NSString *)jsReadRight:(NSDictionary *)dict {
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    return content;
+}
+
+
 //内购VIP
 -(void)jsInPurchasingVip:(NSDictionary *)dict {
     NSString *productid = [NSString stringWithFormat:@"%@",dict[@"productid"]];
     //产品id
     if ([productid isEqualToString:@""]) {
         NSLog(@"订单号 有问题");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:@"订单号异常,请重试" delay:1];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"订单号异常,请重试" delay:1];
         return;
     }
     [[LXViewControllerManager shareViewControllerManager] showHudText:@"苹果验证中,请稍候"];
@@ -1256,8 +1290,9 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
 
 // 收到通知消息
 -(void)afterReceiveNewMsg{
-    NSLog(@"afterReceiveNewMsg");
+    
     if(self.tabBarController.selectedIndex == 2) {
+        NSLog(@"afterReceiveNewMsg");
         [self isExitCallToJS:@"afterReceiveNewMsg()" withMethodName:@"afterReceiveNewMsg"];
     }
 }
@@ -1332,6 +1367,19 @@ NSString *const new_AesKey_3 = @"mGlAgnIBB8bx2nch";
     }
 }
 
+//粘贴板相关-梳理
+-(void)updateClipboard:(NSNotification *)notificaition{
+    if(self.tabBarController.selectedIndex == 2) {
+        NSDictionary *dict = notificaition.userInfo;
+        NSString *content = [NSString stringWithFormat:@"%@",dict[@"content"]];
+        //调用js
+        NSString *textJS =  [NSString stringWithFormat:@"distribInfo('%@')",content];
+        [self isExitCallToJS:textJS withMethodName:@"distribInfo"];
+
+    }
+}
+
+
 -(void)clearWeb{
     NSURLCache * cache = [NSURLCache sharedURLCache];
     [cache removeAllCachedResponses];

+ 74 - 12
ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewMineViewController.m

@@ -31,7 +31,7 @@
 @property (nonatomic, strong) WKWebView *webView;
 @property(nonatomic, assign)BOOL updateNotify;
 @property(nonatomic, strong)NoNetView *noNetView;
-
+@property(nonatomic, strong)UIPanGestureRecognizer *recognizer;
 
 @end
 
@@ -96,6 +96,8 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
                            @"callPhone",
                            @"openOtherAppLinks",
                            @"inPurchasingVip",
+                           @"wirteRight",
+                           @"clearRight",
         ];
         for (NSString*jsName in jsArr) {
             [config.userContentController addScriptMessageHandler:self name:jsName];
@@ -139,6 +141,7 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
         self.progressView.alpha = 1.0f;
         [self.progressView setProgress:newprogress animated:YES];
         if (newprogress >= 1.0f) {
+            self.recognizer.enabled = YES;
             [UIView animateWithDuration:0.3f
                                   delay:0.3f
                                 options:UIViewAnimationOptionCurveEaseOut
@@ -182,6 +185,10 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
     
     //监听购买结果
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiptData:) name:@"receiptData" object:nil];
+    
+    
+    //粘贴板-
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateClipboard:) name:UpdateClipboard object:nil];
 
 }
 
@@ -208,7 +215,12 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
         if (touchPoint.x - startTouch.x > width*0.125) {
             [UIView animateWithDuration:0.3 animations:^{
                 [self moveViewWithX:width];
-                [self.webView goBack];
+//                [self.webView goBack];
+                
+                
+                NSString *jsName = @"window.history.back()";
+                [self executeCallJS:jsName];
+                
             } completion:^(BOOL finished) {
                 _isMoving = NO;
                 [self moveViewWithX:0];
@@ -296,6 +308,10 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
        [self jsOpenOtherAppLinks:message.body];
     }else if ([message.name isEqualToString:@"inPurchasingVip"]) {
        [self jsInPurchasingVip:message.body];
+    }else if ([message.name isEqualToString:@"wirteRight"]) {
+        [self jsWirteRight:message.body];
+    }else if ([message.name isEqualToString:@"clearRight"]) {
+        [self jsClearRight:message.body];
     }else {
         
     }
@@ -341,6 +357,10 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
             NSDictionary *dict = @{@"type":@"string",
                                    @"value":[self jsGetPhoneBrand:paramdict]};
             completionHandler([self convertToJsonData:dict]);
+        }else if (type && [type isEqualToString:@"readRight"]) {
+            NSDictionary *dict = @{@"type":@"string",
+                                   @"value":[self jsReadRight:paramdict]};
+            completionHandler([self convertToJsonData:dict]);
         }else {
             completionHandler(@"");
         }
@@ -387,11 +407,11 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
 }
 
 -(void)executeCallJS:(NSString *)jsStr {
-     NSLog(@"OC调JS交互%@:",jsStr);
+//     NSLog(@"OC调JS交互%@:",jsStr);
     [_webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
        if (error!=nil) {
            NSLog(@"result:%@,error:%@",result,error);
-           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
+//           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
            [[GlobalData shareInstance] addOnePlistData:@{
                @"detail":[[self stringByEvaluatingJavaScriptFromString:@"document.location.href"] stringByAppendingString:[NSString stringWithFormat:@"\nJS异常方法:%@\n%@",jsStr,[error description]]],
                @"reqTime":[NSNumber numberWithInt:0],
@@ -411,9 +431,9 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
     [[AFNetworkReachabilityManager sharedManager] startMonitoring];
     [self initNotification];
     
-    UIPanGestureRecognizer *recognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(paningGestureReceive:)];
-    [recognizer delaysTouchesBegan];
-    [self.view addGestureRecognizer:recognizer];
+    self.recognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(paningGestureReceive:)];
+    [self.recognizer delaysTouchesBegan];
+    [self.view addGestureRecognizer:self.recognizer];
     
     //监听底部栏
     [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(bottomFourListening) userInfo:nil repeats:YES];
@@ -453,7 +473,7 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
 }
 // 页面开始加载时调用
 - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
-    
+    self.recognizer.enabled = NO;
 }
 // 当内容开始返回时调用
 - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation{
@@ -461,6 +481,7 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
 
 // 页面加载失败时调用
 - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(nonnull NSError *)error{
+    self.recognizer.enabled = YES;
     [[GlobalData shareInstance] addOnePlistData:@{
         @"detail":[[self stringByEvaluatingJavaScriptFromString:@"document.location.href"] stringByAppendingString:[NSString stringWithFormat:@"\n%@",[error description]]],
         @"reqTime":[NSNumber numberWithInt:0],
@@ -853,7 +874,7 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
           if (@available(iOS 10.0, *)) {
               [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                   if (!success) {
-                      [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+                      [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
                   }
               }];
           } else {
@@ -869,17 +890,39 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
     }else{
         //一般是没有安装
         NSLog(@"跳转下载app链接");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
     }
 }
 
+#pragma mark  粘贴板
+-(void)jsWirteRight:(NSDictionary *)dict {
+    NSString *txt = [NSString stringWithFormat:@"%@",dict[@"txt"]];
+    [[UIPasteboard generalPasteboard]setString:txt];
+}
+-(void)jsClearRight:(NSDictionary *)dict {
+    //清粘贴板数据
+    [[UIPasteboard generalPasteboard]setString:@""];
+}
+-(NSString *)jsReadRight:(NSDictionary *)dict {
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    return content;
+}
+
+
+
+
+
+
+
+
+
 //内购VIP
 -(void)jsInPurchasingVip:(NSDictionary *)dict {
     NSString *productid = [NSString stringWithFormat:@"%@",dict[@"productid"]];
     //产品id
     if ([productid isEqualToString:@""]) {
         NSLog(@"订单号 有问题");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:@"订单号异常,请重试" delay:1];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"订单号异常,请重试" delay:1];
         return;
     }
     [[LXViewControllerManager shareViewControllerManager] showHudText:@"苹果验证中,请稍候"];
@@ -914,6 +957,10 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
     return self.webView.canGoBack ? 1:0;
 }
 
+
+
+
+
 #pragma mark   *****其他方法
 -(void)judgeIsHiddenBottom {
     if(self.tabBarController.selectedIndex == 3) {
@@ -1277,8 +1324,9 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
 
 // 收到通知消息
 -(void)afterReceiveNewMsg{
-    NSLog(@"afterReceiveNewMsg");
+   
     if(self.tabBarController.selectedIndex == 3) {
+         NSLog(@"afterReceiveNewMsg");
         [self isExitCallToJS:@"afterReceiveNewMsg()" withMethodName:@"afterReceiveNewMsg"];
     }
 }
@@ -1351,6 +1399,20 @@ NSString *const new_AesKey_4 = @"mGlAgnIBB8bx2nch";
         }
     }
 }
+
+//粘贴板相关-梳理
+-(void)updateClipboard:(NSNotification *)notificaition{
+    if(self.tabBarController.selectedIndex == 3) {
+        NSDictionary *dict = notificaition.userInfo;
+        NSString *content = [NSString stringWithFormat:@"%@",dict[@"content"]];
+        //调用js
+        NSString *textJS =  [NSString stringWithFormat:@"distribInfo('%@')",content];
+        [self isExitCallToJS:textJS withMethodName:@"distribInfo"];
+    
+    }
+}
+
+
 -(void)clearWeb{
     NSURLCache * cache = [NSURLCache sharedURLCache];
     [cache removeAllCachedResponses];

+ 115 - 16
ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewSearchViewController.m

@@ -11,6 +11,8 @@
 #import "JYTabBarController.h"
 #import <CoreLocation/CoreLocation.h>
 
+
+
 @interface JYNewSearchViewController ()<WKNavigationDelegate,WKUIDelegate,WKScriptMessageHandler,CLLocationManagerDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate,CLLocationManagerDelegate,SKProductsRequestDelegate,SKPaymentTransactionObserver>
 {
     NSInteger _timeTick;
@@ -38,6 +40,11 @@
 @property(nonatomic, strong)NoNetView *noNetView;
 @property(nonatomic, strong)UIPanGestureRecognizer *recognizer;
 
+
+
+
+
+
 @end
 
 
@@ -52,6 +59,16 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     [super viewWillAppear:animated];
     [self.navigationController setNavigationBarHidden:YES animated:animated];
 }
+////弹框
+//-(ZKClipboardView *)clipboardView
+//{
+//    if(!_clipboardView) {
+//        _clipboardView = [[ZKClipboardView alloc]initWithFrame:CGRectMake(0, 0, WIDTH*0.8, 175)];
+//        _clipboardView.delegate = self;
+//    }
+//    return _clipboardView;
+//}
+
 //进度条
 - (UIProgressView *)progressView
 {
@@ -98,6 +115,10 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
                            @"callPhone",
                            @"openOtherAppLinks",
                            @"inPurchasingVip",
+                           @"wirteRight",
+                           @"clearRight",
+                           @"savePic",
+                           
         ];
         for (NSString*jsName in jsArr) {
             [config.userContentController addScriptMessageHandler:self name:jsName];
@@ -124,16 +145,18 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
 -(void)webViewFirstRequest
 {
     //去时间戳-拼接
-    NSString *url = [NSString stringWithFormat:@"%@jyapp/free/index?deviceid=%@", kHost, [LXUserDefaults getDeviceID]];
-    NSString *token = [LXUserDefaults token];
+    NSString *tmpUrl = @"";
     if ([LXUserDefaults isExistToken]) {
-        url = [url stringByAppendingString:[NSString stringWithFormat:@"?sign=%@&url=/jyapp/jylab/mainSearch&from=restart", token]];
+        NSString *token = [LXUserDefaults token];
+        tmpUrl = [[NSString stringWithFormat:@"%@%@", kHost, @"jyapp/free/login"] stringByAppendingString:[NSString stringWithFormat:@"?sign=%@&url=/jyapp/jylab/mainSearch&from=restart", token]];
+    }else {
+        tmpUrl = [[NSString stringWithFormat:@"%@%@", kHost, @"jyapp/free/index"] stringByAppendingString:[NSString stringWithFormat:@"?deviceid=%@", [LXUserDefaults getDeviceID]]];
     }
-//    NSLog(@"111 :第一次加载:%@",url);
-    url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-    
+    NSLog(@"111 :第一次加载:%@",tmpUrl);
+    tmpUrl =  [tmpUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
+
     kMainQueue(^{
-        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
+        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:tmpUrl]]];
     })
 }
 
@@ -188,6 +211,8 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     //接收全新通知
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshNonCurVC:) name:RefreshNonCurVC object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshAllVC:) name:RefreshAllVC object:nil];
+    //粘贴板-
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateClipboard:) name:UpdateClipboard object:nil];
 }
 
 #pragma mark – Gesture Recognizer –
@@ -217,8 +242,8 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
                 }
 //                [self.webView goBack];
                 
-                NSString *jsStr = @"window.history.back()";
-                [self executeCallJS:jsStr];
+                NSString *jsName = @"window.history.back()";
+                [self executeCallJS:jsName];
                 
             } completion:^(BOOL finished) {
                 _isMoving = NO;
@@ -307,6 +332,12 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
        [self jsOpenOtherAppLinks:message.body];
     }else if ([message.name isEqualToString:@"inPurchasingVip"]) {
        [self jsInPurchasingVip:message.body];
+    }else if ([message.name isEqualToString:@"wirteRight"]) {
+        [self jsWirteRight:message.body];
+    }else if ([message.name isEqualToString:@"clearRight"]) {
+        [self jsClearRight:message.body];
+    }else if ([message.name isEqualToString:@"savePic"]) {
+        [self jsSavePic:message.body];
     }else {
         
     }
@@ -356,6 +387,10 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
             NSDictionary *dict = @{@"type":@"string",
                                    @"value":[self jsGetLocation:paramdict]};
             completionHandler([self convertToJsonData:dict]);
+        }else if (type && [type isEqualToString:@"readRight"]) {
+            NSDictionary *dict = @{@"type":@"string",
+                                   @"value":[self jsReadRight:paramdict]};
+            completionHandler([self convertToJsonData:dict]);
         }else {
             completionHandler(@"");
         }
@@ -454,7 +489,7 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
                     @"reqTime":[NSNumber numberWithInt:0],
                 }];
                 
-                [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
+//                [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
             }
         }];
     });
@@ -634,6 +669,18 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     [[LXViewControllerManager shareViewControllerManager] hideHud];
     //写数据
 //    [self writeWKWebData:webView.URL];
+    
+    if (![GlobalData shareInstance].isOpen) {
+        [GlobalData shareInstance].isOpen = YES;
+        [self performSelector:@selector(pasteboard) withObject:nil afterDelay:0.5];
+    }
+}
+
+-(void)pasteboard {
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    if ([content containsString:@"剑鱼标讯"]) {
+        [[NSNotificationCenter defaultCenter] postNotificationName:UpdateClipboard object:nil userInfo:@{@"content":content}];
+    }
 }
 
 -(void)writeWKWebData:(NSURL *)url {
@@ -994,6 +1041,8 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     
     return self.placeAdr;
 }
+
+
 -(void)jsChooseTab:(NSDictionary *)dict {
     NSInteger indexTab = [dict[@"indexTab"] integerValue];
     kMainQueue((^{
@@ -1078,7 +1127,7 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
           if (@available(iOS 10.0, *)) {
               [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                   if (!success) {
-                      [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+                      [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
                   }
               }];
           } else {
@@ -1094,10 +1143,46 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     }else{
         //一般是没有安装
         NSLog(@"跳转下载app链接");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
     }
 }
 
+#pragma mark  粘贴板
+-(void)jsWirteRight:(NSDictionary *)dict {
+    NSString *txt = [NSString stringWithFormat:@"%@",dict[@"txt"]];
+    [[UIPasteboard generalPasteboard]setString:txt];
+}
+-(void)jsClearRight:(NSDictionary *)dict {
+    //清粘贴板数据
+    [[UIPasteboard generalPasteboard]setString:@""];
+}
+-(NSString *)jsReadRight:(NSDictionary *)dict {
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    return content;
+}
+
+//保存图片到相册
+#pragma mark 保存图片
+-(void)jsSavePic:(NSDictionary *)dict {
+    NSString *base64ImgData = [NSString stringWithFormat:@"%@",dict[@"imgbase64"]];
+    base64ImgData = [base64ImgData stringByReplacingOccurrencesOfString:@"data:image/png;base64," withString:@""];
+    NSData *data = [[NSData alloc]initWithBase64EncodedString:base64ImgData options:NSDataBase64DecodingIgnoreUnknownCharacters];
+    UIImage *saveImg = [UIImage imageWithData:data];
+    UIImageWriteToSavedPhotosAlbum(saveImg, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
+}
+
+#pragma mark 系统的完成保存图片的方法
+- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
+{
+    NSString *msg = nil ;
+    if (error != NULL) {
+        msg = @"保存图片失败" ;
+    } else {
+        msg = @"保存图片成功" ;
+    }
+    [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:msg delay:1];
+}
+
 
 //内购VIP
 -(void)jsInPurchasingVip:(NSDictionary *)dict {
@@ -1105,7 +1190,7 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     //产品id
     if ([productid isEqualToString:@""]) {
         NSLog(@"订单号 有问题");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:@"订单号异常,请重试" delay:1];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"订单号异常,请重试" delay:1];
         return;
     }
     [[LXViewControllerManager shareViewControllerManager] showHudText:@"苹果验证中,请稍候"];
@@ -1682,11 +1767,10 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
 
 // 收到通知消息
 -(void)afterReceiveNewMsg{
-    NSLog(@"afterReceiveNewMsg");
     if(self.tabBarController.selectedIndex == 0) {
-         [self isExitCallToJS:@"afterReceiveNewMsg()" withMethodName:@"afterReceiveNewMsg"];
+        NSLog(@"afterReceiveNewMsg");
+        [self isExitCallToJS:@"afterReceiveNewMsg()" withMethodName:@"afterReceiveNewMsg"];
     }
-   
 }
 
 // 再次加载页面
@@ -1769,6 +1853,21 @@ NSString *const new_AesKey_1 = @"mGlAgnIBB8bx2nch";
     [self webViewFirstRequest];
 }
 
+//粘贴板相关-梳理
+-(void)updateClipboard:(NSNotification *)notificaition{
+    if(self.tabBarController.selectedIndex == 0) {
+        NSDictionary *dict = notificaition.userInfo;
+        NSString *content = [NSString stringWithFormat:@"%@",dict[@"content"]];
+        //调用js
+//        [self isExitCallToJS:@"tIOSt()" withMethodName:@"tIOSt"];
+        NSString *textJS =  [NSString stringWithFormat:@"distribInfo('%@')",content];
+        [self isExitCallToJS:textJS withMethodName:@"distribInfo"];
+    }
+}
+
+
+
+
 -(void)clearWeb{
     NSURLCache * cache = [NSURLCache sharedURLCache];
     [cache removeAllCachedResponses];

+ 50 - 6
ios/JianYuIOS/JianYuIOS/Classes(模块)/JYNewSubViewController.m

@@ -91,6 +91,8 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
                            @"callPhone",
                            @"openOtherAppLinks",
                            @"inPurchasingVip",
+                           @"wirteRight",
+                           @"clearRight",
         ];
         for (NSString*jsName in jsArr) {
             [config.userContentController addScriptMessageHandler:self name:jsName];
@@ -175,6 +177,9 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
 
     //监听购买结果
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiptData:) name:@"receiptData" object:nil];
+    
+    //粘贴板-
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateClipboard:) name:UpdateClipboard object:nil];
 }
 
 #pragma mark – Gesture Recognizer –
@@ -201,7 +206,10 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
         if (touchPoint.x - startTouch.x > width*0.125) {
             [UIView animateWithDuration:0.3 animations:^{
                 [self moveViewWithX:width];
-                [self.webView goBack];
+//                [self.webView goBack];
+                NSString *jsName = @"window.history.back()";
+                [self executeCallJS:jsName];
+                
             } completion:^(BOOL finished) {
                 _isMoving = NO;
                 [self moveViewWithX:0];
@@ -287,6 +295,10 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
        [self jsOpenOtherAppLinks:message.body];
     }else if ([message.name isEqualToString:@"inPurchasingVip"]) {
        [self jsInPurchasingVip:message.body];
+    }else if ([message.name isEqualToString:@"wirteRight"]) {
+        [self jsWirteRight:message.body];
+    }else if ([message.name isEqualToString:@"clearRight"]) {
+        [self jsClearRight:message.body];
     }else {
         
     }
@@ -331,6 +343,10 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
             NSDictionary *dict = @{@"type":@"string",
                                    @"value":[self jsGetPhoneBrand:paramdict]};
             completionHandler([self convertToJsonData:dict]);
+        }else if (type && [type isEqualToString:@"readRight"]) {
+            NSDictionary *dict = @{@"type":@"string",
+                                   @"value":[self jsReadRight:paramdict]};
+            completionHandler([self convertToJsonData:dict]);
         }else {
             completionHandler(@"");
         }
@@ -380,7 +396,7 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
     [_webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
        if (error!=nil) {
            NSLog(@"result:%@,error:%@",result,error);
-           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
+//           [[LXViewControllerManager shareViewControllerManager]showAlertViewWithMessage: jsStr];
            [[GlobalData shareInstance] addOnePlistData:@{
                @"detail":[[self stringByEvaluatingJavaScriptFromString:@"document.location.href"] stringByAppendingString:[NSString stringWithFormat:@"\nJS异常方法:%@\n%@",jsStr,[error description]]],
                @"reqTime":[NSNumber numberWithInt:0],
@@ -845,7 +861,7 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
           if (@available(iOS 10.0, *)) {
               [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                   if (!success) {
-                      [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+                      [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
                   }
               }];
           } else {
@@ -861,17 +877,32 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
     }else{
         //一般是没有安装
         NSLog(@"跳转下载app链接");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:appName delay:2];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:appName delay:2];
     }
 }
 
+#pragma mark  粘贴板
+-(void)jsWirteRight:(NSDictionary *)dict {
+    NSString *txt = [NSString stringWithFormat:@"%@",dict[@"txt"]];
+    [[UIPasteboard generalPasteboard]setString:txt];
+}
+-(void)jsClearRight:(NSDictionary *)dict {
+    //清粘贴板数据
+    [[UIPasteboard generalPasteboard]setString:@""];
+}
+-(NSString *)jsReadRight:(NSDictionary *)dict {
+    NSString  *content = [UIPasteboard generalPasteboard].string;
+    return content;
+}
+
+
 //内购VIP
 -(void)jsInPurchasingVip:(NSDictionary *)dict {
     NSString *productid = [NSString stringWithFormat:@"%@",dict[@"productid"]];
     //产品id
     if ([productid isEqualToString:@""]) {
         NSLog(@"订单号 有问题");
-        [[LXDataBaseManager shareDataBaseManager]showHudOnlyText:@"订单号异常,请重试" delay:1];
+        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"订单号异常,请重试" delay:1];
         return;
     }
     [[LXViewControllerManager shareViewControllerManager] showHudText:@"苹果验证中,请稍候"];
@@ -1260,8 +1291,9 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
 
 // 收到通知消息
 -(void)afterReceiveNewMsg{
-    NSLog(@"afterReceiveNewMsg");
+    
     if(self.tabBarController.selectedIndex == 1) {
+        NSLog(@"afterReceiveNewMsg");
         [self isExitCallToJS:@"afterReceiveNewMsg()" withMethodName:@"afterReceiveNewMsg"];
     }
 }
@@ -1346,6 +1378,18 @@ NSString *const new_AesKey_2 = @"mGlAgnIBB8bx2nch";
 }
 
 
+//粘贴板相关-梳理
+-(void)updateClipboard:(NSNotification *)notificaition{
+    if(self.tabBarController.selectedIndex == 1) {
+        NSDictionary *dict = notificaition.userInfo;
+        NSString *content = [NSString stringWithFormat:@"%@",dict[@"content"]];
+        //调用js
+        NSString *textJS =  [NSString stringWithFormat:@"distribInfo('%@')",content];
+        [self isExitCallToJS:textJS withMethodName:@"distribInfo"];
+     
+    }
+}
+
 
 -(void)clearWeb{
     NSURLCache * cache = [NSURLCache sharedURLCache];

+ 0 - 16
ios/JianYuIOS/JianYuIOS/CustomView/LXProgressView.h

@@ -1,16 +0,0 @@
-//
-//  LXProgressView.h
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/2/8.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface LXProgressView : UIProgressView
-
-@property(nonatomic, strong)NSTimer *timer;
-@property(nonatomic, assign)CGFloat cumulative;
-
-@end

+ 0 - 60
ios/JianYuIOS/JianYuIOS/CustomView/LXProgressView.m

@@ -1,60 +0,0 @@
-//
-//  LXProgressView.m
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/2/8.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import "LXProgressView.h"
-
-@implementation LXProgressView
-
-
-
--(instancetype)init{
-    self = [super init];
-    
-    if (self) {
-        self.progressTintColor = [UIColor colorWithRed:87/255.f green:188/255.f blue:61/255.f alpha:1];
-        self.cumulative = 20;
-        if (systemNewerThan10) {
-            self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 repeats:YES block:^(NSTimer * _Nonnull timer) {
-                [self timerAction];
-            }];
-        }else{
-            self.timer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
-            [self.timer fire];
-        }
-    }
-    
-    return self;
-}
-
--(void)timerAction{
-    if (self.progress >= .95) {
-        [self.timer invalidate];
-    }
-    self.progress += self.cumulative/100;
-    if (self.progress >= .9) {
-        self.cumulative = 0.1;
-    }else if (self.progress >=.8) {
-        self.cumulative = .5;
-    }else if (self.progress >= .7) {
-        self.cumulative = 1;
-    }else if (self.progress >= .5){
-        self.cumulative = 2;
-    }
-    
-}
-
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 36
ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgress.h

@@ -1,36 +0,0 @@
-//
-//  NJKWebViewProgress.h
-//
-//  Created by Satoshi Aasano on 4/20/13.
-//  Copyright (c) 2013 Satoshi Asano. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-
-#undef njk_weak
-#if __has_feature(objc_arc_weak)
-#define njk_weak weak
-#else
-#define njk_weak unsafe_unretained
-#endif
-
-extern const float NJKInitialProgressValue;
-extern const float NJKInteractiveProgressValue;
-extern const float NJKFinalProgressValue;
-
-typedef void (^NJKWebViewProgressBlock)(float progress);
-@protocol NJKWebViewProgressDelegate;
-@interface NJKWebViewProgress : NSObject<UIWebViewDelegate>
-@property (nonatomic, njk_weak) id<NJKWebViewProgressDelegate>progressDelegate;
-@property (nonatomic, njk_weak) id<UIWebViewDelegate>webViewProxyDelegate;
-@property (nonatomic, copy) NJKWebViewProgressBlock progressBlock;
-@property (nonatomic, readonly) float progress; // 0.0..1.0
-
-- (void)reset;
-@end
-
-@protocol NJKWebViewProgressDelegate <NSObject>
-- (void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress;
-@end
-

+ 0 - 204
ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgress.m

@@ -1,204 +0,0 @@
-//
-//  NJKWebViewProgress.m
-//
-//  Created by Satoshi Aasano on 4/20/13.
-//  Copyright (c) 2013 Satoshi Asano. All rights reserved.
-//
-
-#import "NJKWebViewProgress.h"
-
-NSString *completeRPCURLPath = @"/njkwebviewprogressproxy/complete";
-
-const float NJKInitialProgressValue = 0.1f;
-const float NJKInteractiveProgressValue = 0.5f;
-const float NJKFinalProgressValue = 0.9f;
-
-@implementation NJKWebViewProgress
-{
-    NSUInteger _loadingCount;
-    NSUInteger _maxLoadCount;
-    NSURL *_currentURL;
-    BOOL _interactive;
-}
-
-- (id)init
-{
-    self = [super init];
-    if (self) {
-        _maxLoadCount = _loadingCount = 0;
-        _interactive = NO;
-    }
-    return self;
-}
-
-- (void)startProgress
-{
-    if (_progress < NJKInitialProgressValue) {
-        [self setProgress:NJKInitialProgressValue];
-    }
-}
-
-- (void)incrementProgress
-{
-    float progress = self.progress;
-    float maxProgress = _interactive ? NJKFinalProgressValue : NJKInteractiveProgressValue;
-    float remainPercent = (float)_loadingCount / (float)_maxLoadCount;
-    float increment = (maxProgress - progress) * remainPercent;
-    progress += increment;
-    progress = fmin(progress, maxProgress);
-    [self setProgress:progress];
-}
-
-- (void)completeProgress
-{
-    [self setProgress:1.0];
-}
-
-- (void)setProgress:(float)progress
-{
-    // progress should be incremental only
-    if (progress > _progress || progress == 0) {
-        _progress = progress;
-        if ([_progressDelegate respondsToSelector:@selector(webViewProgress:updateProgress:)]) {
-            [_progressDelegate webViewProgress:self updateProgress:progress];
-        }
-        if (_progressBlock) {
-            _progressBlock(progress);
-        }
-    }
-}
-
-- (void)reset
-{
-    _maxLoadCount = _loadingCount = 0;
-    _interactive = NO;
-    [self setProgress:0.0];
-}
-
-#pragma mark -
-#pragma mark UIWebViewDelegate
-
-- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
-{
-    if ([request.URL.path isEqualToString:completeRPCURLPath]) {
-        [self completeProgress];
-        return NO;
-    }
-    
-    BOOL ret = YES;
-    if ([_webViewProxyDelegate respondsToSelector:@selector(webView:shouldStartLoadWithRequest:navigationType:)]) {
-        ret = [_webViewProxyDelegate webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];
-    }
-    
-    BOOL isFragmentJump = NO;
-    if (request.URL.fragment) {
-        NSString *nonFragmentURL = [request.URL.absoluteString stringByReplacingOccurrencesOfString:[@"#" stringByAppendingString:request.URL.fragment] withString:@""];
-        isFragmentJump = [nonFragmentURL isEqualToString:webView.request.URL.absoluteString];
-    }
-
-    BOOL isTopLevelNavigation = [request.mainDocumentURL isEqual:request.URL];
-
-    BOOL isHTTPOrLocalFile = [request.URL.scheme isEqualToString:@"http"] || [request.URL.scheme isEqualToString:@"https"] || [request.URL.scheme isEqualToString:@"file"];
-    if (ret && !isFragmentJump && isHTTPOrLocalFile && isTopLevelNavigation) {
-        _currentURL = request.URL;
-        [self reset];
-    }
-    return ret;
-}
-
-- (void)webViewDidStartLoad:(UIWebView *)webView
-{
-    if ([_webViewProxyDelegate respondsToSelector:@selector(webViewDidStartLoad:)]) {
-        [_webViewProxyDelegate webViewDidStartLoad:webView];
-    }
-
-    _loadingCount++;
-    _maxLoadCount = fmax(_maxLoadCount, _loadingCount);
-
-    [self startProgress];
-}
-
-- (void)webViewDidFinishLoad:(UIWebView *)webView
-{
-    if ([_webViewProxyDelegate respondsToSelector:@selector(webViewDidFinishLoad:)]) {
-        [_webViewProxyDelegate webViewDidFinishLoad:webView];
-    }
-    
-    _loadingCount--;
-    [self incrementProgress];
-    
-    NSString *readyState = [webView stringByEvaluatingJavaScriptFromString:@"document.readyState"];
-
-    BOOL interactive = [readyState isEqualToString:@"interactive"];
-    if (interactive) {
-        _interactive = YES;
-        NSString *waitForCompleteJS = [NSString stringWithFormat:@"window.addEventListener('load',function() { var iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = '%@://%@%@'; document.body.appendChild(iframe);  }, false);", webView.request.mainDocumentURL.scheme, webView.request.mainDocumentURL.host, completeRPCURLPath];
-        [webView stringByEvaluatingJavaScriptFromString:waitForCompleteJS];
-    }
-    
-    BOOL isNotRedirect = _currentURL && [_currentURL isEqual:webView.request.mainDocumentURL];
-    BOOL complete = [readyState isEqualToString:@"complete"];
-    if (complete && isNotRedirect) {
-        [self completeProgress];
-    }
-}
-
-- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
-{
-    if ([_webViewProxyDelegate respondsToSelector:@selector(webView:didFailLoadWithError:)]) {
-        [_webViewProxyDelegate webView:webView didFailLoadWithError:error];
-    }
-    
-    _loadingCount--;
-    [self incrementProgress];
-
-    NSString *readyState = [webView stringByEvaluatingJavaScriptFromString:@"document.readyState"];
-
-    BOOL interactive = [readyState isEqualToString:@"interactive"];
-    if (interactive) {
-        _interactive = YES;
-        NSString *waitForCompleteJS = [NSString stringWithFormat:@"window.addEventListener('load',function() { var iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = '%@://%@%@'; document.body.appendChild(iframe);  }, false);", webView.request.mainDocumentURL.scheme, webView.request.mainDocumentURL.host, completeRPCURLPath];
-        [webView stringByEvaluatingJavaScriptFromString:waitForCompleteJS];
-    }
-    
-    BOOL isNotRedirect = _currentURL && [_currentURL isEqual:webView.request.mainDocumentURL];
-    BOOL complete = [readyState isEqualToString:@"complete"];
-    if ((complete && isNotRedirect) || error) {
-        [self completeProgress];
-    }
-}
-
-#pragma mark - 
-#pragma mark Method Forwarding
-// for future UIWebViewDelegate impl
-
-- (BOOL)respondsToSelector:(SEL)aSelector
-{
-    if ( [super respondsToSelector:aSelector] )
-        return YES;
-    
-    if ([self.webViewProxyDelegate respondsToSelector:aSelector])
-        return YES;
-    
-    return NO;
-}
-
-- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
-{
-    NSMethodSignature *signature = [super methodSignatureForSelector:selector];
-    if(!signature) {
-        if([_webViewProxyDelegate respondsToSelector:selector]) {
-            return [(NSObject *)_webViewProxyDelegate methodSignatureForSelector:selector];
-        }
-    }
-    return signature;
-}
-
-- (void)forwardInvocation:(NSInvocation*)invocation
-{
-    if ([_webViewProxyDelegate respondsToSelector:[invocation selector]]) {
-        [invocation invokeWithTarget:_webViewProxyDelegate];
-    }
-}
-
-@end

+ 0 - 21
ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgressView.h

@@ -1,21 +0,0 @@
-//
-//  NJKWebViewProgressView.h
-// iOS 7 Style WebView Progress Bar
-//
-//  Created by Satoshi Aasano on 11/16/13.
-//  Copyright (c) 2013 Satoshi Asano. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface NJKWebViewProgressView : UIView
-@property (nonatomic) float progress;
-
-@property (nonatomic) UIView *progressBarView;
-@property (nonatomic) NSTimeInterval barAnimationDuration; // default 0.1
-@property (nonatomic) NSTimeInterval fadeAnimationDuration; // default 0.27
-@property (nonatomic) NSTimeInterval fadeOutDelay; // default 0.1
-
-- (void)setProgress:(float)progress animated:(BOOL)animated;
-
-@end

+ 0 - 75
ios/JianYuIOS/JianYuIOS/CustomView/NJKWebViewProgressView.m

@@ -1,75 +0,0 @@
-//
-//  NJKWebViewProgressView.m
-//
-//  Created by Satoshi Aasanoon 11/16/13.
-//  Copyright (c) 2013 Satoshi Asano. All rights reserved.
-//
-
-#import "NJKWebViewProgressView.h"
-
-@implementation NJKWebViewProgressView
-
-- (id)initWithFrame:(CGRect)frame
-{
-    self = [super initWithFrame:frame];
-    if (self) {
-        [self configureViews];
-    }
-    return self;
-}
-
-- (void)awakeFromNib
-{
-    [super awakeFromNib];
-    [self configureViews];
-}
-
--(void)configureViews
-{
-    self.userInteractionEnabled = NO;
-    self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
-    _progressBarView = [[UIView alloc] initWithFrame:self.bounds];
-    _progressBarView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
-    UIColor *tintColor = [UIColor colorWithRed:22.f / 255.f green:126.f / 255.f blue:251.f / 255.f alpha:1.0]; // iOS7 Safari bar color
-    if ([UIApplication.sharedApplication.delegate.window respondsToSelector:@selector(setTintColor:)] && UIApplication.sharedApplication.delegate.window.tintColor) {
-        tintColor = UIApplication.sharedApplication.delegate.window.tintColor;
-    }
-    _progressBarView.backgroundColor = tintColor;
-    [self addSubview:_progressBarView];
-    
-    _barAnimationDuration = 0.27f;
-    _fadeAnimationDuration = 0.27f;
-    _fadeOutDelay = 0.1f;
-}
-
--(void)setProgress:(float)progress
-{
-    [self setProgress:progress animated:NO];
-}
-
-- (void)setProgress:(float)progress animated:(BOOL)animated
-{
-    BOOL isGrowing = progress > 0.0;
-    [UIView animateWithDuration:(isGrowing && animated) ? _barAnimationDuration : 0.0 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
-        CGRect frame = _progressBarView.frame;
-        frame.size.width = progress * self.bounds.size.width;
-        _progressBarView.frame = frame;
-    } completion:nil];
-
-    if (progress >= 1.0) {
-        [UIView animateWithDuration:animated ? _fadeAnimationDuration : 0.0 delay:_fadeOutDelay options:UIViewAnimationOptionCurveEaseInOut animations:^{
-            _progressBarView.alpha = 0.0;
-        } completion:^(BOOL completed){
-            CGRect frame = _progressBarView.frame;
-            frame.size.width = 0;
-            _progressBarView.frame = frame;
-        }];
-    }
-    else {
-        [UIView animateWithDuration:animated ? _fadeAnimationDuration : 0.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
-            _progressBarView.alpha = 1.0;
-        } completion:nil];
-    }
-}
-
-@end

+ 0 - 16
ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.h

@@ -1,16 +0,0 @@
-//
-//  NoNetView.h
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/2/28.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface NoNetView : UIView
-
-
-+(instancetype)shareView;
-
-@end

+ 0 - 33
ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.m

@@ -1,33 +0,0 @@
-//
-//  NoNetView.m
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/2/28.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import "NoNetView.h"
-
-@implementation NoNetView
-
-
-+(instancetype)shareView{
-    NoNetView *view = [[[NSBundle mainBundle] loadNibNamed:@"NoNetView" owner:nil options:nil] lastObject];
-    view.frame = [UIScreen mainScreen].bounds;
-    return view;
-}
-- (IBAction)click1:(id)sender {
-    [[NSNotificationCenter defaultCenter] postNotificationName:kReloadWebVIew object:nil];
-}
-
-
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 84
ios/JianYuIOS/JianYuIOS/CustomView/NoNetView.xib

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
-    <device id="retina4_7" orientation="portrait">
-        <adaptation id="fullscreen"/>
-    </device>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
-        <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="NoNetView">
-            <rect key="frame" x="0.0" y="0.0" width="320" height="667"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bN2-JA-Ssh">
-                    <rect key="frame" x="18.5" y="192" width="283" height="283"/>
-                    <subviews>
-                        <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="noNet.png" translatesAutoresizingMaskIntoConstraints="NO" id="W56-Wm-H3y">
-                            <rect key="frame" x="68" y="0.0" width="147" height="147"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="147" id="8e4-YY-VAa"/>
-                                <constraint firstAttribute="width" secondItem="W56-Wm-H3y" secondAttribute="height" multiplier="1:1" id="cFp-Ci-6MO"/>
-                            </constraints>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="网络异常,请检查您的网络设置" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mVa-6F-dDg">
-                            <rect key="frame" x="27.5" y="185" width="228.5" height="16"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="16" id="oKS-Z8-XfG"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
-                            <color key="textColor" red="0.1137254902" green="0.1137254902" blue="0.1137254902" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2QV-54-u0k">
-                            <rect key="frame" x="71.5" y="241" width="140" height="42"/>
-                            <color key="backgroundColor" red="0.17254901959999999" green="0.71764705880000002" blue="0.79607843140000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="140" id="8j2-Gh-rws"/>
-                                <constraint firstAttribute="height" constant="42" id="Cln-Qs-9nx"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                            <state key="normal" title="点击重试">
-                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            </state>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="boolean" keyPath="clipsToBounds" value="YES"/>
-                                <userDefinedRuntimeAttribute type="string" keyPath="layer.cornerRadius" value="3"/>
-                            </userDefinedRuntimeAttributes>
-                            <connections>
-                                <action selector="click1:" destination="iN0-l3-epB" eventType="touchUpInside" id="pWe-lN-Gk4"/>
-                            </connections>
-                        </button>
-                    </subviews>
-                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstItem="mVa-6F-dDg" firstAttribute="top" secondItem="W56-Wm-H3y" secondAttribute="bottom" constant="38" id="1HK-4R-8Ze"/>
-                        <constraint firstItem="2QV-54-u0k" firstAttribute="centerX" secondItem="bN2-JA-Ssh" secondAttribute="centerX" id="5L5-Nh-3eb"/>
-                        <constraint firstItem="W56-Wm-H3y" firstAttribute="centerX" secondItem="bN2-JA-Ssh" secondAttribute="centerX" id="83E-fK-MU1"/>
-                        <constraint firstItem="mVa-6F-dDg" firstAttribute="centerX" secondItem="bN2-JA-Ssh" secondAttribute="centerX" id="GhF-Ow-PMm"/>
-                        <constraint firstAttribute="width" constant="283" id="JI9-ZG-Hbu"/>
-                        <constraint firstItem="2QV-54-u0k" firstAttribute="top" secondItem="mVa-6F-dDg" secondAttribute="bottom" constant="40" id="OzW-Eq-ZbU"/>
-                        <constraint firstAttribute="width" secondItem="bN2-JA-Ssh" secondAttribute="height" multiplier="1:1" id="aCU-2X-lrp"/>
-                        <constraint firstItem="W56-Wm-H3y" firstAttribute="top" secondItem="bN2-JA-Ssh" secondAttribute="top" id="gLJ-7o-ysh"/>
-                    </constraints>
-                </view>
-            </subviews>
-            <color key="backgroundColor" red="0.96078431369999995" green="0.96078431369999995" blue="0.97647058819999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-            <constraints>
-                <constraint firstItem="bN2-JA-Ssh" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="7dB-g1-61f"/>
-                <constraint firstItem="bN2-JA-Ssh" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="gae-IL-Cgb"/>
-            </constraints>
-            <nil key="simulatedStatusBarMetrics"/>
-            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <point key="canvasLocation" x="55" y="54.5"/>
-        </view>
-    </objects>
-    <resources>
-        <image name="noNet.png" width="147" height="147"/>
-    </resources>
-</document>

+ 5 - 0
ios/JianYuIOS/JianYuIOS/JYTabBarController.m

@@ -8,6 +8,7 @@
 
 #import "JYTabBarController.h"
 #import "JYNavigationController.h"
+
 #import "JYNewSearchViewController.h"
 #import "JYNewSubViewController.h"
 #import "JYNewExpViewController.h"
@@ -16,6 +17,8 @@
 
 @interface JYTabBarController ()<UITabBarControllerDelegate>
 
+
+
 @property (nonatomic,strong)JYNewSearchViewController *VC1;
 @property (nonatomic,strong)JYNewSubViewController *VC2;
 @property (nonatomic,strong)JYNewExpViewController *VC3;
@@ -110,6 +113,8 @@
     [self setUpOneChildVcWithVc:self.VC4 Image:@"four_1" selectedImage:@"four" title:@"我的" tag:3];
 }
 
+
+
 #pragma mark - 初始化设置tabBar上面单个按钮的方法
 
 /**

+ 0 - 24
ios/JianYuIOS/JianYuIOS/ViewController.h

@@ -1,24 +0,0 @@
-//
-//  ViewController.h
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/1/19.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface ViewController : UIViewController
-
-//@property (weak, nonatomic) IBOutlet UIWebView *webView;
-//@property(nonatomic, assign)BOOL ;
-@property(nonatomic, assign)BOOL updateNotify;
-@property(nonatomic, assign)BOOL afterOpenPushMessage;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topC;
-//@property(nonatomic, strong)WKWebView *wkWebView;
-@property(nonatomic, strong)NoNetView *noNetView;
-@property(nonatomic, strong)NSURLRequest *errRequest;
-@property(nonatomic, strong)NSString *signOutContent;
-@property(nonatomic, strong)UIWebView *webView;
-@end
-

+ 0 - 869
ios/JianYuIOS/JianYuIOS/ViewController.m

@@ -1,869 +0,0 @@
-//
-//  ViewController.m
-//  JianYuIOS
-//
-//  Created by lixianglan on 2018/1/19.
-//  Copyright © 2018年 lixianglan. All rights reserved.
-//
-
-#import "ViewController.h"
-#import <JavaScriptCore/JavaScriptCore.h>
-#import <UShareUI/UShareUI.h>
-#import <UMSocialCore/UMSocialCore.h>
-#import "NewWebController.h"
-#import <UMSocialCore/UMSocialCore.h>
-#import <AFNetworking.h>
-#import "NoNetView.h"
-//#import <WebKit/WebKit.h>
-#import  <CommonCrypto/CommonCryptor.h>
-
-
-
-#define LocalStr_None @""//空字符串
-#define KIsiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
-
-@protocol ViewControllerMain<JSExport>
-
-//测试
-
-
-@end
-
-
-
-@protocol ViewControllerJSExport<JSExport>
-
-JSExportAs(loginByWeixin, -(NSString *)jsLoginByWeixin:(NSString *)str);// 微信登录 openid
-JSExportAs(share, -(void)jsShare:(NSString *)type title:(NSString *)title content:(NSString *)content link:(NSString *)link); // 调用分享
-JSExportAs(saveUserToken, -(void)jsSaveUserToken:(NSString *)token);// 登录时获取令牌 保存
-JSExportAs(getUserToken, -(NSString *)jsGetUserToken:(NSString *)str);// 取本地存的令牌
-JSExportAs(removeUserToken, -(void)jsRemoveUserToken:(NSString *)str); // 退出时清空数据
-JSExportAs(checkNoticePermission, -(int)jsCheckNoticePermission:(NSString *)str); // 查询手机通知是否打开
-JSExportAs(openSystemNotification, -(void)jsOpenSystemNotification:(NSString *)str);// 跳转到系统设置
-JSExportAs(getPushRid, -(NSString *)jsGetPushRid:(NSString *)str);// 返回极光id
-JSExportAs(getMessageList, -(NSString *)jsGetMessageList:(NSString *)openid);// 按通知接收时间倒排,取前100条
-JSExportAs(updateMessageState, -(void)jsUpdateMessageState:(NSString *)lxID state:(NSString *)state);// 更新状态
-JSExportAs(deleteMessageById, -(void)jsDeleteMessageById:(NSString *)lxID);// 删除一条消息
-JSExportAs(getMessage, -(NSString *)jsGetMessage:(NSString *)lxID);// 取单条数据
-JSExportAs(getUnReadMessageCount, -(int)jsGetUnReadMessageCount:(NSString *)openid);// 获取未读消息总数
-JSExportAs(updateAllUnReadMessage, -(void)jsUpdateAllUnReadMessage:(NSString *)openid);// 全部置为已读
-JSExportAs(lightStatusBar, -(void)jsLightStatusBar:(NSString *)status);// 导航栏文字颜色
-JSExportAs(openExternalLink, -(void)jsOpenExternalLink:(NSString *)url title:(NSString *)title);// 打开新控制器 加载新web
-JSExportAs(getVersion, -(NSString *)jsGetVersion:(NSString *)str);// 获取当前版本号
-JSExportAs(alert, -(void)jsAlert:(NSString *)content);// 弹框
-JSExportAs(isInstallWeixin, -(int)jsIsInstallWeixin:(NSString *)str);// 是否安装微信
-JSExportAs(changeMessageType, -(void)jsChangeMessageType:(NSString *)link);//已读操作处理
-JSExportAs(openActivityPage, -(void)jsOpenActivityPage:(NSString *)url rectype:(NSString *)rectype openid:(NSString *)openid);
-
-JSExportAs(getCipherText, -(NSString *)jsGetCipherText:(NSString *)phone);
-
-JSExportAs(business, -(NSInteger)jsBusiness:(NSInteger)shooID shopType:(NSInteger )shopType);
-
-
-
-
-@end
-
-
-@interface ViewController ()<UIWebViewDelegate, ViewControllerJSExport>
-{
-    CGPoint startTouch;
-    BOOL _isMoving;
-    
-    
-    BOOL _isFirstLogin;
-}
-
-
-
-
-
-@end
-
-NSString *const kInitVector = @"1389461544135476";
-size_t const kKeySize = kCCKeySizeAES128;
-NSString *const AesKey = @"mGlAgnIBB8bx2nch";
-
-@implementation ViewController
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    
-    
-    NSLog(@"viewDidLoadviewDidLoad   初始化");
-    
-    [LXDataBaseManager shareDataBaseManager];
-    if ([[UIDevice currentDevice].systemVersion floatValue] >= 11.0) {
-        //        if(KIsiPhoneX) {
-        //            self.topC.constant = -44;
-        //            [self.webView updateConstraints];
-        //        }else {
-        //            self.topC.constant = -20;
-        //            [self.webView updateConstraints];
-        //        }
-        self.topC.constant = -20;
-        [self.webView updateConstraints];
-    }
-    
-    
-    self.view.backgroundColor = [UIColor whiteColor];
-    
-    
-    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, -STATUS_BAR_HEIGHT, WIDTH, HEIGHT-TAB_BAR_HEIGHT+STATUS_BAR_HEIGHT)];
-    [self.view addSubview: self.webView];
-    self.webView.scrollView.bounces = NO;
-    self.webView.delegate = self;
-    
-    
-    
-    
-    [[LXViewControllerManager shareViewControllerManager] showHudText:nil];
-    [self webViewFirstRequest];//请求页面数据
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestWebView:) name:kRequestWebViewWithUrl object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateNotifyState) name:kUpdateNotifyState object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(afterReceiveNewMsg) name:kAfterReceiveNewMsg object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadWebView) name:kReloadWebVIew object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginOut:) name:kLoginOut object:nil];
-    
-    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(netReachChanged:) name:AFNetworkingReachabilityDidChangeNotification object:nil];
-    
-    
-    
-    
-//    [self clearWeb];
-    
-    UIPanGestureRecognizer *recognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(paningGestureReceive:)];
-    [recognizer delaysTouchesBegan];
-    [self.view addGestureRecognizer:recognizer];
-    
-    
-}
-
--(void)moveViewWithX:(float)x
-{
-    CGRect rect = self.view.bounds;
-    CGFloat width = CGRectGetWidth(rect);
-    x = x>width?width:x;
-    x = x<0?0:x;
-    CGRect frame = self.webView.frame;
-    frame.origin.x = x;
-    self.webView.frame = frame;
-}
-
-#pragma mark – Gesture Recognizer –
--(void)paningGestureReceive:(UIPanGestureRecognizer *)recoginzer
-{
-    CGRect rect = self.view.bounds;
-    CGFloat width = CGRectGetWidth(rect);
-    if (![self.webView canGoBack]) {
-        NSLog(@"不可返回");
-        return;
-    }
-    
-    NSString *current_url = [self.webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
-    NSLog(@"当前页面:%@",current_url);
-    //    NSString *current_url = self.webView.request.URL.absoluteString;
-    if([current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/free/me",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/jylab/index",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/wxkeyset/keyset/index",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/jylab/mainSearch",kHost]]){
-        return;
-    }
-    
-    //https://www.jianyu360.com/jyapp/free/me
-    //https://www.jianyu360.com/jyapp/jylab/index
-    //https://www.jianyu360.com/jyapp/wxkeyset/keyset/index
-    //https://www.jianyu360.com/jyapp/jylab/mainSearch
-    
-    CGPoint touchPoint = [recoginzer locationInView:[UIApplication sharedApplication].keyWindow];
-    if (recoginzer.state==UIGestureRecognizerStateBegan) {
-        _isMoving = YES;
-        startTouch = touchPoint;
-    } else if (recoginzer.state==UIGestureRecognizerStateEnded){
-        if (touchPoint.x - startTouch.x > width*0.125) {
-            [UIView animateWithDuration:0.3 animations:^{
-                [self moveViewWithX:width];
-                [self.webView goBack];
-            } completion:^(BOOL finished) {
-                _isMoving = NO;
-                [self moveViewWithX:0];
-            }];
-        } else {
-            [UIView animateWithDuration:0.3 animations:^{
-                [self moveViewWithX:0];
-            } completion:^(BOOL finished) {
-                _isMoving = NO;
-            }];
-        }
-        return;
-    } else if (recoginzer.state==UIGestureRecognizerStateCancelled){
-        [UIView animateWithDuration:0.3 animations:^{
-            [self moveViewWithX:0];
-        } completion:^(BOOL finished) {
-            _isMoving = NO;
-        }];
-        return;
-    }
-    if (_isMoving) {
-        [self moveViewWithX:touchPoint.x - startTouch.x];
-    }
-}
-
-
-// 监控网络状态变化
--(void)netReachChanged:(NSNotification *)notificaition{
-    NSDictionary *userInfo = notificaition.userInfo;
-    if ([userInfo[@"AFNetworkingReachabilityNotificationStatusItem"] intValue] == 0 || [userInfo[@"AFNetworkingReachabilityNotificationStatusItem"] intValue] == -1) {
-        [self addNoNetViews];
-    }else{
-        if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"firstLoad"] intValue] == 0) {
-            [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"firstLoad"];
-            [self removeNoNetViews];
-            [self webViewFirstRequest];
-        }
-    }
-}
-
-// 再次加载页面
--(void)reloadWebView{
-    [[LXViewControllerManager shareViewControllerManager] showHudText:nil];
-    if (!self.webView.canGoBack) {
-        [self webViewFirstRequest];
-    }else{
-        [self.webView reload];
-    }
-    
-}
-
-// 首次加载web
--(void)webViewFirstRequest{
-    NSString *url = [NSString stringWithFormat:@"%@%@", kHost, @"jyapp/free/index"];
-    NSString *token = [LXUserDefaults token];
-    if ([LXUserDefaults isExistToken]) {
-        url = [url stringByAppendingString:[NSString stringWithFormat:@"?sign=%@&url=/jyapp/jylab/mainSearch&from=restart", token]];
-    }
-    url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-    
-}
-
-//收到消息退出并重新加载web
--(void)webViewRequestByMsg{
-    NSString *url = [NSString stringWithFormat:@"%@%@", kHost, @"jyapp/free/kicked"];
-    url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-}
-
--(void)requestWebTime:(NSDictionary *)infoDict
-{
-    NSString * urlStr = [NSString stringWithFormat:@"%@",infoDict[@"url"]];
-    
-    if([infoDict[@"type"] isEqualToString:@"message"]) {
-        NSString *url = [NSString stringWithFormat:@"%@",urlStr];
-        NSArray * array = [url componentsSeparatedByString:@"=="];
-        url =  [array.firstObject stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"kNewWebControllerDismiss" object:nil];
-        //
-    }else {
-        NSString *url = [NSString stringWithFormat:@"%@%@", kHost, urlStr];
-        url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"kNewWebControllerDismiss" object:nil];
-    }
-    
-}
-
-// 点击通知 跳转到通知内url
--(void)requestWebView:(NSNotification *)notification{
-    NSDictionary * infoDict = [notification object];
-    if (!infoDict) {
-        return;
-    }
-    NSString * urlStr = [NSString stringWithFormat:@"%@",infoDict[@"url"]];
-    
-    if (urlStr) {
-        [[LXViewControllerManager shareViewControllerManager] showHudText:nil];
-        self.afterOpenPushMessage = YES;
-        
-        
-        [self performSelector:@selector(requestWebTime:) withObject:infoDict afterDelay:1];
-        //        if([infoDict[@"type"] isEqualToString:@"message"]) {
-        //            NSString *url = [NSString stringWithFormat:@"%@",urlStr];
-        //            url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-        //            [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-        //            [[NSNotificationCenter defaultCenter] postNotificationName:@"kNewWebControllerDismiss" object:nil];
-        //        }else {
-        //            NSString *url = [NSString stringWithFormat:@"%@%@", kHost, urlStr];
-        //            url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-        //            [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-        //            [[NSNotificationCenter defaultCenter] postNotificationName:@"kNewWebControllerDismiss" object:nil];
-        //        }
-        
-        
-    }
-    
-    
-}
-
-
-
-
-// 收到通知消息
--(void)afterReceiveNewMsg{
-    NSLog(@"afterReceiveNewMsg");
-    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-    [context evaluateScript:@"afterReceiveNewMsg()"];
-}
-
-// 收到退出登录消息
--(void)loginOut:(NSNotification *)notification{
-    self.signOutContent = notification.object;
-    if (!self.signOutContent) {
-        self.signOutContent = @"1";
-    }
-    NSString *url = [NSString stringWithFormat:@"%@%@?sign=%@", kHost, @"jyapp/free/signOut", [LXUserDefaults token]];
-    url =  [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
-    
-    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-//    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
-//    webView.delegate = self;
-//    [self.view addSubview:webView];
-//    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-    
-    //    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
-    [self jsRemoveUserToken:nil];
-}
-
-
-
-
-- (void)hideTabBar {
-    
-    kMainQueue(^{
-        if (self.tabBarController.tabBar.hidden == YES) {
-            return;
-        }
-        UIView *contentView;
-        if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
-            contentView = [self.tabBarController.view.subviews objectAtIndex:1];
-        else
-            contentView = [self.tabBarController.view.subviews objectAtIndex:0];
-        contentView.frame = CGRectMake(contentView.bounds.origin.x,  contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height + self.tabBarController.tabBar.frame.size.height);
-        self.tabBarController.tabBar.hidden = YES;
-    });
-}
-- (void)showTabBar{
-    kMainQueue(^{
-        if (self.tabBarController.tabBar.hidden == NO)
-        {
-            return;
-        }
-        UIView *contentView;
-        if ([[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]])
-            
-            contentView = [self.tabBarController.view.subviews objectAtIndex:1];
-        
-        else
-            
-            contentView = [self.tabBarController.view.subviews objectAtIndex:0];
-        contentView.frame = CGRectMake(contentView.bounds.origin.x, contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height - self.tabBarController.tabBar.frame.size.height);
-        self.tabBarController.tabBar.hidden = NO;
-    });
-}
-
--(void)jsHiddenBottom:(NSString *)hidden
-{
-    if([hidden integerValue]==0) {
-        [self hideTabBar];
-        self.webView.frame = CGRectMake(0, -STATUS_BAR_HEIGHT, WIDTH, HEIGHT+STATUS_BAR_HEIGHT);
-    }else {
-        [self showTabBar];
-        self.webView.frame = CGRectMake(0, -STATUS_BAR_HEIGHT, WIDTH, HEIGHT-TAB_BAR_HEIGHT+STATUS_BAR_HEIGHT);
-    }
-}
-
--(void)judgeIsHidden
-{
-    NSString *current_url = [self.webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
-    
-    if([current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/free/me",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/jylab/index",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/wxkeyset/keyset/index",kHost]]||[current_url isEqualToString:[NSString stringWithFormat:@"%@jyapp/jylab/mainSearch",kHost]]){
-        
-        [self showTabBar];
-        self.webView.frame = CGRectMake(0, -STATUS_BAR_HEIGHT, WIDTH, HEIGHT-TAB_BAR_HEIGHT+STATUS_BAR_HEIGHT);
-    }else {
-        [self hideTabBar];
-        self.webView.frame = CGRectMake(0, -STATUS_BAR_HEIGHT, WIDTH, HEIGHT+STATUS_BAR_HEIGHT);
-    }
-    
-}
-
-
-#pragma mark  捕获js中调用的方法
-
-//捕获js中调用的方法
-- (void)webViewDidFinishLoad:(UIWebView *)webView{
-    
-    [self judgeIsHidden];//是否隐藏
-    [self removeNoNetViews];
-    [[LXViewControllerManager shareViewControllerManager] hideHud];
-    JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-    // Disable user selection
-    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
-    // Disable callout
-    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
-    
-    context[@"JyObj"] = self;
-    
-    [context evaluateScript:@"afterPageInit()"];
-    if (self.afterOpenPushMessage) {
-        self.afterOpenPushMessage = NO;
-        //        [context evaluateScript:@"afterOpenPushMessage()"];
-        [context evaluateScript:[NSString stringWithFormat:@"afterOpenPushMessage('%d')", [self jsIsCanBack:nil]]];
-    }
-    
-    NSString *url = webView.request.URL.absoluteString;
-    [self doSomeWithLoadUrl:url];
-}
-
--(void)doSomeWithLoadUrl:(NSString *)url{
-    if (!url) {
-        return;
-    }
-    if ([url containsString:@"signOut"]) { // 收到退出消息后 跳转到登录页面
-        //        [self webViewFirstRequest];
-        [self webViewRequestByMsg];
-    }else if ([url containsString:@"/free/login"]){ //  如果通过接收消息 跳转到登录页面 展示消息内容
-        if (self.signOutContent && ![self.signOutContent isEqualToString:@"1"]) {
-            [[LXViewControllerManager shareViewControllerManager] showAlertViewWithTitle:@"提示" message:self.signOutContent actions:@[[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-                self.signOutContent = nil;
-            }]]];
-        }else{
-            self.signOutContent = nil;
-        }
-    }
-}
-
--(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
-    [[LXViewControllerManager shareViewControllerManager] hideHud];
-    
-    NSString *url = webView.request.URL.absoluteString;
-    [self doSomeWithLoadUrl:url];
-}
-
-
-
--(void)webViewDidStartLoad:(UIWebView *)webView{
-    //    if ([[UIDevice currentDevice].systemVersion floatValue] < 10) {
-    //        [[LXViewControllerManager shareViewControllerManager] hideHud];
-    //    }
-}
-
-
-- (void)didReceiveMemoryWarning {
-    [super didReceiveMemoryWarning];
-//    [self clearWeb];
-    // Dispose of any resources that can be recreated.
-    
-    //当前页面:http://jianyu360.mikecrm.com/9Li9dpM
-    //https://mp.weixin.qq.com/s/jomQtxcanA-Nszgy1ubuhA
-}
-
--(void)clearWeb{
-    NSURLCache * cache = [NSURLCache sharedURLCache];
-    [cache removeAllCachedResponses];
-    [cache setDiskCapacity:0];
-    [cache setMemoryCapacity:0];
-}
-
--(void)addNoNetViews{
-    kMainQueue(^{
-        [self removeNoNetViews];
-        self.noNetView = [NoNetView shareView];
-        [self.view addSubview:self.noNetView];
-    });
-}
-
--(void)removeNoNetViews{
-    if (self.noNetView ) {
-        [self.noNetView removeFromSuperview];
-        self.noNetView  = nil;
-    }
-}
-
-
-#pragma  mark JS 回调
-// 微信登录
--(NSString *)jsLoginByWeixin:(NSString *)str{
-    
-    if ([LXUserDefaults isInstallWeiXin] != 1) { // 没有安装微信 不走友盟
-        [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"微信登录失败,没有安装微信" delay:1.5];
-        return nil;
-    }
-    
-    kMainQueue(^{
-        
-        [[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_WechatSession currentViewController:self completion:^(id result, NSError *error) {
-            
-            UMSocialUserInfoResponse *resp = result;
-            
-            [self dealWXDic:(NSDictionary *)resp.originalResponse];
-            
-            [[LXViewControllerManager shareViewControllerManager] hideHud];
-        }];
-        
-        
-        
-    });
-    
-    return nil;
-}
-// 处理微信登录获取到的数据
--(void)dealWXDic:(NSDictionary *)dictionary{
-    
-    [[LXViewControllerManager shareViewControllerManager] showHudText:nil];
-    //如果获取到用户信息,即用户点击了“登录”,则进行用户信息获取
-    if (dictionary.count > 0) {
-        
-        NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:dictionary];
-        
-        if (dic) {
-            [dic removeObjectForKey:@"privilege"];
-            [dic removeObjectForKey:@"language"];
-            double currDouble = [[NSDate date] timeIntervalSince1970];
-            [dic setObject:[NSNumber numberWithLong:(long)currDouble] forKey:@"createtime"];
-            
-            //         拼接标志位
-            NSString *sign = [NSString stringWithFormat:@"city=%@&country=%@&createtime=%@&headimgurl=%@&nickname=%@&openid=%@&province=%@&sex=%@&unionid=%@", dic[@"city"], dic[@"country"], dic[@"createtime"], dic[@"headimgurl"], dic[@"nickname"], dic[@"openid"], dic[@"province"],dic[@"sex"],dic[@"unionid"]];
-            sign = [LXMD5 md532BitLower:sign];
-            [dic setObject:sign forKey:@"sign"];
-            NSString *endStr = [[LXViewControllerManager shareViewControllerManager] getJsonStr:dic];
-            NSData *data = [endStr dataUsingEncoding:NSUTF8StringEncoding];
-            endStr = [data base64EncodedStringWithOptions:0];
-            
-            
-            JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-            NSString * textJS1 = [NSString stringWithFormat:@"loginByWeixinCallBack('%@')", endStr];
-            JSValue *value =   [context evaluateScript:textJS1];
-            NSLog(@"%@", value);
-            
-        }
-    }
-    
-}
-
-// js 调用分享
--(void)jsShare:(NSString *)type title:(NSString *)title content:(NSString *)content link:(NSString *)link{
-    UMSocialPlatformType shareType;
-    
-    if ([type intValue] == 1) { // 微信好友
-        shareType = UMSocialPlatformType_WechatSession;
-    }else if ([type intValue] == 2){ /// qq好友
-        shareType = UMSocialPlatformType_QQ;
-    }else if ([type intValue] == 3){ // 朋友圈
-        shareType = UMSocialPlatformType_WechatTimeLine;
-    }else{
-        shareType = UMSocialPlatformType_WechatSession;
-    }
-    
-    kMainQueue((^{
-        
-        //         没有安装app 不走分享逻辑
-        if ([type intValue] == 1 || [type intValue] == 3) {
-            if ([LXUserDefaults isInstallWeiXin] != 1) {
-                [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"没有安装微信" delay:1.5];
-                return;
-            }
-        }
-        //         没有安装app 不走分享逻辑
-        if ([type intValue] == 2) {
-            if (![[UMSocialManager defaultManager] isInstall:UMSocialPlatformType_QQ]) {
-                [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"没有安装QQ" delay:1.5];
-                return;
-            }
-        }
-        
-        //创建分享消息对象
-        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
-        //创建网页内容对象
-        UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:title descr:content thumImage:[UIImage imageNamed:@"logo"]];
-        //设置网页地址
-        shareObject.webpageUrl = link;
-        messageObject.shareObject = shareObject;
-        //调用分享接口
-        [[UMSocialManager defaultManager] shareToPlatform:shareType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
-            if (error) {
-                NSLog(@"22222222%@",error.userInfo);
-                if (error.userInfo[@"message"] && [error.userInfo[@"message"] containsString:@"Operation is cancel"]) {
-                    [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:@"取消分享" delay:1];
-                }else{
-                    [[LXViewControllerManager shareViewControllerManager] showHudOnlyText:error.userInfo[@"message"] delay:1];
-                }
-                
-                NSString *textJS =  [NSString stringWithFormat:@"shareCallBack('%@','%@')",type,@"0"];
-                JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-                [context evaluateScript:textJS];
-                
-            }else{
-                if ([data isKindOfClass:[UMSocialShareResponse class]]) {
-                    UMSocialShareResponse *resp = data;
-                    NSLog(@"33333%@",resp.message);
-                    NSLog(@"44444%@",resp.originalResponse);
-                    
-                    NSString *textJS =  [NSString stringWithFormat:@"shareCallBack('%@','%@')",type,@"1"];
-                    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-                    [context evaluateScript:textJS];
-                    
-                }else{
-                    UMSocialLogInfo(@"response data is %@",data);
-                    NSLog(@"55555%@",data);
-                }
-            }
-        }];
-    }));
-}
-
-// 登录时获取到令牌 并保存
--(void)jsSaveUserToken:(NSString *)token{
-    [[LXViewControllerManager shareViewControllerManager] hideHud];
-    [LXUserDefaults saveToken:token];
-}
-
-// 取本地的用户令牌
--(NSString *)jsGetUserToken:(NSString *)str{
-    return [LXUserDefaults token];
-}
-
-// 退出时 清空用户数据
--(void)jsRemoveUserToken:(NSString *)str{
-    [LXUserDefaults clearAll];
-    //    [[LXDataBaseManager shareDataBaseManager] clearAll];
-    
-}
-
-
-// 手机通知权限是否打开
--(int)jsCheckNoticePermission:(NSString *)str{
-    int a = [LXUserDefaults notifyState];
-    return a;
-}
-
-// 跳转到系统设置
--(void)jsOpenSystemNotification:(NSString *)str{
-    self.updateNotify = YES;
-    kMainQueue(^{
-        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
-    });
-}
-
-// 调用js方法 刷新推送权限状态
--(void)updateNotifyState{
-    if (self.updateNotify) {
-        self.updateNotify = NO;
-        JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-        NSString * textJS1 = [NSString stringWithFormat:@"updateNoticeSwitch()"];
-        [context evaluateScript:textJS1];
-    }
-}
-// 获取推送id
--(NSString *)jsGetPushRid:(NSString *)str{
-    return [LXUserDefaults registrationID];
-}
-
-// 按通知取数据
--(NSString *)jsGetMessageList:(NSString *)openid{
-    NSArray *arr = [[LXDataBaseManager shareDataBaseManager] getMessageWithKey:nil openid:openid fromTable:kNewsTable start:0 length:100];
-    if (arr.count > 0) {
-        return [[LXViewControllerManager shareViewControllerManager] getJsonStr:arr];
-    }
-    return @"";
-}
-
-// 更新消息状态
--(void)jsUpdateMessageState:(NSNumber *)lxID state:(NSNumber *)state{
-    [[LXDataBaseManager shareDataBaseManager] changeReadedWithID:lxID state:state];
-}
-
-// 删除一条数据
--(void)jsDeleteMessageById:(NSNumber *)lxID{
-    [[LXDataBaseManager shareDataBaseManager] deleteMessage:lxID fromTable:kNewsTable];
-}
-
-// 取单条数据
--(NSString *)jsGetMessage:(NSString *)lxID{
-    return [[LXViewControllerManager shareViewControllerManager] getJsonStr:[[LXDataBaseManager shareDataBaseManager] getMessageWithKey:lxID openid:nil fromTable:kNewsTable start:0 length:0]];
-}
-// 取未读消息总数
--(int)jsGetUnReadMessageCount:(NSString *)openid{
-    NSLog(@"openid=%@",openid);
-    //    NSLog(@"%d",[[LXDataBaseManager shareDataBaseManager] getUnReadMessageCount:openid]);
-    
-    return [[LXDataBaseManager shareDataBaseManager] getUnReadMessageCount:openid];
-}
-
-// 全部置为已读
--(void)jsUpdateAllUnReadMessage:(NSString *)openid{
-    [[LXDataBaseManager shareDataBaseManager] updateAllUnReadMessage:openid];
-}
-
-// 改变状态栏文字颜色
--(void)jsLightStatusBar:(NSString *)status{
-    kMainQueue(^{
-        NSInteger index = 0;
-        if ([status intValue] == 1) {
-            index = 1;// hei
-        }else{
-            index = 0;// bai
-        }
-        [[UIApplication sharedApplication] setStatusBarStyle:index];
-    });
-    
-}
-// 打开新页面 加载新web
--(void)jsOpenExternalLink:(NSString *)url title:(NSString *)title{
-    if (url) {
-        if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable || [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusUnknown) {
-            //            [self addNoNetViews];
-        }
-        NewWebController *ctr = [[NewWebController alloc] init];
-        ctr.url = url;
-        //         有title的话 会显示自定义的导航栏 没有的话不显示导航栏 显示加载进度条
-        if (!title || [title isEqualToString:@""] || [title isEqualToString:@"undefined"]) {
-            ctr.titleShow = nil;
-        }else{
-            ctr.titleShow = title;
-        }
-        kMainQueue(^{
-            [self presentViewController:ctr animated:NO completion:nil];
-        });
-    }
-}
-
-// 获取当前版本号
--(NSString *)jsGetVersion:(NSString *)str{
-    return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
-}
-
-// web是否可退回上页面
--(int)jsIsCanBack:(NSString *)str{
-    return self.webView.canGoBack ? 1:0;
-}
-
-// 弹框
--(void)jsAlert:(NSString *)content{
-    [[LXViewControllerManager shareViewControllerManager] showAlertViewWithMessage:content];
-}
-
-// 是否安装微信
--(int)jsIsInstallWeixin:(NSString *)str{
-    return [LXUserDefaults isInstallWeiXin];
-}
-
-
--(void)jsChangeMessageType:(NSString *)link
-{
-    //已读操作处理
-    NSLog(@"已读操作处理-更改");
-    [[LXDataBaseManager shareDataBaseManager] changeCatagoryTypeWithURL:link];
-}
-
-
-
-
-
-
-
--(void)jsOpenActivityPage:(NSString *)url rectype:(NSString *)rectype openid:(NSString *)openid
-{
-    NSDictionary * infoDic = @{@"url":url,
-                               @"rectype":rectype,
-                               @"openid":openid,
-                               };
-    
-    //    NSString *textJS =  [NSString stringWithFormat:@"messageAccept('%@','%@','%@')",infoDic[@"mid"],infoDic[@"rectype"],infoDic[@"openid"]];
-    //    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
-    //    [context evaluateScript:textJS];
-    
-    
-    //post请求
-    NSLog(@"%@",[NSString stringWithFormat:@"%@jyapp/free/message/receive",kHost]);
-    [[LXNetworkManager shareLXNetworkManager]postWithURLStr:[NSString stringWithFormat:@"%@jyapp/free/message/receive",kHost] parameters:infoDic progress:^(NSProgress *progress) {
-        NSLog(@"成功:%@",progress);
-    } success:^(id responseObject) {
-        NSLog(@"responseObject=%@",responseObject);
-    } failure:^(NSError *error) {
-        NSLog(@"error=%@",error);
-    }];
-    
-    
-}
-
-
-
-
-
--(NSString *)jsGetCipherText:(NSString *)phone
-{
-    
-    NSDate *date=[NSDate date];
-    NSDateFormatter *format1=[[NSDateFormatter alloc] init];
-    [format1 setDateFormat:@"yyyyMMddhhmmss"];
-    NSString *dateStr;
-    dateStr=[format1 stringFromDate:date];
-    NSLog(@"%@",dateStr);
-    
-    NSString *content = [[NSString stringWithFormat:@"%@_%@",phone,dateStr] stringByAppendingString:[NSString stringWithFormat:@"_%@",[LXMD5 md532BitLower:[NSString stringWithFormat:@"%@&%@",phone,dateStr]]]];
-    NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding];
-    NSUInteger dataLength = contentData.length;
-    // 为结束符'\\0' +1
-    char keyPtr[kKeySize + 1];
-    memset(keyPtr, 0, sizeof(keyPtr));
-    [AesKey getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
-    // 密文长度 <= 明文长度 + BlockSize
-    size_t encryptSize = dataLength + kCCBlockSizeAES128;
-    void *encryptedBytes = malloc(encryptSize);
-    size_t actualOutSize = 0;
-    NSData *initVector = [kInitVector dataUsingEncoding:NSUTF8StringEncoding];
-    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
-                                          kCCAlgorithmAES,
-                                          kCCOptionPKCS7Padding,  // 系统默认使用 CBC,然后指明使用 PKCS7Padding
-                                          keyPtr,
-                                          kKeySize,
-                                          initVector.bytes,
-                                          contentData.bytes,
-                                          dataLength,
-                                          encryptedBytes,
-                                          encryptSize,
-                                          &actualOutSize);
-    if (cryptStatus == kCCSuccess) {
-        // 对加密后的数据进行 base64 编码
-        return [[NSData dataWithBytesNoCopy:encryptedBytes length:actualOutSize] base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
-    }
-    free(encryptedBytes);
-    return nil;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@end

+ 0 - 102
ios/JianYuIOS/JianYuIOS/guide/Reachability.h

@@ -1,102 +0,0 @@
-/*
- Copyright (c) 2011, Tony Million.
- All rights reserved.
- 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 
- 1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- 
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- 
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#import <Foundation/Foundation.h>
-#import <SystemConfiguration/SystemConfiguration.h>
-
-//! Project version number for MacOSReachability.
-FOUNDATION_EXPORT double ReachabilityVersionNumber;
-
-//! Project version string for MacOSReachability.
-FOUNDATION_EXPORT const unsigned char ReachabilityVersionString[];
-
-/** 
- * Create NS_ENUM macro if it does not exist on the targeted version of iOS or OS X.
- *
- * @see http://nshipster.com/ns_enum-ns_options/
- **/
-#ifndef NS_ENUM
-#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
-#endif
-
-extern NSString *const kReachabilityChangedNotification;
-
-typedef NS_ENUM(NSInteger, NetworkStatus) {
-    // Apple NetworkStatus Compatible Names.
-    NotReachable = 0,
-    ReachableViaWiFi = 2,
-    ReachableViaWWAN = 1
-};
-
-@class Reachability;
-
-typedef void (^NetworkReachable)(Reachability * reachability);
-typedef void (^NetworkUnreachable)(Reachability * reachability);
-typedef void (^NetworkReachability)(Reachability * reachability, SCNetworkConnectionFlags flags);
-
-
-@interface Reachability : NSObject
-
-@property (nonatomic, copy) NetworkReachable    reachableBlock;
-@property (nonatomic, copy) NetworkUnreachable  unreachableBlock;
-@property (nonatomic, copy) NetworkReachability reachabilityBlock;
-
-@property (nonatomic, assign) BOOL reachableOnWWAN;
-
-
-+(instancetype)reachabilityWithHostname:(NSString*)hostname;
-// This is identical to the function above, but is here to maintain
-//compatibility with Apples original code. (see .m)
-+(instancetype)reachabilityWithHostName:(NSString*)hostname;
-+(instancetype)reachabilityForInternetConnection;
-+(instancetype)reachabilityWithAddress:(void *)hostAddress;
-+(instancetype)reachabilityForLocalWiFi;
-
--(instancetype)initWithReachabilityRef:(SCNetworkReachabilityRef)ref;
-
--(BOOL)startNotifier;
--(void)stopNotifier;
-
--(BOOL)isReachable;
--(BOOL)isReachableViaWWAN;
--(BOOL)isReachableViaWiFi;
-
-// WWAN may be available, but not active until a connection has been established.
-// WiFi may require a connection for VPN on Demand.
--(BOOL)isConnectionRequired; // Identical DDG variant.
--(BOOL)connectionRequired; // Apple's routine.
-// Dynamic, on demand connection?
--(BOOL)isConnectionOnDemand;
-// Is user intervention required?
--(BOOL)isInterventionRequired;
-
--(NetworkStatus)currentReachabilityStatus;
--(SCNetworkReachabilityFlags)reachabilityFlags;
--(NSString*)currentReachabilityString;
--(NSString*)currentReachabilityFlags;
-
-@end

+ 0 - 475
ios/JianYuIOS/JianYuIOS/guide/Reachability.m

@@ -1,475 +0,0 @@
-/*
- Copyright (c) 2011, Tony Million.
- All rights reserved.
- 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 
- 1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- 
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- 
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#import "Reachability.h"
-
-#import <sys/socket.h>
-#import <netinet/in.h>
-#import <netinet6/in6.h>
-#import <arpa/inet.h>
-#import <ifaddrs.h>
-#import <netdb.h>
-
-
-NSString *const kReachabilityChangedNotification = @"kReachabilityChangedNotification";
-
-
-@interface Reachability ()
-
-@property (nonatomic, assign) SCNetworkReachabilityRef  reachabilityRef;
-@property (nonatomic, strong) dispatch_queue_t          reachabilitySerialQueue;
-@property (nonatomic, strong) id                        reachabilityObject;
-
--(void)reachabilityChanged:(SCNetworkReachabilityFlags)flags;
--(BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags;
-
-@end
-
-
-static NSString *reachabilityFlags(SCNetworkReachabilityFlags flags) 
-{
-    return [NSString stringWithFormat:@"%c%c %c%c%c%c%c%c%c",
-#if	TARGET_OS_IPHONE
-            (flags & kSCNetworkReachabilityFlagsIsWWAN)               ? 'W' : '-',
-#else
-            'X',
-#endif
-            (flags & kSCNetworkReachabilityFlagsReachable)            ? 'R' : '-',
-            (flags & kSCNetworkReachabilityFlagsConnectionRequired)   ? 'c' : '-',
-            (flags & kSCNetworkReachabilityFlagsTransientConnection)  ? 't' : '-',
-            (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
-            (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)  ? 'C' : '-',
-            (flags & kSCNetworkReachabilityFlagsConnectionOnDemand)   ? 'D' : '-',
-            (flags & kSCNetworkReachabilityFlagsIsLocalAddress)       ? 'l' : '-',
-            (flags & kSCNetworkReachabilityFlagsIsDirect)             ? 'd' : '-'];
-}
-
-// Start listening for reachability notifications on the current run loop
-static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) 
-{
-#pragma unused (target)
-
-    Reachability *reachability = ((__bridge Reachability*)info);
-
-    // We probably don't need an autoreleasepool here, as GCD docs state each queue has its own autorelease pool,
-    // but what the heck eh?
-    @autoreleasepool 
-    {
-        [reachability reachabilityChanged:flags];
-    }
-}
-
-
-@implementation Reachability
-
-#pragma mark - Class Constructor Methods
-
-+(instancetype)reachabilityWithHostName:(NSString*)hostname
-{
-    return [Reachability reachabilityWithHostname:hostname];
-}
-
-+(instancetype)reachabilityWithHostname:(NSString*)hostname
-{
-    SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String]);
-    if (ref) 
-    {
-        id reachability = [[self alloc] initWithReachabilityRef:ref];
-
-        return reachability;
-    }
-    
-    return nil;
-}
-
-+(instancetype)reachabilityWithAddress:(void *)hostAddress
-{
-    SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)hostAddress);
-    if (ref) 
-    {
-        id reachability = [[self alloc] initWithReachabilityRef:ref];
-        
-        return reachability;
-    }
-    
-    return nil;
-}
-
-+(instancetype)reachabilityForInternetConnection
-{
-    struct sockaddr_in zeroAddress;
-    bzero(&zeroAddress, sizeof(zeroAddress));
-    zeroAddress.sin_len = sizeof(zeroAddress);
-    zeroAddress.sin_family = AF_INET;
-    
-    return [self reachabilityWithAddress:&zeroAddress];
-}
-
-+(instancetype)reachabilityForLocalWiFi
-{
-    struct sockaddr_in localWifiAddress;
-    bzero(&localWifiAddress, sizeof(localWifiAddress));
-    localWifiAddress.sin_len            = sizeof(localWifiAddress);
-    localWifiAddress.sin_family         = AF_INET;
-    // IN_LINKLOCALNETNUM is defined in <netinet/in.h> as 169.254.0.0
-    localWifiAddress.sin_addr.s_addr    = htonl(IN_LINKLOCALNETNUM);
-    
-    return [self reachabilityWithAddress:&localWifiAddress];
-}
-
-
-// Initialization methods
-
--(instancetype)initWithReachabilityRef:(SCNetworkReachabilityRef)ref
-{
-    self = [super init];
-    if (self != nil) 
-    {
-        self.reachableOnWWAN = YES;
-        self.reachabilityRef = ref;
-
-        // We need to create a serial queue.
-        // We allocate this once for the lifetime of the notifier.
-
-        self.reachabilitySerialQueue = dispatch_queue_create("com.tonymillion.reachability", NULL);
-    }
-    
-    return self;    
-}
-
--(void)dealloc
-{
-    [self stopNotifier];
-
-    if(self.reachabilityRef)
-    {
-        CFRelease(self.reachabilityRef);
-        self.reachabilityRef = nil;
-    }
-
-	self.reachableBlock          = nil;
-    self.unreachableBlock        = nil;
-    self.reachabilityBlock       = nil;
-    self.reachabilitySerialQueue = nil;
-}
-
-#pragma mark - Notifier Methods
-
-// Notifier 
-// NOTE: This uses GCD to trigger the blocks - they *WILL NOT* be called on THE MAIN THREAD
-// - In other words DO NOT DO ANY UI UPDATES IN THE BLOCKS.
-//   INSTEAD USE dispatch_async(dispatch_get_main_queue(), ^{UISTUFF}) (or dispatch_sync if you want)
-
--(BOOL)startNotifier
-{
-    // allow start notifier to be called multiple times
-    if(self.reachabilityObject && (self.reachabilityObject == self))
-    {
-        return YES;
-    }
-
-
-    SCNetworkReachabilityContext    context = { 0, NULL, NULL, NULL, NULL };
-    context.info = (__bridge void *)self;
-
-    if(SCNetworkReachabilitySetCallback(self.reachabilityRef, TMReachabilityCallback, &context))
-    {
-        // Set it as our reachability queue, which will retain the queue
-        if(SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, self.reachabilitySerialQueue))
-        {
-            // this should do a retain on ourself, so as long as we're in notifier mode we shouldn't disappear out from under ourselves
-            // woah
-            self.reachabilityObject = self;
-            return YES;
-        }
-        else
-        {
-#ifdef DEBUG
-            NSLog(@"SCNetworkReachabilitySetDispatchQueue() failed: %s", SCErrorString(SCError()));
-#endif
-
-            // UH OH - FAILURE - stop any callbacks!
-            SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL);
-        }
-    }
-    else
-    {
-#ifdef DEBUG
-        NSLog(@"SCNetworkReachabilitySetCallback() failed: %s", SCErrorString(SCError()));
-#endif
-    }
-
-    // if we get here we fail at the internet
-    self.reachabilityObject = nil;
-    return NO;
-}
-
--(void)stopNotifier
-{
-    // First stop, any callbacks!
-    SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL);
-    
-    // Unregister target from the GCD serial dispatch queue.
-    SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, NULL);
-
-    self.reachabilityObject = nil;
-}
-
-#pragma mark - reachability tests
-
-// This is for the case where you flick the airplane mode;
-// you end up getting something like this:
-//Reachability: WR ct-----
-//Reachability: -- -------
-//Reachability: WR ct-----
-//Reachability: -- -------
-// We treat this as 4 UNREACHABLE triggers - really apple should do better than this
-
-#define testcase (kSCNetworkReachabilityFlagsConnectionRequired | kSCNetworkReachabilityFlagsTransientConnection)
-
--(BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags
-{
-    BOOL connectionUP = YES;
-    
-    if(!(flags & kSCNetworkReachabilityFlagsReachable))
-        connectionUP = NO;
-    
-    if( (flags & testcase) == testcase )
-        connectionUP = NO;
-    
-#if	TARGET_OS_IPHONE
-    if(flags & kSCNetworkReachabilityFlagsIsWWAN)
-    {
-        // We're on 3G.
-        if(!self.reachableOnWWAN)
-        {
-            // We don't want to connect when on 3G.
-            connectionUP = NO;
-        }
-    }
-#endif
-    
-    return connectionUP;
-}
-
--(BOOL)isReachable
-{
-    SCNetworkReachabilityFlags flags;  
-    
-    if(!SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-        return NO;
-    
-    return [self isReachableWithFlags:flags];
-}
-
--(BOOL)isReachableViaWWAN 
-{
-#if	TARGET_OS_IPHONE
-
-    SCNetworkReachabilityFlags flags = 0;
-    
-    if(SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-    {
-        // Check we're REACHABLE
-        if(flags & kSCNetworkReachabilityFlagsReachable)
-        {
-            // Now, check we're on WWAN
-            if(flags & kSCNetworkReachabilityFlagsIsWWAN)
-            {
-                return YES;
-            }
-        }
-    }
-#endif
-    
-    return NO;
-}
-
--(BOOL)isReachableViaWiFi 
-{
-    SCNetworkReachabilityFlags flags = 0;
-    
-    if(SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-    {
-        // Check we're reachable
-        if((flags & kSCNetworkReachabilityFlagsReachable))
-        {
-#if	TARGET_OS_IPHONE
-            // Check we're NOT on WWAN
-            if((flags & kSCNetworkReachabilityFlagsIsWWAN))
-            {
-                return NO;
-            }
-#endif
-            return YES;
-        }
-    }
-    
-    return NO;
-}
-
-
-// WWAN may be available, but not active until a connection has been established.
-// WiFi may require a connection for VPN on Demand.
--(BOOL)isConnectionRequired
-{
-    return [self connectionRequired];
-}
-
--(BOOL)connectionRequired
-{
-    SCNetworkReachabilityFlags flags;
-	
-	if(SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-    {
-		return (flags & kSCNetworkReachabilityFlagsConnectionRequired);
-	}
-    
-    return NO;
-}
-
-// Dynamic, on demand connection?
--(BOOL)isConnectionOnDemand
-{
-	SCNetworkReachabilityFlags flags;
-	
-	if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-    {
-		return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) &&
-				(flags & (kSCNetworkReachabilityFlagsConnectionOnTraffic | kSCNetworkReachabilityFlagsConnectionOnDemand)));
-	}
-	
-	return NO;
-}
-
-// Is user intervention required?
--(BOOL)isInterventionRequired
-{
-    SCNetworkReachabilityFlags flags;
-	
-	if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
-    {
-		return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) &&
-				(flags & kSCNetworkReachabilityFlagsInterventionRequired));
-	}
-	
-	return NO;
-}
-
-
-#pragma mark - reachability status stuff
-
--(NetworkStatus)currentReachabilityStatus
-{
-    if([self isReachable])
-    {
-        if([self isReachableViaWiFi])
-            return ReachableViaWiFi;
-        
-#if	TARGET_OS_IPHONE
-        return ReachableViaWWAN;
-#endif
-    }
-    
-    return NotReachable;
-}
-
--(SCNetworkReachabilityFlags)reachabilityFlags
-{
-    SCNetworkReachabilityFlags flags = 0;
-    
-    if(SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) 
-    {
-        return flags;
-    }
-    
-    return 0;
-}
-
--(NSString*)currentReachabilityString
-{
-	NetworkStatus temp = [self currentReachabilityStatus];
-	
-	if(temp == ReachableViaWWAN)
-	{
-        // Updated for the fact that we have CDMA phones now!
-		return NSLocalizedString(@"Cellular", @"");
-	}
-	if (temp == ReachableViaWiFi) 
-	{
-		return NSLocalizedString(@"WiFi", @"");
-	}
-	
-	return NSLocalizedString(@"No Connection", @"");
-}
-
--(NSString*)currentReachabilityFlags
-{
-    return reachabilityFlags([self reachabilityFlags]);
-}
-
-#pragma mark - Callback function calls this method
-
--(void)reachabilityChanged:(SCNetworkReachabilityFlags)flags
-{
-    if([self isReachableWithFlags:flags])
-    {
-        if(self.reachableBlock)
-        {
-            self.reachableBlock(self);
-        }
-    }
-    else
-    {
-        if(self.unreachableBlock)
-        {
-            self.unreachableBlock(self);
-        }
-    }
-    
-    if(self.reachabilityBlock)
-    {
-        self.reachabilityBlock(self, flags);
-    }
-    
-    // this makes sure the change notification happens on the MAIN THREAD
-    dispatch_async(dispatch_get_main_queue(), ^{
-        [[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification 
-                                                            object:self];
-    });
-}
-
-#pragma mark - Debug Description
-
-- (NSString *) description
-{
-    NSString *description = [NSString stringWithFormat:@"<%@: %#x (%@)>",
-                             NSStringFromClass([self class]), (unsigned int) self, [self currentReachabilityFlags]];
-    return description;
-}
-
-@end

+ 0 - 59
ios/JianYuIOS/JianYuIOS/guide/ZKControl.h

@@ -1,59 +0,0 @@
-//
-//  ZKControl.h
-//  zhengkun
-//
-//  Created by 郑坤 on 17/4/24.
-//  Copyright © 2017年 郑坤. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-
-@interface ZKControl : NSObject
-
-
-
-//创建view
-+(UIView*)createViewWithFrame:(CGRect)frame color:(UIColor*)color;
-//创建label
-+(UILabel*)createLabelWithFrame:(CGRect)frame font:(float)font text:(NSString*)text TextColor:(UIColor *)textColor bgColor:(UIColor *)bgColor;
-+(UILabel*)createLabelWithFrame:(CGRect)frame font:(float)font text:(NSString*)text TextAlignment:(NSTextAlignment)textAlignment TextColor:(UIColor *)textColor bgColor:(UIColor *)bgColor;
-
-
-
-
-
-//创建button
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString*)title imageName:(NSString*)imageName bgImageName:(NSString*)bgImageName target:(id)target method:(SEL)select;
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString*)title titleColor:(UIColor *)titleColor titleFont:(float)titleFont imageName:(NSString*)imageName bgImageName:(NSString*)bgImageName target:(id)target method:(SEL)select;
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString*)title titleColor:(UIColor *)titleColor titleFont:(float)titleFont cornerRadius:(float)cornerRadius borderWidth:(float)borderWidth borderColor:(UIColor*)borderColor target:(id)target method:(SEL)select;//包含边框的button
-//渐变色button
-+(UIButton*)createGradientButtonWithFrame:(CGRect)frame title:(NSString*)title titleColor:(UIColor *)titleColor titleFont:(float)titleFont cornerRadius:(float)cornerRadius borderWidth:(float)borderWidth borderColor:(UIColor*)borderColor target:(id)target method:(SEL)select;
-//创建switch
-+(UISwitch *)createSwitchWithFrame:(CGRect)frame withBOOL:(BOOL)BL target:(id)target method:(SEL)select;
-
-
-
-
-
-
-//创建imageView
-+(UIImageView*)createImageViewFrame:(CGRect)frame imageName:(NSString*)imageName;
-//创建圆imageView
-+(UIImageView*)createCircleImageViewFrame:(CGRect)frame imageName:(NSString*)imageName image:(UIImage *)image;
-//创建自适应imageView
-+(UIImageView*)createImageViewFrame:(CGRect)frame imageName:(NSString*)imageName withClips:(BOOL)clips;
-//创建textField
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder bgImageName:(NSString*)imageName leftView:(UIView*)leftView rightView:(UIView*)rightView isPassWord:(BOOL)isPassWord;
-//创建圈(适用于长按的按钮)
-+(UIView*)createCircleViewWithFrame:(CGRect)frame color:(UIColor*)color;
-
-
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder textAlignment:(NSTextAlignment)textAlignment font:(float)font titleColor:(UIColor *)color;
-
-//搜索框
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder textAlignment:(NSTextAlignment)textAlignment font:(float)font titleColor:(UIColor *)titleColor backgroundColor:(UIColor *)backgroundColor tintColor:(UIColor *)tintColor cornerRadius:(float)cornerRadius;
-
-
-
-@end

+ 0 - 301
ios/JianYuIOS/JianYuIOS/guide/ZKControl.m

@@ -1,301 +0,0 @@
-//
-//  ZKControl.m
-//  zhengkun
-//
-//  Created by 郑坤 on 17/4/24.
-//  Copyright © 2017年 郑坤. All rights reserved.
-//
-
-#import "ZKControl.h"
-@interface ZKControl()
-@end
-
-@implementation ZKControl
-
-
-+(UIView*)createViewWithFrame:(CGRect)frame color:(UIColor*)color
-{
-    UIView*view=[[UIView alloc]initWithFrame:frame];
-    if (color!=nil) {
-        view.backgroundColor=color;
-    }
-    return view;
-}
-
-
-+(UIView*)createCircleViewWithFrame:(CGRect)frame color:(UIColor*)color
-{
-    UIView*view=[[UIView alloc]initWithFrame:frame];
-    
-    view.layer.masksToBounds = YES;
-    view.layer.borderWidth = 1;
-    view.layer.cornerRadius = view.width*0.5;
-    
-    if (color!=nil) {
-        view.layer.borderColor = color.CGColor;
-    }else {
-        view.layer.borderColor = [UIColor groupTableViewBackgroundColor].CGColor;
-    }
-    
-    return view;
-}
-
-+(UILabel*)createLabelWithFrame:(CGRect)frame font:(float)font text:(NSString*)text TextColor:(UIColor *)textColor bgColor:(UIColor *)bgColor
-{
-    UILabel*label=[[UILabel alloc]initWithFrame:frame];
-    label.font=[UIFont systemFontOfSize:font];
-    //设置折行方式
-    label.lineBreakMode=NSLineBreakByCharWrapping;
-    //设置折行行数
-    label.numberOfLines=0;
-    //设置文字
-    label.text=text;
-    //设置对齐方式
-    label.textAlignment=NSTextAlignmentLeft;
-    //设置颜色
-    label.textColor = textColor;
-    if(bgColor!=nil) {
-        label.backgroundColor = bgColor;
-    }
-    return label;
-}
-+(UILabel*)createLabelWithFrame:(CGRect)frame font:(float)font text:(NSString*)text TextAlignment:(NSTextAlignment)textAlignment TextColor:(UIColor *)textColor bgColor:(UIColor *)bgColor
-{
-    UILabel*label=[[UILabel alloc]initWithFrame:frame];
-    label.font=[UIFont systemFontOfSize:font];
-    //设置折行方式
-    label.lineBreakMode=NSLineBreakByCharWrapping;
-    //设置折行行数
-    label.numberOfLines=0;
-    //设置文字
-    label.text=text;
-    //设置对齐方式
-    label.textAlignment=textAlignment;
-    //设置颜色
-    label.textColor = textColor;
-    if(bgColor!=nil) {
-        label.backgroundColor = bgColor;
-    }
-    return label;
-}
-
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString*)title imageName:(NSString*)imageName bgImageName:(NSString*)bgImageName target:(id)target method:(SEL)select
-{
-    UIButton*button=[UIButton buttonWithType:UIButtonTypeCustom];
-    button.frame=frame;
-    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
-    if (title) {
-        [button setTitle:title forState:UIControlStateNormal];
-    }
-    if (imageName) {
-        [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
-    }
-    if (bgImageName) {
-        [button setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
-    }
-    [button addTarget:target action:select forControlEvents:UIControlEventTouchUpInside];
-    return button;
-}
-
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString *)title titleColor:(UIColor *)titleColor titleFont:(float)titleFont imageName:(NSString *)imageName bgImageName:(NSString *)bgImageName target:(id)target method:(SEL)select
-{
-    UIButton*button=[UIButton buttonWithType:UIButtonTypeCustom];
-    button.frame=frame;
-    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
-    if (title) {
-        [button setTitle:title forState:UIControlStateNormal];
-    }
-    
-    if (titleColor) {
-  
-        [button setTitleColor:titleColor forState:UIControlStateNormal];
-        
-    }
-    if (titleFont) {
-        button.titleLabel.font =[UIFont systemFontOfSize:titleFont];
-    }
-    
-    if (imageName) {
-        [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
-    }
-    if (bgImageName) {
-        [button setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
-    }
-    [button addTarget:target action:select forControlEvents:UIControlEventTouchUpInside];
-    return button;
-}
-
-
-+(UIButton*)createButtonWithFrame:(CGRect)frame title:(NSString*)title titleColor:(UIColor *)titleColor titleFont:(float)titleFont cornerRadius:(float)cornerRadius borderWidth:(float)borderWidth borderColor:(UIColor*)borderColor target:(id)target method:(SEL)select
-{
-    UIButton*button=[UIButton buttonWithType:UIButtonTypeCustom];
-    button.frame=frame;
-    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
-    button.layer.masksToBounds = YES;
-    if(cornerRadius) {
-       button.layer.cornerRadius = cornerRadius;
-    }
-    if (title) {
-        [button setTitle:title forState:UIControlStateNormal];
-    }
-    
-    if (titleColor) {
-        [button setTitleColor:titleColor forState:UIControlStateNormal];
-    }
-    if (titleFont) {
-        button.titleLabel.font =[UIFont systemFontOfSize:titleFont];
-    }
-    
-    if (borderWidth) {
-        button.layer.borderWidth = borderWidth;
-    }
-    if (borderColor) {
-        button.layer.borderColor = borderColor.CGColor;
-    }
-    [button addTarget:target action:select forControlEvents:UIControlEventTouchUpInside];
-    return button;
-}
-
-
-
-
-
-
-
-+(UIImageView*)createImageViewFrame:(CGRect)frame imageName:(NSString*)imageName
-{
-    UIImageView*imageView=[[UIImageView alloc]initWithFrame:frame];
-    if (imageName) {
-        imageView.image=[UIImage imageNamed:imageName];
-    }
-    imageView.userInteractionEnabled=YES;
-    return imageView;
-}
-
-+(UIImageView*)createImageViewFrame:(CGRect)frame imageName:(NSString*)imageName withClips:(BOOL)clips
-{
-    UIImageView*imageView=[[UIImageView alloc]initWithFrame:frame];
-    if (imageName) {
-        imageView.image=[UIImage imageNamed:imageName];
-    }
-    imageView.userInteractionEnabled=YES;
-    if(clips) {
-        imageView.clipsToBounds = YES;
-        imageView.contentMode = UIViewContentModeScaleAspectFill;
-    }
-    return imageView;
-}
-
-
-
-+(UIImageView*)createCircleImageViewFrame:(CGRect)frame imageName:(NSString*)imageName image:(UIImage *)image
-{
-    UIImageView*imageView=[[UIImageView alloc]initWithFrame:frame];
-    if (imageName) {
-        imageView.image=[UIImage imageNamed:imageName];
-    }
-    if (image) {
-        [imageView setImage:image];
-    }
-    imageView.userInteractionEnabled=YES;
-    imageView.layer.cornerRadius = frame.size.width*0.5;
-    imageView.layer.masksToBounds = YES;
-    return imageView;
-}
-
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder bgImageName:(NSString*)imageName leftView:(UIView*)leftView rightView:(UIView*)rightView isPassWord:(BOOL)isPassWord
-{
-    UITextField*textField=[[UITextField alloc]initWithFrame:frame];
-    if (placeholder) {
-        textField.placeholder=placeholder;
-    }
-    if (imageName) {
-        textField.background=[UIImage imageNamed:imageName];
-    }
-    if (leftView) {
-        textField.leftView=leftView;
-        textField.leftViewMode=UITextFieldViewModeAlways;
-    }
-    if (rightView) {
-        textField.rightView=rightView;
-        textField.rightViewMode=UITextFieldViewModeAlways;
-    }
-    if (isPassWord) {
-        textField.secureTextEntry=YES;
-    }
-    return textField;
-}
-
-
-
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder textAlignment:(NSTextAlignment)textAlignment font:(float)font titleColor:(UIColor *)color
-{
-    UITextField*textField=[[UITextField alloc]initWithFrame:frame];
-    if (placeholder) {
-        textField.placeholder=placeholder;
-    }
-    if (textAlignment) {
-        textField.textAlignment = textAlignment;
-    }
-    if(font){
-        textField.font  = [UIFont systemFontOfSize:font];
-    }
-    if(color){
-        textField.textColor = color;
-    }
-    textField.backgroundColor = [UIColor whiteColor];
-    textField.layer.cornerRadius = 2;
-    textField.layer.masksToBounds = YES;
-    textField.tintColor= color;
-    textField.keyboardType = UIKeyboardTypeNumberPad;
-    
-    return textField;
-    
-}
-
-//搜索框
-+(UITextField*)createTextFieldFrame:(CGRect)frame placeholder:(NSString*)placeholder textAlignment:(NSTextAlignment)textAlignment font:(float)font titleColor:(UIColor *)titleColor backgroundColor:(UIColor *)backgroundColor tintColor:(UIColor *)tintColor cornerRadius:(float)cornerRadius
-{
-    UITextField*textField=[[UITextField alloc]initWithFrame:frame];
-    if (placeholder) {
-        textField.placeholder=placeholder;
-    }
-    if (textAlignment) {
-        textField.textAlignment = textAlignment;
-    }
-    if(font){
-        textField.font  = [UIFont systemFontOfSize:font];
-    }
-    if(titleColor){
-        textField.textColor = titleColor;
-    }
-    if(backgroundColor){
-        textField.backgroundColor = backgroundColor;
-    }
-    
-    if(tintColor){
-        //光标
-        textField.tintColor = tintColor;
-    }
-    if(cornerRadius){
-        textField.layer.cornerRadius = cornerRadius;
-        textField.layer.masksToBounds = YES;
-    }
-
-    return textField;
-    
-}
-
-
-+(UISwitch *)createSwitchWithFrame:(CGRect)frame withBOOL:(BOOL)BL target:(id)target method:(SEL)select
-{
-    UISwitch *switch_BTN = [[UISwitch alloc] init];
-    switch_BTN.frame=frame;
-    if(BL) {[switch_BTN setOn:BL];}
-    [switch_BTN addTarget:target action:select forControlEvents:UIControlEventValueChanged];
-    return switch_BTN;
-}
-
-
-
-@end

+ 0 - 22
ios/JianYuIOS/JianYuIOS/guide/ZKGuideView.h

@@ -1,22 +0,0 @@
-//
-//  ZKGuideView.h
-//  JianYuIOS
-//
-//  Created by apple on 2020/4/2.
-//  Copyright © 2020 lixianglan. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ZKGuideView : UIView
-
-
-
-- (instancetype)initWithFrame:(CGRect)frame;
-
--(void)showView;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 300
ios/JianYuIOS/JianYuIOS/guide/ZKGuideView.m

@@ -1,300 +0,0 @@
-//
-//  ZKGuideView.m
-//  JianYuIOS
-//
-//  Created by apple on 2020/4/2.
-//  Copyright © 2020 lixianglan. All rights reserved.
-//
-
-#import "ZKGuideView.h"
-#import "ZKPrivacyView.h"
-
-//政策
-#define privacyA @"jyapp/free/staticPage/privacy_rules.html"
-//协议
-#define privacyB @"jyapp/free/staticPage/permission_rules.html"
-
-
-
-@interface ZKGuideView()<UITextViewDelegate>
-
-@property (nonatomic, strong) UIView  *contentView;//内容
-
-@property (nonatomic, strong) NSArray *nameArr;
-@property (nonatomic, strong) NSArray *hrefArr;
-
-
-
-@end
-
-@implementation ZKGuideView
-
-- (instancetype)initWithFrame:(CGRect)frame {
-     if ([super initWithFrame:frame]) {
-         [self makeUI];
-     }
-    return self;
-}
-
--(void)makeUI{
-    UIImageView *imgView = [[UIImageView alloc]initWithFrame:self.frame];
-    [imgView setImage:[UIImage imageNamed:@"guide"]];
-    [self addSubview:imgView];
-
-    //网络请求
-    [[LXNetworkManager shareLXNetworkManager]postWithURLStr:[NSString stringWithFormat:@"%@jyapp/free/policy",kHost] parameters:nil progress:^(NSProgress *progress) {
-//        NSLog(@"成功:%@",progress);
-    } success:^(id responseObject) {
-        //有网络
-//        NSLog(@"%@",responseObject);
-        if ([responseObject objectForKey:@"data"]) {
-            [self netWorkProtocol:responseObject[@"data"]];
-        }else {
-             [self noNetWorkProtocol];
-        }
-    } failure:^(NSError *error) {
-        NSLog(@"error=%@",error);
-        [self noNetWorkProtocol];
-    }];
-}
-
-
-
-
-//有网络
--(void)netWorkProtocol:(NSDictionary *)dict {
-//    NSLog(@"有网络协议:%@",dict);
-    
-    /*创建灰色背景*/
-    UIView *bgView = [[UIView alloc] initWithFrame:self.frame];
-    bgView.alpha = 0.8;
-    bgView.backgroundColor = [UIColor blackColor];
-    [self addSubview:bgView];
-    self.contentView = [ZKControl createViewWithFrame:CGRectMake(WIDTH*0.1, HEIGHT, WIDTH*0.8, 320) color:[UIColor whiteColor]];
-    self.contentView.layer.cornerRadius = 10;
-    [self addSubview:self.contentView];
-    CGFloat B_H = 45;
-    UILabel *titleLabel = [ZKControl createLabelWithFrame:CGRectMake(0, 15, self.contentView.width, 20) font:18 text:dict[@"title"] TextAlignment:NSTextAlignmentCenter TextColor:UIColorFromRGB(0x171826) bgColor:nil];
-    [self.contentView addSubview:titleLabel];
-
-    UIButton *button = [ZKControl createButtonWithFrame:CGRectMake(0, self.contentView.height-B_H, self.contentView.width, B_H) title:@"同意" titleColor:UIColorFromRGB(0x2ABED1) titleFont:15 imageName:nil bgImageName:nil target:self method:@selector(doneBtnClick:)];
-    UIView *lineView = [ZKControl createViewWithFrame:CGRectMake(0, self.contentView.height-B_H-1, self.contentView.width, 1) color:UIColorFromRGB(0xEEEEEE)];
-    [self.contentView addSubview:button];
-    [self.contentView addSubview:lineView];
-    
-    UITextView *protocolTV = [[UITextView alloc] init];
-    protocolTV.frame = CGRectMake(15, titleLabel.bottom+10, self.contentView.width-30, lineView.top-titleLabel.bottom-10);
-    protocolTV.editable = NO;
-    protocolTV.delegate = self;
-    protocolTV.textContainer.lineFragmentPadding = 0.0;
-    protocolTV.linkTextAttributes = @{NSForegroundColorAttributeName:UIColorFromRGB(0x2ABED1)};
-    [self.contentView addSubview:protocolTV];
-    
-    //内容
-    NSString *protocolStr = dict[@"content"];
-    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
-    paragraphStyle.lineSpacing = 2;// 字体的行间距
-    NSMutableAttributedString *privacyMutableAttrStr = [[NSMutableAttributedString alloc] initWithString:protocolStr attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0],NSForegroundColorAttributeName:UIColorFromRGB(0x5F5E64),NSParagraphStyleAttributeName:paragraphStyle}];
-    
-    //属性颜色
-    //名字name  链接href
-    
-    self.nameArr = dict[@"name"];
-    self.hrefArr = dict[@"href"];
-    
-    for (int i=0;i<self.nameArr.count;i++) {
-        NSArray *arr = [self rangeOfSubString:self.nameArr[i] inString:protocolStr];
-        for (NSValue *value in arr) {
-            NSString *privacyName = [NSString stringWithFormat:@"privacy%d://",i];
-            [privacyMutableAttrStr addAttribute:NSLinkAttributeName value:privacyName range:[value rangeValue]];
-            
-         
-        }
-    }
-
-    protocolTV.attributedText = privacyMutableAttrStr;
-    
-    [self showView];
-}
-
-//无网络
--(void)noNetWorkProtocol
-{
-    NSLog(@"无网络协议");
-    /*创建灰色背景*/
-    UIView *bgView = [[UIView alloc] initWithFrame:self.frame];
-    bgView.alpha = 0.8;
-    bgView.backgroundColor = [UIColor blackColor];
-    [self addSubview:bgView];
-
-    self.contentView = [ZKControl createViewWithFrame:CGRectMake(WIDTH*0.1, HEIGHT, WIDTH*0.8, 320) color:[UIColor whiteColor]];
-    self.contentView.layer.cornerRadius = 10;
-    [self addSubview:self.contentView];
-    
-    CGFloat B_H = 45;
-    //@"使用许可协议和隐私政策"
-    UILabel *titleLabel = [ZKControl createLabelWithFrame:CGRectMake(0, 15, self.contentView.width, 20) font:18 text:@"使用许可协议和隐私政策" TextAlignment:NSTextAlignmentCenter TextColor:UIColorFromRGB(0x171826) bgColor:nil];
-    [self.contentView addSubview:titleLabel];
-        
-    
-    
-    
-    UIButton *button = [ZKControl createButtonWithFrame:CGRectMake(0, self.contentView.height-B_H, self.contentView.width, B_H) title:@"同意" titleColor:UIColorFromRGB(0x2ABED1) titleFont:15 imageName:nil bgImageName:nil target:self method:@selector(doneBtnClick:)];
-    UIView *lineView = [ZKControl createViewWithFrame:CGRectMake(0, self.contentView.height-B_H-1, self.contentView.width, 1) color:UIColorFromRGB(0xEEEEEE)];
-    [self.contentView addSubview:button];
-    [self.contentView addSubview:lineView];
-    
-    //同意文本
-    UITextView *protocolTV = [[UITextView alloc] init];
-    protocolTV.frame = CGRectMake(15, titleLabel.bottom+10, self.contentView.width-30, lineView.top-titleLabel.bottom-10);
-    protocolTV.editable = NO;
-    protocolTV.delegate = self;
-    protocolTV.textContainer.lineFragmentPadding = 0.0;
-    protocolTV.linkTextAttributes = @{NSForegroundColorAttributeName:UIColorFromRGB(0x2ABED1)};
-    [self.contentView addSubview:protocolTV];
-    NSString *appName = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"];
-    NSString *rangeA = [NSString stringWithFormat:@"《%@隐私政策》",appName];
-    NSString *rangeB = [NSString stringWithFormat:@"《%@用户使用许可协议》",appName];
-    NSString *protocolStr = @"欢迎使用剑鱼标讯!\n 我们依据最新法规及监管政策要求,更新了《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,在您使用剑鱼标讯前,请仔细阅读并充分了解。\n如你同意《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,请点击“同意”并开始使用我们的产品和服务,我们会全力保护你的个人信息安全。";
-    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
-    paragraphStyle.lineSpacing = 4;// 字体的行间距
-    NSMutableAttributedString *privacyMutableAttrStr = [[NSMutableAttributedString alloc] initWithString:protocolStr attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0],NSForegroundColorAttributeName:UIColorFromRGB(0x5F5E64),NSParagraphStyleAttributeName:paragraphStyle}];
-    NSArray *arrA = [self rangeOfSubString:rangeA inString:protocolStr];
-    NSArray *arrB = [self rangeOfSubString:rangeB inString:protocolStr];
-    for (NSValue *value in arrA) {
-        [privacyMutableAttrStr addAttribute:NSLinkAttributeName value:@"privacyA://" range:[value rangeValue]];
-    }
-    for (NSValue *value in arrB) {
-        [privacyMutableAttrStr addAttribute:NSLinkAttributeName value:@"privacyB://" range:[value rangeValue]];
-    }
-    protocolTV.attributedText = privacyMutableAttrStr;
-    
-    [self showView];
-}
-
-
-
-
-
--(NSArray*)rangeOfSubString:(NSString*)subStr inString:(NSString*)string {
-    NSMutableArray *rangeArray = [NSMutableArray array];
-    NSString*string1 = [string stringByAppendingString:subStr];
-    NSString *temp;
-    for(int i =0; i < string.length; i ++) {
-        temp = [string1 substringWithRange:NSMakeRange(i, subStr.length)];
-        if ([temp isEqualToString:subStr]) {
-            NSRange range = {i,subStr.length};
-            [rangeArray addObject: [NSValue valueWithRange:range]];
-        }
-    }
-    return rangeArray;
-
-}
-- (UIViewController *)viewController {
-    for (UIView* next = [self superview]; next; next = next.superview) {
-        UIResponder *nextResponder = [next nextResponder];
-        if ([nextResponder isKindOfClass:[UIViewController class]]) {
-            return (UIViewController *)nextResponder;
-        }
-    }
-    return nil;
-}
-
-#pragma mark - UITextViewDelegate
--(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
-    if ([URL.scheme isEqualToString:@"privacyA"]) {
-        NSLog(@"隐私政策---A---无网络:");
-        ///jyapp/free/staticPage/privacy_rules.html
-        ZKPrivacyView *vc = [[ZKPrivacyView alloc]initWithFrame:self.window.frame withTitle:@"剑鱼标讯隐私政策" withUrl:privacyA];
-        [vc showView];
-      
-        //弹出页面较为合适
-        return NO;
-    }
-    if ([URL.scheme isEqualToString:@"privacyB"]) {
-            NSLog(@"许可协议---B---无网络:");
-        ///jyapp/free/staticPage/permission_rules.html
-        
-        ZKPrivacyView *vc = [[ZKPrivacyView alloc]initWithFrame:self.window.frame withTitle:@"剑鱼标讯用户使用许可协议" withUrl:privacyB];
-        [vc showView];
-        return NO;
-    }
-    
-    
-    for (int i=0; i<self.nameArr.count; i++) {
-        NSString *privacyName = [NSString stringWithFormat:@"privacy%d",i];
-        
-        NSLog(@"111-%@",URL.scheme);
-        NSLog(@"privacyName-%@",privacyName);
-        
-        if ([URL.scheme isEqualToString:privacyName]) {
-            NSLog(@"许可协议---有网络:%@",self.hrefArr[i]);
-            
-            ZKPrivacyView *vc = [[ZKPrivacyView alloc]initWithFrame:self.window.frame withTitle:self.nameArr[i] withUrl:self.hrefArr[i]];
-            [vc showView];
-            
-            return NO;
-        }
-    }
-    
-    
-    
-    
-    return YES;
-}
-
-
-
-
-
--(void)doneBtnClick:(UIButton *)button
-{
-    [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"FirstPrivacy"];
-    [self dismissContactView];
-}
-
-- (void)dismissContactView:(UITapGestureRecognizer *)tapGesture
-{
-    [self dismissContactView];
-}
--(void)dismissContactView
-{
-    __weak typeof(self)weakSelf = self;
-    [UIView animateWithDuration:0.5 animations:^{
-        weakSelf.alpha = 0;
-        [self.contentView setY:self.height];
-    } completion:^(BOOL finished) {
-        [weakSelf removeFromSuperview];
-    }];
-}
-
--(void)animationPop
-{
-    [UIView animateWithDuration:0.5 animations:^{
-        [self.contentView setY:(HEIGHT-250)*0.4];
-    } completion:^(BOOL finished) {
-        NSLog(@"完成")
-    }];
-}
-// 这里加载在了window上
--(void)showView
-{
-    UIWindow *window =[UIApplication sharedApplication].keyWindow;
-    [window addSubview:self];
-    [self animationPop];
-}
-
-
-
-
-
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 57
ios/JianYuIOS/JianYuIOS/guide/ZKMethod.h

@@ -1,57 +0,0 @@
-//
-//  ZKMethod.h
-//  amoy
-//
-//  Created by apple on 2017/8/16.
-//  Copyright © 2017年 zhengkun. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-
-typedef NS_ENUM(NSInteger, DirType){
-    Horizontal  = 0,
-    Vertical,
-};
-
-typedef NS_ENUM(NSInteger, BoundsType){
-    Left  = 0,
-    Right,
-    Center,
-};
-
-
-@interface ZKMethod : NSObject
-
-
-//计算文本长度-宽度
-+(CGFloat)dealTextLengh:(NSString *)string font:(float)font;
-//分段颜色
-+(NSMutableAttributedString *)addAttribute:(NSString *)attributeName value:(UIColor *)color rangeLocation:(NSInteger)location length:(NSInteger)length;
-
-
-
-//分段颜色
-+(NSMutableAttributedString *)addAttribute:(NSString *)attributeName value:(UIColor *)color rangeLocation:(NSInteger)location length:(NSInteger)length withFont:(float)font withLine:(NSInteger)start andEnd:(NSInteger)endLength;
-
-//改变label行间距
-+(NSAttributedString *)getAttributedStringWithString:(NSString *)string lineSpace:(CGFloat)lineSpace with:(BoundsType)type;
-
-+(BOOL)judgmentNetwork;
-
-
-+(CGSize)getSize:(UILabel *)desLabel;
-//渐变色
-+(CAGradientLayer *)gradient:(DirType)dirType withFrame:(CGRect)frame andArray:(NSArray *)colorArray;
-//处理cgrect frame
-+(CGFloat)dealFrameW:(NSString *)string;
-//添加单点手势
-+(UITapGestureRecognizer *)addGestureSingleWithtarget:(id)target method:(SEL)select;
-
-
-+(NSInteger)getCurrentYMD:(NSInteger)index;
-
-+(UIViewController *)getCurrentVC;//获取当前控制器
-
-
-@end

+ 0 - 182
ios/JianYuIOS/JianYuIOS/guide/ZKMethod.m

@@ -1,182 +0,0 @@
-//
-//  ZKMethod.m
-//  amoy
-//
-//  Created by apple on 2017/8/16.
-//  Copyright © 2017年 zhengkun. All rights reserved.
-//
-
-#import "ZKMethod.h"
-
-@implementation ZKMethod
-
-
-+(CGFloat)dealTextLengh:(NSString *)string font:(float)font
-{
-    CGSize contentSize = [string sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]}];
-    CGFloat contentW = contentSize.width;
-    return contentW;
-}
-
-+(NSMutableAttributedString *)addAttribute:(NSString *)attributeName value:(UIColor *)color rangeLocation:(NSInteger)location length:(NSInteger)length
-{
-    NSMutableAttributedString *hintString=[[NSMutableAttributedString alloc]initWithString:attributeName];
-//    NSRange range=[[hintString string]rangeOfString:@""];
-    [hintString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(location, length)];
-    return hintString;
-}
-
-
-
-
-
-+(NSMutableAttributedString *)addAttribute:(NSString *)attributeName value:(UIColor *)color rangeLocation:(NSInteger)location length:(NSInteger)length withFont:(float)font withLine:(NSInteger)start andEnd:(NSInteger)endLength
-{
-    NSMutableAttributedString *hintString=[[NSMutableAttributedString alloc]initWithString:attributeName];
-    //    NSRange range=[[hintString string]rangeOfString:@""];
-    //颜色
-    [hintString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(location, length)];
-    //尺寸
-    [hintString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:font] range:NSMakeRange(location, length)]; // 0为起始位置 length是从起始位置开始 设置指定字体尺寸的长度
-    //横线
-    [hintString addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle) range:NSMakeRange(start, endLength)];
-    return hintString;
-}
-
-+(NSAttributedString *)getAttributedStringWithString:(NSString *)string lineSpace:(CGFloat)lineSpace with:(BoundsType)type {
-    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
-    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
-    paragraphStyle.lineSpacing = lineSpace; // 调整行间距
-    if(type==Left) {
-        [paragraphStyle setAlignment:NSTextAlignmentLeft];
-    }else if (type==Right) {
-        [paragraphStyle setAlignment:NSTextAlignmentRight];
-    }else if (type==Center) {
-        [paragraphStyle setAlignment:NSTextAlignmentCenter];
-    }else {
-        
-    }
-    NSRange range = NSMakeRange(0, [string length]);
-    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];
-    return attributedString;
-}
-
-
-+(BOOL)judgmentNetwork
-{
-    BOOL reachable;
-    reachable = [[Reachability reachabilityForInternetConnection] isReachable];
-    return reachable;
-}
-
-
-
-+ (UIViewController *)getCurrentVC
-{
-    UIViewController *result = nil;
-    
-    UIWindow * window = [[UIApplication sharedApplication] keyWindow];
-    if (window.windowLevel != UIWindowLevelNormal)
-    {
-        NSArray *windows = [[UIApplication sharedApplication] windows];
-        for(UIWindow * tmpWin in windows)
-        {
-            if (tmpWin.windowLevel == UIWindowLevelNormal)
-            {
-                window = tmpWin;
-                break;
-            }
-        }
-    }
-    
-    UIView *frontView = [[window subviews] objectAtIndex:0];
-    id nextResponder = [frontView nextResponder];
-    
-    if ([nextResponder isKindOfClass:[UIViewController class]])
-        result = nextResponder;
-    else
-        result = window.rootViewController;
-    
-    return result;
-}
-
-
-+(CGSize)getSize:(UILabel *)desLabel
-{
-    //可变的属性文本
-    NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc]initWithString:desLabel.text];
-    //设置段落样式 使用NSMutableParagraphStyle类
-    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
-    paragraphStyle.alignment = NSTextAlignmentLeft;//文本对齐方式
-    paragraphStyle.maximumLineHeight = 60;  //最大的行高
-    paragraphStyle.lineSpacing = 5;  //行自定义行高度
-    //  给可变的属性字符串 添加段落格式
-    [attributedText addAttribute: NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [desLabel.text length])];
-    //将带有段落格式的可变的属性字符串给label.attributedText
-    desLabel.lineBreakMode = NSLineBreakByTruncatingTail;//label的换行模式
-    desLabel.numberOfLines = 0;// 设置行数,0表示没有限制
-    desLabel.attributedText=attributedText;
-    CGSize maxSzie = CGSizeMake(desLabel.width, 1000);//设置label的最大SIZE
-    CGSize labelSize = [desLabel sizeThatFits:maxSzie];//最终自适应得到的label的尺寸。
-    return labelSize;
-}
-
-
-+(CAGradientLayer *)gradient:(DirType)dirType withFrame:(CGRect)frame andArray:(NSArray *)colorArray;
-{
-    CAGradientLayer *gradient = [CAGradientLayer layer];
-    gradient.frame = frame;
-    gradient.colors = colorArray;
-    if(dirType==Horizontal) {
-        //水平
-        gradient.startPoint = CGPointMake(0, 0);
-        gradient.endPoint = CGPointMake(1, 0);
-    }else {
-        gradient.startPoint = CGPointMake(0, 0);
-        gradient.endPoint = CGPointMake(0, 1);
-    }
-    return gradient;
-}
-
-
-+(CGFloat)dealFrameW:(NSString *)string
-{
-    CGSize contentSize = [string sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20]}];
-    CGFloat contentW = contentSize.width;     // 内容的宽度
-    contentW = (contentW>=WIDTH-64-65)? WIDTH-64-65:contentW;
-    return contentW;
-}
-
-
-
-//添加手势
-+(UITapGestureRecognizer *)addGestureSingleWithtarget:(id)target method:(SEL)select
-{
-    UITapGestureRecognizer *headerSingle = [[UITapGestureRecognizer alloc] initWithTarget:target action:select];
-    headerSingle.numberOfTapsRequired = 1; // 单击-手势
-    return headerSingle;
-}
-
-
-+(NSInteger)getCurrentYMD:(NSInteger)index
-{
-    NSDate  *currentDate = [NSDate date];
-    NSCalendar *calendar = [NSCalendar currentCalendar];
-    NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate];
-    NSInteger year=[components year];
-    NSInteger month=[components month];
-    NSInteger day=[components day];
-    
-    if(index==1) {
-        return year;
-    }else if (index==2) {
-        return month;
-    }else if (index==3) {
-        return day;
-    }else {
-        return 0;
-    }
-}
-
-
-@end

+ 0 - 22
ios/JianYuIOS/JianYuIOS/guide/ZKPrivacyView.h

@@ -1,22 +0,0 @@
-//
-//  ZKPrivacyView.h
-//  JianYuIOS
-//
-//  Created by apple on 2020/4/13.
-//  Copyright © 2020 lixianglan. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ZKPrivacyView : UIView
-
-
-- (instancetype)initWithFrame:(CGRect)frame withTitle:(NSString *)title withUrl:(NSString *)url;
-
--(void)showView;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 131
ios/JianYuIOS/JianYuIOS/guide/ZKPrivacyView.m

@@ -1,131 +0,0 @@
-//
-//  ZKPrivacyView.m
-//  JianYuIOS
-//
-//  Created by apple on 2020/4/13.
-//  Copyright © 2020 lixianglan. All rights reserved.
-//
-
-#import "ZKPrivacyView.h"
-
-
-@interface ZKPrivacyView()<UIWebViewDelegate>
-
-@property (nonatomic,strong)UIWebView *webView;
-@property (nonatomic, strong) UIView  *contentView;//内容
-@property (nonatomic,copy)NSString *title_str;
-@property (nonatomic,copy)NSString *web_url;
-
-@end
-
-@implementation ZKPrivacyView
-- (instancetype)initWithFrame:(CGRect)frame withTitle:(NSString *)title withUrl:(NSString *)url {
-     if ([super initWithFrame:frame]) {
-         self.web_url = url;
-         self.title_str = title;
-         [self makeUI];
-     }
-    return self;
-}
-
--(void)makeUI{
-    self.backgroundColor = [UIColor whiteColor];
-    self.contentView = [ZKControl createViewWithFrame:CGRectMake(0, HEIGHT, WIDTH, HEIGHT) color:[UIColor whiteColor]];
-    [self addSubview:self.contentView];
-    
-    UIView *titleView = [ZKControl createViewWithFrame:CGRectMake(0, 0, WIDTH, NAVIGATION_BAR_HEIGHT) color:[UIColor whiteColor]];
-    [self.contentView addSubview:titleView];
-    
-    //处理一下title
-    self.title_str = [self.title_str stringByReplacingOccurrencesOfString:@"《" withString:@""];
-    self.title_str = [self.title_str stringByReplacingOccurrencesOfString:@"》" withString:@""];
-    UILabel *titleLabel = [ZKControl createLabelWithFrame:CGRectMake(0, STATUS_BAR_HEIGHT, WIDTH, 44) font:17 text:self.title_str TextAlignment:NSTextAlignmentCenter TextColor:UIColorFromRGB(0x333333) bgColor:nil];
-    [titleView addSubview:titleLabel];
-    
-    UIButton *button = [ZKControl createButtonWithFrame:CGRectMake(15, titleView.height-35, 30, 30) title:@"" imageName:@"arrowLeft" bgImageName:@"" target:self method:@selector(popVC)];
-    [titleView addSubview:button];
-    
-    
-    UIView *lineView = [ZKControl createViewWithFrame:CGRectMake(0, titleView.height-0.5, WIDTH, 0.5) color:[UIColor groupTableViewBackgroundColor]];
-    [titleView addSubview:lineView];
-    
-    NSString *url = @"";
-    url = [kHost stringByAppendingString:self.web_url];
-    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, NAVIGATION_BAR_HEIGHT, self.contentView.width, self.contentView.height-NAVIGATION_BAR_HEIGHT)];
-    NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:url]];
-    [self.contentView addSubview: self.webView];
-    self.webView.delegate = self;
-    [self.webView loadRequest:request];
-    
-//    NSURLCache * cache = [NSURLCache sharedURLCache];
-//    [cache removeAllCachedResponses];
-//    [cache setDiskCapacity:0];
-//    [cache setMemoryCapacity:0];
-}
-
-//开始加载的时候执行该方法。
-- (void)webViewDidStartLoad:(UIWebView *)webView
-{
-    [[LXViewControllerManager shareViewControllerManager]showHudText:nil];
-}
-
-//加载完成的时候执行该方法。
-- (void)webViewDidFinishLoad:(UIWebView *)webView
-{
-    [[LXViewControllerManager shareViewControllerManager] hideHud];
-}
-//加载出错的时候执行该方法。
-- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
-{
-    [[LXViewControllerManager shareViewControllerManager] hideHud];
-}
-
-
--(void)dealloc
-{
-    self.webView.delegate = nil;
-}
-
-
--(void)dismissContactView
-{
-    __weak typeof(self)weakSelf = self;
-    [UIView animateWithDuration:0.5 animations:^{
-        [self.contentView setY:self.height];
-    } completion:^(BOOL finished) {
-        [weakSelf removeFromSuperview];
-    }];
-}
-
--(void)animationPop
-{
-    [UIView animateWithDuration:0.5 animations:^{
-        [self.contentView setY:0];
-    } completion:^(BOOL finished) {
-        NSLog(@"完成")
-    }];
-}
-// 这里加载在了window上
--(void)showView
-{
-    UIWindow *window =[UIApplication sharedApplication].keyWindow;
-    [window addSubview:self];
-    [self animationPop];
-}
-
-
--(void)popVC
-{
-    [self dismissContactView];
-}
-
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 48 - 0
ios/JianYuIOS/JianYuIOS/tool/ZKClipboardView.h

@@ -0,0 +1,48 @@
+//
+//  ZKClipboardView.h
+//  JianYuIOS
+//
+//  Created by apple on 2020/8/5.
+//  Copyright © 2020 lixianglan. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+@protocol ZKClipboardViewDelegate <NSObject>
+@optional//可选
+
+-(void)clipboardClick:(NSString *)url;
+
+@end
+
+@interface ZKClipboardView : UIView
+
+
+@property (nonatomic,assign) id<ZKClipboardViewDelegate>delegate;
+
+-(instancetype)initWithFrame:(CGRect)frame;
+
+-(void)show;
+-(void)dismiss;
+
+
+
+@property (nonatomic,copy)NSString *title;
+
+@property (nonatomic,copy)NSString *subTitle;
+
+@property (nonatomic,copy)NSString *imgUrl;
+
+@property (nonatomic,copy)NSString *appUrl;
+
+@property (nonatomic,copy)NSString *butTxt;
+
+@property (nonatomic,copy)NSString *bottomTxt;
+
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 133 - 0
ios/JianYuIOS/JianYuIOS/tool/ZKClipboardView.m

@@ -0,0 +1,133 @@
+//
+//  ZKClipboardView.m
+//  JianYuIOS
+//
+//  Created by apple on 2020/8/5.
+//  Copyright © 2020 lixianglan. All rights reserved.
+//
+
+#import "ZKClipboardView.h"
+#import "ZKModal.h"
+
+
+@interface ZKClipboardView()
+
+@property (nonatomic,strong)UILabel *titleLabel;
+@property (nonatomic,strong)UILabel *subtitleLabel;
+@property (nonatomic,strong)UILabel *bottomLabel;
+@property (nonatomic,strong)UIImageView *iconImageV;
+@property (nonatomic,strong)UIButton *doneBtn;
+
+@end
+
+@implementation ZKClipboardView
+
+-(instancetype)initWithFrame:(CGRect)frame
+{
+    if (self = [super initWithFrame:frame]) {
+        
+        self.backgroundColor = [UIColor whiteColor];
+        self.layer.masksToBounds = YES;
+        self.layer.cornerRadius = 10;
+        
+        
+        UIImageView *imageV = [ZKControl createImageViewFrame:CGRectMake(20, 20, 50, 50) imageName:@""];
+        [self addSubview:imageV];
+        self.iconImageV = imageV;
+        
+        UILabel *titleLabel = [ZKControl createLabelWithFrame:CGRectMake(imageV.right+10, 25, self.width-imageV.right-10, 18) font:15 text:@"" TextAlignment:NSTextAlignmentLeft TextColor:UIColorFromRGB(0x000000) bgColor:nil];
+        [self addSubview:titleLabel];
+        self.titleLabel = titleLabel;
+        
+        UILabel *subtitleLabel = [ZKControl createLabelWithFrame:CGRectMake(imageV.right+10, titleLabel.bottom+2, titleLabel.width, 25) font:13 text:@"" TextAlignment:NSTextAlignmentLeft TextColor:UIColorFromRGB(0x000000) bgColor:nil];
+        subtitleLabel.alpha = 0.5;
+        [self addSubview:subtitleLabel];
+        self.subtitleLabel = subtitleLabel;
+        
+        UIButton *button = [ZKControl createButtonWithFrame:CGRectMake(20, imageV.bottom+25, self.width-40, 40) title:@"" titleColor:[UIColor whiteColor] titleFont:15 imageName:nil bgImageName:nil target:self method:@selector(doneClick)];
+        button.layer.cornerRadius = 5;
+        button.layer.masksToBounds = YES;
+        button.backgroundColor = UIColorRGBA(92, 188, 206, 1);
+        [self addSubview:button];
+        self.doneBtn = button;
+        
+        UILabel *bottomLabel = [ZKControl createLabelWithFrame:CGRectMake(0, button.bottom, self.width, 40) font:13 text:@"" TextAlignment:NSTextAlignmentCenter TextColor:UIColorFromRGB(0x000000) bgColor:nil];
+        bottomLabel.alpha = 0.5;
+        [self addSubview:bottomLabel];
+        self.bottomLabel = bottomLabel;
+//
+
+    }
+    return self;
+}
+
+
+/*
+ @property (nonatomic,copy)NSString *title;
+
+ @property (nonatomic,copy)NSString *subTitle;
+
+ @property (nonatomic,copy)NSString *imgUrl;
+
+ @property (nonatomic,copy)NSString *appUrl;
+
+ @property (nonatomic,copy)NSString *butTxt;
+
+ @property (nonatomic,copy)NSString *bottomTxt;
+ */
+-(void)setTitle:(NSString *)title
+{
+    _title = title;
+    self.titleLabel.text = _title;
+}
+-(void)setSubTitle:(NSString *)subTitle
+{
+     _subTitle = subTitle;
+    self.subtitleLabel.text = _subTitle;
+}
+- (void)setImgUrl:(NSString *)imgUrl {
+    _imgUrl = imgUrl;
+    //加载网络图片-测试本地
+    self.iconImageV.image = [UIImage imageNamed:@"logo"];
+    
+}
+- (void)setAppUrl:(NSString *)appUrl {
+    _appUrl = appUrl;
+}
+- (void)setButTxt:(NSString *)butTxt {
+    _butTxt = butTxt;
+    [self.doneBtn setTitle:_butTxt forState:UIControlStateNormal];
+}
+- (void)setBottomTxt:(NSString *)bottomTxt {
+    _bottomTxt = bottomTxt;
+    self.bottomLabel.text = _bottomTxt;
+}
+
+
+-(void)doneClick
+{
+    //代理
+    [[ZKModal sharedInstance] hide];
+    [self.delegate clipboardClick:self.appUrl];
+}
+
+-(void)show
+{
+    [[ZKModal sharedInstance] showWithContentView:self andAnimated:YES];
+}
+-(void)dismiss
+{
+    [[ZKModal sharedInstance] hide];
+}
+
+
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 49 - 0
ios/JianYuIOS/JianYuIOS/tool/ZKModal.h

@@ -0,0 +1,49 @@
+//
+//  ZKModal.h
+//  butlerUsedCar
+//
+//  Created by apple on 2017/10/27.
+//  Copyright © 2017年 zhengkun. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSUInteger, KGModalBackgroundDisplayStyle){
+    KGModalBackgroundDisplayStyleGradient,
+    KGModalBackgroundDisplayStyleSolid
+};
+
+@interface ZKModal : NSObject
+
+// Determines if the modal should dismiss if the user taps outside of the modal view
+// Defaults to YES
+@property (nonatomic) BOOL tapOutsideToDismiss;
+
+// Determins if the close button or tapping outside the modal should animate the dismissal
+// Defaults to YES
+@property (nonatomic) BOOL animateWhenDismissed;
+
+// Determins if the close button is shown
+// Defaults to YES
+@property (nonatomic) BOOL showCloseButton;
+
+// The background display style, can be a transparent radial gradient or a transparent black
+// Defaults to gradient, this looks better but takes a bit more time to display on the retina iPad
+@property (nonatomic) enum KGModalBackgroundDisplayStyle backgroundDisplayStyle;
+
+// The shared instance of the modal
++ (id)sharedInstance;
+
+// Set the content view to display in the modal and display with animations
+- (void)showWithContentView:(UIView *)contentView;
+
+// Set the content view to display in the modal and whether the modal should animate in
+- (void)showWithContentView:(UIView *)contentView andAnimated:(BOOL)animated;
+
+// Hide the modal with animations
+- (void)hide;
+
+// Hide the modal and whether the modal should animate away
+- (void)hideAnimated:(BOOL)animated;
+
+@end

+ 339 - 0
ios/JianYuIOS/JianYuIOS/tool/ZKModal.m

@@ -0,0 +1,339 @@
+//
+//  ZKModal.m
+//  butlerUsedCar
+//
+//  Created by apple on 2017/10/27.
+//  Copyright © 2017年 zhengkun. All rights reserved.
+//
+
+#import "ZKModal.h"
+#import <QuartzCore/QuartzCore.h>
+
+CGFloat const kFadeInAnimationDuration = 0.3;
+CGFloat const kTransformPart1AnimationDuration = 0.2;
+CGFloat const kTransformPart2AnimationDuration = 0.1;
+NSString *const KGModalGradientViewTapped = @"KGModalGradientViewTapped";
+
+@interface KGModalGradientView : UIView
+@end
+
+@interface KGModalContainerView : UIView
+@end
+
+@interface KGModalCloseButton : UIButton
+@end
+
+@interface KGModalViewController : UIViewController
+@property (weak, nonatomic) KGModalGradientView *styleView;
+@end
+
+@interface ZKModal()
+@property (strong, nonatomic) UIWindow *window;
+@property (weak, nonatomic) KGModalViewController *viewController;
+@property (weak, nonatomic) KGModalContainerView *containerView;
+@property (weak, nonatomic) KGModalCloseButton *closeButton;
+@property (weak, nonatomic) UIView *contentView;
+@end
+
+@implementation ZKModal
+
++ (id)sharedInstance{
+    static id sharedInstance;
+    static dispatch_once_t once;
+    dispatch_once(&once, ^{
+        sharedInstance = [[[self class] alloc] init];
+    });
+    return sharedInstance;
+}
+
+- (id)init{
+    if(!(self = [super init])){
+        return nil;
+    }
+    
+    self.tapOutsideToDismiss = YES;
+    self.animateWhenDismissed = YES;
+    self.showCloseButton = YES;
+    
+    return self;
+}
+
+- (void)setShowCloseButton:(BOOL)showCloseButton{
+    if(_showCloseButton != showCloseButton){
+        _showCloseButton = showCloseButton;
+        [self.closeButton setHidden:!self.showCloseButton];
+    }
+}
+
+- (void)showWithContentView:(UIView *)contentView{
+    [self showWithContentView:contentView andAnimated:YES];
+}
+
+- (void)showWithContentView:(UIView *)contentView andAnimated:(BOOL)animated{
+    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+    self.window.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    self.window.opaque = NO;
+    
+    KGModalViewController *viewController = self.viewController = [[KGModalViewController alloc] init];
+    self.window.rootViewController = viewController;
+    
+    CGFloat padding = 0;
+    CGRect containerViewRect = CGRectInset(contentView.bounds, -padding, -padding);
+    containerViewRect.origin.x = containerViewRect.origin.y = 0;
+    containerViewRect.origin.x = round(CGRectGetMidX(self.window.bounds)-CGRectGetMidX(containerViewRect));
+    containerViewRect.origin.y = round(CGRectGetMidY(self.window.bounds)-CGRectGetMidY(containerViewRect));
+    KGModalContainerView *containerView = self.containerView = [[KGModalContainerView alloc] initWithFrame:containerViewRect];
+    containerView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|
+    UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
+    containerView.layer.rasterizationScale = [[UIScreen mainScreen] scale];
+    contentView.frame = (CGRect){padding, padding, contentView.bounds.size};
+    [containerView addSubview:contentView];
+    [viewController.view addSubview:containerView];
+    
+//    KGModalCloseButton *closeButton = self.closeButton = [[KGModalCloseButton alloc] init];
+//    [closeButton addTarget:self action:@selector(closeAction:) forControlEvents:UIControlEventTouchUpInside];
+//    [closeButton setHidden:!self.showCloseButton];
+//    [containerView addSubview:closeButton];
+    
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tapCloseAction:)
+                                                 name:KGModalGradientViewTapped object:nil];
+    
+    // The window has to be un-hidden on the main thread
+    // This will cause the window to display
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [self.window setHidden:NO];
+        
+        if(animated){
+            viewController.styleView.alpha = 0;
+            [UIView animateWithDuration:kFadeInAnimationDuration animations:^{
+                viewController.styleView.alpha = 1;
+            }];
+            
+            containerView.alpha = 0;
+            containerView.layer.shouldRasterize = YES;
+            containerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.4, 0.4);
+            [UIView animateWithDuration:kTransformPart1AnimationDuration animations:^{
+                containerView.alpha = 1;
+                containerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
+            } completion:^(BOOL finished) {
+                [UIView animateWithDuration:kTransformPart2AnimationDuration delay:0 options:UIViewAnimationCurveEaseOut animations:^{
+                    containerView.alpha = 1;
+                    containerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1, 1);
+                } completion:^(BOOL finished2) {
+                    containerView.layer.shouldRasterize = NO;
+                }];
+            }];
+        }
+    });
+}
+
+- (void)closeAction:(id)sender{
+    [self hideAnimated:self.animateWhenDismissed];
+}
+
+- (void)tapCloseAction:(id)sender{
+    if(self.tapOutsideToDismiss){
+        [self hideAnimated:self.animateWhenDismissed];
+    }
+}
+
+- (void)hide{
+    [self hideAnimated:YES];
+}
+
+- (void)hideAnimated:(BOOL)animated{
+    if(!animated){
+        [self cleanup];
+        return;
+    }
+    
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [UIView animateWithDuration:kFadeInAnimationDuration animations:^{
+            self.viewController.styleView.alpha = 0;
+        }];
+        
+        self.containerView.layer.shouldRasterize = YES;
+        [UIView animateWithDuration:kTransformPart2AnimationDuration animations:^{
+            self.containerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
+        } completion:^(BOOL finished){
+            [UIView animateWithDuration:kTransformPart1AnimationDuration delay:0 options:UIViewAnimationCurveEaseOut animations:^{
+                self.containerView.alpha = 0;
+                self.containerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.4, 0.4);
+            } completion:^(BOOL finished2){
+                [self cleanup];
+            }];
+        }];
+    });
+}
+
+- (void)cleanup{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    [self.containerView removeFromSuperview];
+    [self.window removeFromSuperview];
+    self.window = nil;
+}
+
+@end
+
+@implementation KGModalViewController
+
+- (void)loadView{
+    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+}
+
+- (void)viewDidLoad{
+    [super viewDidLoad];
+    
+    self.view.backgroundColor = [UIColor clearColor];
+    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    
+    KGModalGradientView *styleView = self.styleView = [[KGModalGradientView alloc] initWithFrame:self.view.bounds];
+    styleView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+    styleView.opaque = NO;
+    [self.view addSubview:styleView];
+}
+
+@end
+
+@implementation KGModalContainerView
+
+- (id)initWithFrame:(CGRect)frame{
+    if(!(self = [super initWithFrame:frame])){
+        return nil;
+    }
+    
+//    CALayer *styleLayer = [[CALayer alloc] init];
+//    styleLayer.cornerRadius = 4;
+//    styleLayer.shadowColor= [[UIColor blackColor] CGColor];
+//    styleLayer.shadowOffset = CGSizeMake(0, 0);
+//    styleLayer.shadowOpacity = 0.5;
+//    styleLayer.borderWidth = 1;
+//    styleLayer.borderColor = [[UIColor whiteColor] CGColor];
+//    styleLayer.backgroundColor = [[UIColor colorWithWhite:0 alpha:0.55] CGColor];
+//    styleLayer.frame = CGRectInset(self.bounds, 12, 12);
+//    [self.layer addSublayer:styleLayer];
+    
+    return self;
+}
+
+@end
+
+@implementation KGModalGradientView
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
+    [[NSNotificationCenter defaultCenter] postNotificationName:KGModalGradientViewTapped object:nil];
+}
+
+- (void)drawRect:(CGRect)rect{
+    CGContextRef context = UIGraphicsGetCurrentContext();
+    if([[ZKModal sharedInstance] backgroundDisplayStyle] == KGModalBackgroundDisplayStyleSolid){
+        [[UIColor colorWithWhite:0 alpha:0.55] set];
+        CGContextFillRect(context, self.bounds);
+    }else{
+        CGContextSaveGState(context);
+        size_t gradLocationsNum = 2;
+        CGFloat gradLocations[2] = {0.0f, 1.0f};
+        CGFloat gradColors[8] = {0, 0, 0, 0.3, 0, 0, 0, 0.8};
+        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+        CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, gradColors, gradLocations, gradLocationsNum);
+        CGColorSpaceRelease(colorSpace), colorSpace = NULL;
+        CGPoint gradCenter= CGPointMake(round(CGRectGetMidX(self.bounds)), round(CGRectGetMidY(self.bounds)));
+        CGFloat gradRadius = MAX(CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds));
+        CGContextDrawRadialGradient(context, gradient, gradCenter, 0, gradCenter, gradRadius, kCGGradientDrawsAfterEndLocation);
+        CGGradientRelease(gradient), gradient = NULL;
+        CGContextRestoreGState(context);
+    }
+}
+
+@end
+
+@implementation KGModalCloseButton
+
+- (id)init{
+    if(!(self = [super initWithFrame:(CGRect){0, 0, 32, 32}])){
+        return nil;
+    }
+    static UIImage *closeButtonImage;
+    static dispatch_once_t once;
+    dispatch_once(&once, ^{
+        closeButtonImage = [self closeButtonImage];
+    });
+    [self setBackgroundImage:closeButtonImage forState:UIControlStateNormal];
+    return self;
+}
+
+- (UIImage *)closeButtonImage{
+    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0);
+    
+    //// General Declarations
+    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+    CGContextRef context = UIGraphicsGetCurrentContext();
+    
+    //// Color Declarations
+    UIColor *topGradient = [UIColor colorWithRed:0.21 green:0.21 blue:0.21 alpha:0.9];
+    UIColor *bottomGradient = [UIColor colorWithRed:0.03 green:0.03 blue:0.03 alpha:0.9];
+    
+    //// Gradient Declarations
+    NSArray *gradientColors = @[(id)topGradient.CGColor,
+                                (id)bottomGradient.CGColor];
+    CGFloat gradientLocations[] = {0, 1};
+    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)gradientColors, gradientLocations);
+    
+    //// Shadow Declarations
+    CGColorRef shadow = [UIColor blackColor].CGColor;
+    CGSize shadowOffset = CGSizeMake(0, 1);
+    CGFloat shadowBlurRadius = 3;
+    CGColorRef shadow2 = [UIColor blackColor].CGColor;
+    CGSize shadow2Offset = CGSizeMake(0, 1);
+    CGFloat shadow2BlurRadius = 0;
+    
+    
+    //// Oval Drawing
+    UIBezierPath *ovalPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(4, 3, 24, 24)];
+    CGContextSaveGState(context);
+    [ovalPath addClip];
+    CGContextDrawLinearGradient(context, gradient, CGPointMake(16, 3), CGPointMake(16, 27), 0);
+    CGContextRestoreGState(context);
+    
+    CGContextSaveGState(context);
+    CGContextSetShadowWithColor(context, shadowOffset, shadowBlurRadius, shadow);
+    [[UIColor whiteColor] setStroke];
+    ovalPath.lineWidth = 2;
+    [ovalPath stroke];
+    CGContextRestoreGState(context);
+    
+    
+    //// Bezier Drawing
+    UIBezierPath *bezierPath = [UIBezierPath bezierPath];
+    [bezierPath moveToPoint:CGPointMake(22.36, 11.46)];
+    [bezierPath addLineToPoint:CGPointMake(18.83, 15)];
+    [bezierPath addLineToPoint:CGPointMake(22.36, 18.54)];
+    [bezierPath addLineToPoint:CGPointMake(19.54, 21.36)];
+    [bezierPath addLineToPoint:CGPointMake(16, 17.83)];
+    [bezierPath addLineToPoint:CGPointMake(12.46, 21.36)];
+    [bezierPath addLineToPoint:CGPointMake(9.64, 18.54)];
+    [bezierPath addLineToPoint:CGPointMake(13.17, 15)];
+    [bezierPath addLineToPoint:CGPointMake(9.64, 11.46)];
+    [bezierPath addLineToPoint:CGPointMake(12.46, 8.64)];
+    [bezierPath addLineToPoint:CGPointMake(16, 12.17)];
+    [bezierPath addLineToPoint:CGPointMake(19.54, 8.64)];
+    [bezierPath addLineToPoint:CGPointMake(22.36, 11.46)];
+    [bezierPath closePath];
+    CGContextSaveGState(context);
+    CGContextSetShadowWithColor(context, shadow2Offset, shadow2BlurRadius, shadow2);
+    [[UIColor whiteColor] setFill];
+    [bezierPath fill];
+    CGContextRestoreGState(context);
+    
+    
+    //// Cleanup
+    CGGradientRelease(gradient);
+    CGColorSpaceRelease(colorSpace);
+    
+    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
+    UIGraphicsEndImageContext();
+    
+    return image;
+}
+
+@end