Browse Source

附件文件预览

zhengkun 3 years ago
parent
commit
ffc583680f
100 changed files with 7636 additions and 4505 deletions
  1. 261 5
      ios/JianYuIOS/JianYuIOS.xcodeproj/project.pbxproj
  2. 13 2
      ios/JianYuIOS/JianYuIOS/AppDelegate.m
  3. 6 8
      ios/JianYuIOS/JianYuIOS/BaseClass1/PrefixHeader.pch
  4. 30 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/JhtDocViewer_Default.plist
  5. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/close@2x.png
  6. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/close@3x.png
  7. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/dumpView.png
  8. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/excel@2x.png
  9. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/excel@3x.png
  10. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/nav-back@2x.png
  11. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/nav-back@3x.png
  12. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/network_lost@2x.png
  13. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/network_lost@3x.png
  14. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/pdf@2x.png
  15. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/pdf@3x.png
  16. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/ppt@2x.png
  17. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/ppt@3x.png
  18. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/txt@2x.png
  19. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/txt@3x.png
  20. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/unknow@2x.png
  21. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/unknow@3x.png
  22. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/word@2x.png
  23. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/word@3x.png
  24. 38 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer_Define.h
  25. 62 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtFileModel/JhtFileModel.h
  26. 17 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtFileModel/JhtFileModel.m
  27. 55 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtLoadDocViewParamModel/JhtLoadDocViewParamModel.h
  28. 17 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtLoadDocViewParamModel/JhtLoadDocViewParamModel.m
  29. 58 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/OtherOpenButtonParamModel/OtherOpenButtonParamModel.h
  30. 17 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/OtherOpenButtonParamModel/OtherOpenButtonParamModel.m
  31. 33 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDefaultManager/JhtDefaultManager.h
  32. 47 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDefaultManager/JhtDefaultManager.m
  33. 58 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDocFileOperations/JhtDocFileOperations.h
  34. 246 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDocFileOperations/JhtDocFileOperations.m
  35. 32 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDownloadRequest/JhtDownloadRequest.h
  36. 99 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDownloadRequest/JhtDownloadRequest.m
  37. 72 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtNetworkCheckTools/JhtNetworkCheckTools.h
  38. 230 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtNetworkCheckTools/JhtNetworkCheckTools.m
  39. 30 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDocWebView/JhtDocWebView.h
  40. 357 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDocWebView/JhtDocWebView.m
  41. 27 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtDownTipsDumpingView.h
  42. 145 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtDownTipsDumpingView.m
  43. 64 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtShowDumpingViewParamModel/JhtShowDumpingViewParamModel.h
  44. 17 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtShowDumpingViewParamModel/JhtShowDumpingViewParamModel.m
  45. 63 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownloadView/JhtDownloadView.h
  46. 228 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownloadView/JhtDownloadView.m
  47. 47 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtLoadDocView/JhtLoadDocView.h
  48. 416 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtLoadDocView/JhtLoadDocView.m
  49. 59 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayPluginSettings.h
  50. 99 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayUnifyPayPlugin.h
  51. 17 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayVersionsInfo.h
  52. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/libUMSPosPayOnly.a
  53. 63 0
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UPPaymentControl/UPPaymentControl.h
  54. BIN
      ios/JianYuIOS/JianYuIOS/Libs(第三方)/UPPaymentControl/libPaymentControlMini.a
  55. 2 1
      ios/JianYuIOS/Podfile
  56. 7 2
      ios/JianYuIOS/Podfile.lock
  57. 7 2
      ios/JianYuIOS/Pods/Manifest.lock
  58. 4493 4479
      ios/JianYuIOS/Pods/Pods.xcodeproj/project.pbxproj
  59. 2 0
      ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler-gRPCPlugin/!ProtoCompiler-gRPCPlugin.debug.xcconfig
  60. 2 0
      ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler-gRPCPlugin/!ProtoCompiler-gRPCPlugin.release.xcconfig
  61. 2 0
      ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler/!ProtoCompiler.debug.xcconfig
  62. 2 0
      ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler/!ProtoCompiler.release.xcconfig
  63. 2 0
      ios/JianYuIOS/Pods/Target Support Files/AFNetworking/AFNetworking.debug.xcconfig
  64. 2 0
      ios/JianYuIOS/Pods/Target Support Files/AFNetworking/AFNetworking.release.xcconfig
  65. 2 0
      ios/JianYuIOS/Pods/Target Support Files/BoringSSL-GRPC/BoringSSL-GRPC.debug.xcconfig
  66. 2 0
      ios/JianYuIOS/Pods/Target Support Files/BoringSSL-GRPC/BoringSSL-GRPC.release.xcconfig
  67. 2 0
      ios/JianYuIOS/Pods/Target Support Files/FMDB/FMDB.debug.xcconfig
  68. 2 0
      ios/JianYuIOS/Pods/Target Support Files/FMDB/FMDB.release.xcconfig
  69. 2 0
      ios/JianYuIOS/Pods/Target Support Files/JCore/JCore.debug.xcconfig
  70. 2 0
      ios/JianYuIOS/Pods/Target Support Files/JCore/JCore.release.xcconfig
  71. 3 0
      ios/JianYuIOS/Pods/Target Support Files/JPush/JPush.debug.xcconfig
  72. 3 0
      ios/JianYuIOS/Pods/Target Support Files/JPush/JPush.release.xcconfig
  73. 2 0
      ios/JianYuIOS/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.debug.xcconfig
  74. 2 0
      ios/JianYuIOS/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.release.xcconfig
  75. 5 0
      ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS-acknowledgements.markdown
  76. 11 0
      ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS-acknowledgements.plist
  77. 5 3
      ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.debug.xcconfig
  78. 5 3
      ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.release.xcconfig
  79. 2 0
      ios/JianYuIOS/Pods/Target Support Files/Protobuf/Protobuf.debug.xcconfig
  80. 2 0
      ios/JianYuIOS/Pods/Target Support Files/Protobuf/Protobuf.release.xcconfig
  81. 2 0
      ios/JianYuIOS/Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig
  82. 2 0
      ios/JianYuIOS/Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig
  83. 2 0
      ios/JianYuIOS/Pods/Target Support Files/UMengUShare/UMengUShare.debug.xcconfig
  84. 2 0
      ios/JianYuIOS/Pods/Target Support Files/UMengUShare/UMengUShare.release.xcconfig
  85. 2 0
      ios/JianYuIOS/Pods/Target Support Files/WBCloudReflectionFaceVerify_framework/WBCloudReflectionFaceVerify_framework.debug.xcconfig
  86. 2 0
      ios/JianYuIOS/Pods/Target Support Files/WBCloudReflectionFaceVerify_framework/WBCloudReflectionFaceVerify_framework.release.xcconfig
  87. 2 0
      ios/JianYuIOS/Pods/Target Support Files/WBOCRService/WBOCRService.debug.xcconfig
  88. 2 0
      ios/JianYuIOS/Pods/Target Support Files/WBOCRService/WBOCRService.release.xcconfig
  89. 2 0
      ios/JianYuIOS/Pods/Target Support Files/abseil/abseil.debug.xcconfig
  90. 2 0
      ios/JianYuIOS/Pods/Target Support Files/abseil/abseil.release.xcconfig
  91. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-Core/gRPC-Core.debug.xcconfig
  92. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-Core/gRPC-Core.release.xcconfig
  93. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-ProtoRPC/gRPC-ProtoRPC.debug.xcconfig
  94. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-ProtoRPC/gRPC-ProtoRPC.release.xcconfig
  95. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-RxLibrary/gRPC-RxLibrary.debug.xcconfig
  96. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC-RxLibrary/gRPC-RxLibrary.release.xcconfig
  97. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC/gRPC.debug.xcconfig
  98. 2 0
      ios/JianYuIOS/Pods/Target Support Files/gRPC/gRPC.release.xcconfig
  99. 2 0
      ios/JianYuIOS/Pods/Target Support Files/iCloudDocumentSync/iCloudDocumentSync.debug.xcconfig
  100. 2 0
      ios/JianYuIOS/Pods/Target Support Files/iCloudDocumentSync/iCloudDocumentSync.release.xcconfig

+ 261 - 5
ios/JianYuIOS/JianYuIOS.xcodeproj/project.pbxproj

@@ -59,6 +59,21 @@
 		761BCA63272A816900259676 /* JYNewMessViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 761BCA62272A816900259676 /* JYNewMessViewController.m */; };
 		761BCA72272AA0CE00259676 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 761BCA6F272AA0CE00259676 /* README.txt */; };
 		761BCA73272AA0CE00259676 /* libWeChatSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 761BCA71272AA0CE00259676 /* libWeChatSDK.a */; };
+		763EF7C7281B752500D1F36B /* libUMSPosPayOnly.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 763EF7C6281B752500D1F36B /* libUMSPosPayOnly.a */; };
+		763EF7CB281B758300D1F36B /* libPaymentControlMini.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 763EF7CA281B758300D1F36B /* libPaymentControlMini.a */; };
+		76ED394028813ACC00B211C9 /* JhtDownloadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED391B28813ACC00B211C9 /* JhtDownloadRequest.m */; };
+		76ED394128813ACC00B211C9 /* JhtDocFileOperations.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED391E28813ACC00B211C9 /* JhtDocFileOperations.m */; };
+		76ED394228813ACC00B211C9 /* JhtNetworkCheckTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED392128813ACC00B211C9 /* JhtNetworkCheckTools.m */; };
+		76ED394328813ACC00B211C9 /* JhtDefaultManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED392328813ACC00B211C9 /* JhtDefaultManager.m */; };
+		76ED394428813ACC00B211C9 /* JhtDownTipsDumpingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED392728813ACC00B211C9 /* JhtDownTipsDumpingView.m */; };
+		76ED394528813ACC00B211C9 /* JhtShowDumpingViewParamModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED392B28813ACC00B211C9 /* JhtShowDumpingViewParamModel.m */; };
+		76ED394628813ACC00B211C9 /* JhtDocWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED392E28813ACC00B211C9 /* JhtDocWebView.m */; };
+		76ED394728813ACC00B211C9 /* JhtDownloadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED393028813ACC00B211C9 /* JhtDownloadView.m */; };
+		76ED394828813ACC00B211C9 /* JhtLoadDocView.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED393428813ACC00B211C9 /* JhtLoadDocView.m */; };
+		76ED394928813ACC00B211C9 /* OtherOpenButtonParamModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED393728813ACC00B211C9 /* OtherOpenButtonParamModel.m */; };
+		76ED394A28813ACC00B211C9 /* JhtLoadDocViewParamModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED393B28813ACC00B211C9 /* JhtLoadDocViewParamModel.m */; };
+		76ED394B28813ACC00B211C9 /* JhtFileModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 76ED393D28813ACC00B211C9 /* JhtFileModel.m */; };
+		76ED394C28813ACC00B211C9 /* JhtDocViewer.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 76ED393F28813ACC00B211C9 /* JhtDocViewer.bundle */; };
 		9ADF6A094C6E01A55F2E47CC /* libPods-JianYuIOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CA962A24EED00910F83394E /* libPods-JianYuIOS.a */; };
 		C519972C2020238D007946E8 /* LXUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = C51997232020238D007946E8 /* LXUserDefaults.m */; };
 		C519972D2020238D007946E8 /* LXMD5.m in Sources */ = {isa = PBXBuildFile; fileRef = C51997242020238D007946E8 /* LXMD5.m */; };
@@ -184,6 +199,38 @@
 		761BCA6F272AA0CE00259676 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
 		761BCA70272AA0CE00259676 /* WechatAuthSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WechatAuthSDK.h; sourceTree = "<group>"; };
 		761BCA71272AA0CE00259676 /* libWeChatSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libWeChatSDK.a; sourceTree = "<group>"; };
+		763EF7C3281B752500D1F36B /* UMSPPPayUnifyPayPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSPPPayUnifyPayPlugin.h; sourceTree = "<group>"; };
+		763EF7C4281B752500D1F36B /* UMSPPPayVersionsInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSPPPayVersionsInfo.h; sourceTree = "<group>"; };
+		763EF7C5281B752500D1F36B /* UMSPPPayPluginSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSPPPayPluginSettings.h; sourceTree = "<group>"; };
+		763EF7C6281B752500D1F36B /* libUMSPosPayOnly.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libUMSPosPayOnly.a; sourceTree = "<group>"; };
+		763EF7C9281B758300D1F36B /* UPPaymentControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPPaymentControl.h; sourceTree = "<group>"; };
+		763EF7CA281B758300D1F36B /* libPaymentControlMini.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libPaymentControlMini.a; sourceTree = "<group>"; };
+		76ED391728813ACC00B211C9 /* JhtDocViewer_Define.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDocViewer_Define.h; sourceTree = "<group>"; };
+		76ED391A28813ACC00B211C9 /* JhtDownloadRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDownloadRequest.h; sourceTree = "<group>"; };
+		76ED391B28813ACC00B211C9 /* JhtDownloadRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDownloadRequest.m; sourceTree = "<group>"; };
+		76ED391D28813ACC00B211C9 /* JhtDocFileOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDocFileOperations.h; sourceTree = "<group>"; };
+		76ED391E28813ACC00B211C9 /* JhtDocFileOperations.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDocFileOperations.m; sourceTree = "<group>"; };
+		76ED392028813ACC00B211C9 /* JhtNetworkCheckTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtNetworkCheckTools.h; sourceTree = "<group>"; };
+		76ED392128813ACC00B211C9 /* JhtNetworkCheckTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtNetworkCheckTools.m; sourceTree = "<group>"; };
+		76ED392328813ACC00B211C9 /* JhtDefaultManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDefaultManager.m; sourceTree = "<group>"; };
+		76ED392428813ACC00B211C9 /* JhtDefaultManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDefaultManager.h; sourceTree = "<group>"; };
+		76ED392728813ACC00B211C9 /* JhtDownTipsDumpingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDownTipsDumpingView.m; sourceTree = "<group>"; };
+		76ED392828813ACC00B211C9 /* JhtDownTipsDumpingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDownTipsDumpingView.h; sourceTree = "<group>"; };
+		76ED392A28813ACC00B211C9 /* JhtShowDumpingViewParamModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtShowDumpingViewParamModel.h; sourceTree = "<group>"; };
+		76ED392B28813ACC00B211C9 /* JhtShowDumpingViewParamModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtShowDumpingViewParamModel.m; sourceTree = "<group>"; };
+		76ED392D28813ACC00B211C9 /* JhtDocWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDocWebView.h; sourceTree = "<group>"; };
+		76ED392E28813ACC00B211C9 /* JhtDocWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDocWebView.m; sourceTree = "<group>"; };
+		76ED393028813ACC00B211C9 /* JhtDownloadView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtDownloadView.m; sourceTree = "<group>"; };
+		76ED393128813ACC00B211C9 /* JhtDownloadView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtDownloadView.h; sourceTree = "<group>"; };
+		76ED393328813ACC00B211C9 /* JhtLoadDocView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtLoadDocView.h; sourceTree = "<group>"; };
+		76ED393428813ACC00B211C9 /* JhtLoadDocView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtLoadDocView.m; sourceTree = "<group>"; };
+		76ED393728813ACC00B211C9 /* OtherOpenButtonParamModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OtherOpenButtonParamModel.m; sourceTree = "<group>"; };
+		76ED393828813ACC00B211C9 /* OtherOpenButtonParamModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OtherOpenButtonParamModel.h; sourceTree = "<group>"; };
+		76ED393A28813ACC00B211C9 /* JhtLoadDocViewParamModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtLoadDocViewParamModel.h; sourceTree = "<group>"; };
+		76ED393B28813ACC00B211C9 /* JhtLoadDocViewParamModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtLoadDocViewParamModel.m; sourceTree = "<group>"; };
+		76ED393D28813ACC00B211C9 /* JhtFileModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JhtFileModel.m; sourceTree = "<group>"; };
+		76ED393E28813ACC00B211C9 /* JhtFileModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JhtFileModel.h; sourceTree = "<group>"; };
+		76ED393F28813ACC00B211C9 /* JhtDocViewer.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = JhtDocViewer.bundle; sourceTree = "<group>"; };
 		775098970477D1E68FB48E59 /* Pods-JianYuIOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JianYuIOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.debug.xcconfig"; sourceTree = "<group>"; };
 		C51997222020238D007946E8 /* LXViewControllerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LXViewControllerManager.h; sourceTree = "<group>"; };
 		C51997232020238D007946E8 /* LXUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LXUserDefaults.m; sourceTree = "<group>"; };
@@ -235,7 +282,9 @@
 				18E05D0422F11D69001E5B44 /* SystemConfiguration.framework in Frameworks */,
 				18E05D0222F11D62001E5B44 /* libc++.tbd in Frameworks */,
 				18E05CFE22F11D4E001E5B44 /* CoreMotion.framework in Frameworks */,
+				763EF7CB281B758300D1F36B /* libPaymentControlMini.a in Frameworks */,
 				C550BF362018591400F0BC2A /* CoreGraphics.framework in Frameworks */,
+				763EF7C7281B752500D1F36B /* libUMSPosPayOnly.a in Frameworks */,
 				761BCA73272AA0CE00259676 /* libWeChatSDK.a in Frameworks */,
 				182493C1255B8A3100BF4AB2 /* libc.tbd in Frameworks */,
 				18E05CFC22F11CDE001E5B44 /* AlipaySDK.framework in Frameworks */,
@@ -348,6 +397,9 @@
 		18E05CEF22F11CDD001E5B44 /* Libs(第三方) */ = {
 			isa = PBXGroup;
 			children = (
+				76ED391628813ACC00B211C9 /* JhtDocViewer_SDK */,
+				763EF7C8281B758300D1F36B /* UPPaymentControl */,
+				763EF7C1281B752500D1F36B /* UMSPosPayOnly */,
 				761BCA6C272AA0CE00259676 /* WeChatSDK1.9.2 */,
 				18E05CF622F11CDD001E5B44 /* AlipaySDK */,
 			);
@@ -384,6 +436,187 @@
 			path = WeChatSDK1.9.2;
 			sourceTree = "<group>";
 		};
+		763EF7C1281B752500D1F36B /* UMSPosPayOnly */ = {
+			isa = PBXGroup;
+			children = (
+				763EF7C2281B752500D1F36B /* include */,
+				763EF7C6281B752500D1F36B /* libUMSPosPayOnly.a */,
+			);
+			path = UMSPosPayOnly;
+			sourceTree = "<group>";
+		};
+		763EF7C2281B752500D1F36B /* include */ = {
+			isa = PBXGroup;
+			children = (
+				763EF7C3281B752500D1F36B /* UMSPPPayUnifyPayPlugin.h */,
+				763EF7C4281B752500D1F36B /* UMSPPPayVersionsInfo.h */,
+				763EF7C5281B752500D1F36B /* UMSPPPayPluginSettings.h */,
+			);
+			path = include;
+			sourceTree = "<group>";
+		};
+		763EF7C8281B758300D1F36B /* UPPaymentControl */ = {
+			isa = PBXGroup;
+			children = (
+				763EF7C9281B758300D1F36B /* UPPaymentControl.h */,
+				763EF7CA281B758300D1F36B /* libPaymentControlMini.a */,
+			);
+			path = UPPaymentControl;
+			sourceTree = "<group>";
+		};
+		76ED391628813ACC00B211C9 /* JhtDocViewer_SDK */ = {
+			isa = PBXGroup;
+			children = (
+				76ED391728813ACC00B211C9 /* JhtDocViewer_Define.h */,
+				76ED391828813ACC00B211C9 /* Tools */,
+				76ED392528813ACC00B211C9 /* View  */,
+				76ED393528813ACC00B211C9 /* Model */,
+				76ED393F28813ACC00B211C9 /* JhtDocViewer.bundle */,
+			);
+			path = JhtDocViewer_SDK;
+			sourceTree = "<group>";
+		};
+		76ED391828813ACC00B211C9 /* Tools */ = {
+			isa = PBXGroup;
+			children = (
+				76ED391928813ACC00B211C9 /* JhtDownloadRequest */,
+				76ED391C28813ACC00B211C9 /* JhtDocFileOperations */,
+				76ED391F28813ACC00B211C9 /* JhtNetworkCheckTools */,
+				76ED392228813ACC00B211C9 /* JhtDefaultManager */,
+			);
+			path = Tools;
+			sourceTree = "<group>";
+		};
+		76ED391928813ACC00B211C9 /* JhtDownloadRequest */ = {
+			isa = PBXGroup;
+			children = (
+				76ED391A28813ACC00B211C9 /* JhtDownloadRequest.h */,
+				76ED391B28813ACC00B211C9 /* JhtDownloadRequest.m */,
+			);
+			path = JhtDownloadRequest;
+			sourceTree = "<group>";
+		};
+		76ED391C28813ACC00B211C9 /* JhtDocFileOperations */ = {
+			isa = PBXGroup;
+			children = (
+				76ED391D28813ACC00B211C9 /* JhtDocFileOperations.h */,
+				76ED391E28813ACC00B211C9 /* JhtDocFileOperations.m */,
+			);
+			path = JhtDocFileOperations;
+			sourceTree = "<group>";
+		};
+		76ED391F28813ACC00B211C9 /* JhtNetworkCheckTools */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392028813ACC00B211C9 /* JhtNetworkCheckTools.h */,
+				76ED392128813ACC00B211C9 /* JhtNetworkCheckTools.m */,
+			);
+			path = JhtNetworkCheckTools;
+			sourceTree = "<group>";
+		};
+		76ED392228813ACC00B211C9 /* JhtDefaultManager */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392328813ACC00B211C9 /* JhtDefaultManager.m */,
+				76ED392428813ACC00B211C9 /* JhtDefaultManager.h */,
+			);
+			path = JhtDefaultManager;
+			sourceTree = "<group>";
+		};
+		76ED392528813ACC00B211C9 /* View  */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392628813ACC00B211C9 /* JhtDownTipsDumpingView */,
+				76ED392C28813ACC00B211C9 /* JhtDocWebView */,
+				76ED392F28813ACC00B211C9 /* JhtDownloadView */,
+				76ED393228813ACC00B211C9 /* JhtLoadDocView */,
+			);
+			path = "View ";
+			sourceTree = "<group>";
+		};
+		76ED392628813ACC00B211C9 /* JhtDownTipsDumpingView */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392728813ACC00B211C9 /* JhtDownTipsDumpingView.m */,
+				76ED392828813ACC00B211C9 /* JhtDownTipsDumpingView.h */,
+				76ED392928813ACC00B211C9 /* JhtShowDumpingViewParamModel */,
+			);
+			path = JhtDownTipsDumpingView;
+			sourceTree = "<group>";
+		};
+		76ED392928813ACC00B211C9 /* JhtShowDumpingViewParamModel */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392A28813ACC00B211C9 /* JhtShowDumpingViewParamModel.h */,
+				76ED392B28813ACC00B211C9 /* JhtShowDumpingViewParamModel.m */,
+			);
+			path = JhtShowDumpingViewParamModel;
+			sourceTree = "<group>";
+		};
+		76ED392C28813ACC00B211C9 /* JhtDocWebView */ = {
+			isa = PBXGroup;
+			children = (
+				76ED392D28813ACC00B211C9 /* JhtDocWebView.h */,
+				76ED392E28813ACC00B211C9 /* JhtDocWebView.m */,
+			);
+			path = JhtDocWebView;
+			sourceTree = "<group>";
+		};
+		76ED392F28813ACC00B211C9 /* JhtDownloadView */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393028813ACC00B211C9 /* JhtDownloadView.m */,
+				76ED393128813ACC00B211C9 /* JhtDownloadView.h */,
+			);
+			path = JhtDownloadView;
+			sourceTree = "<group>";
+		};
+		76ED393228813ACC00B211C9 /* JhtLoadDocView */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393328813ACC00B211C9 /* JhtLoadDocView.h */,
+				76ED393428813ACC00B211C9 /* JhtLoadDocView.m */,
+			);
+			path = JhtLoadDocView;
+			sourceTree = "<group>";
+		};
+		76ED393528813ACC00B211C9 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393628813ACC00B211C9 /* OtherOpenButtonParamModel */,
+				76ED393928813ACC00B211C9 /* JhtLoadDocViewParamModel */,
+				76ED393C28813ACC00B211C9 /* JhtFileModel */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		76ED393628813ACC00B211C9 /* OtherOpenButtonParamModel */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393728813ACC00B211C9 /* OtherOpenButtonParamModel.m */,
+				76ED393828813ACC00B211C9 /* OtherOpenButtonParamModel.h */,
+			);
+			path = OtherOpenButtonParamModel;
+			sourceTree = "<group>";
+		};
+		76ED393928813ACC00B211C9 /* JhtLoadDocViewParamModel */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393A28813ACC00B211C9 /* JhtLoadDocViewParamModel.h */,
+				76ED393B28813ACC00B211C9 /* JhtLoadDocViewParamModel.m */,
+			);
+			path = JhtLoadDocViewParamModel;
+			sourceTree = "<group>";
+		};
+		76ED393C28813ACC00B211C9 /* JhtFileModel */ = {
+			isa = PBXGroup;
+			children = (
+				76ED393D28813ACC00B211C9 /* JhtFileModel.m */,
+				76ED393E28813ACC00B211C9 /* JhtFileModel.h */,
+			);
+			path = JhtFileModel;
+			sourceTree = "<group>";
+		};
 		954256EB2ECEF2507E4350ED /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -587,7 +820,7 @@
 		C5BE6E2F2011D99100F28B36 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0920;
+				LastUpgradeCheck = 1320;
 				ORGANIZATIONNAME = lixianglan;
 				TargetAttributes = {
 					C5BE6E362011D99100F28B36 = {
@@ -647,6 +880,7 @@
 				761BCA72272AA0CE00259676 /* README.txt in Resources */,
 				C5D01D7E20282543007F207E /* back_normal@2x.png in Resources */,
 				18E05CFB22F11CDE001E5B44 /* AlipaySDK.bundle in Resources */,
+				76ED394C28813ACC00B211C9 /* JhtDocViewer.bundle in Resources */,
 				C5FE4B5220468AED00CC8A2F /* noNet@2x.png in Resources */,
 				182ECCFB22FD221100FFC79E /* qidongye@2x.png in Resources */,
 				C5B194D4202EA46D00F0AC76 /* arrowLeft@2x.png in Resources */,
@@ -733,6 +967,7 @@
 				18EF1114232F683C006D4579 /* UIDevice+Hardware.m in Sources */,
 				C519972D2020238D007946E8 /* LXMD5.m in Sources */,
 				18C9D8E7219A5F9F001AC829 /* UITabBar+badge.m in Sources */,
+				76ED394128813ACC00B211C9 /* JhtDocFileOperations.m in Sources */,
 				C555EC282047DC5E0084642F /* LXNetworkManager.m in Sources */,
 				1899174125009A62003990B7 /* ZKDocument.m in Sources */,
 				1899173E25009A16003990B7 /* iCloudManager.m in Sources */,
@@ -740,8 +975,12 @@
 				18C78C5724E24421001208F2 /* ZKPrivacyView.m in Sources */,
 				188BB11D2489D14800494F58 /* JYNewMineViewController.m in Sources */,
 				188BB11A2489D12F00494F58 /* JYNewExpViewController.m in Sources */,
+				76ED394528813ACC00B211C9 /* JhtShowDumpingViewParamModel.m in Sources */,
 				18C78C5324E24421001208F2 /* Reachability.m in Sources */,
+				76ED394328813ACC00B211C9 /* JhtDefaultManager.m in Sources */,
+				76ED394928813ACC00B211C9 /* OtherOpenButtonParamModel.m in Sources */,
 				18C78C5624E24421001208F2 /* ZKControl.m in Sources */,
+				76ED394028813ACC00B211C9 /* JhtDownloadRequest.m in Sources */,
 				188BB1172489D12000494F58 /* JYNewSubViewController.m in Sources */,
 				C550BEFA20180AF000F0BC2A /* main.m in Sources */,
 				18C78C5524E24421001208F2 /* ZKGuideView.m in Sources */,
@@ -752,14 +991,21 @@
 				188BB1142489D11300494F58 /* JYNewSearchViewController.m in Sources */,
 				18C78C4424E24407001208F2 /* LXProgressView.m in Sources */,
 				C519972E2020238D007946E8 /* LXViewControllerManager.m in Sources */,
+				76ED394228813ACC00B211C9 /* JhtNetworkCheckTools.m in Sources */,
 				182493C5255BB55F00BF4AB2 /* JYgRPCClient.m in Sources */,
 				18BCAEB124F3C2980027921D /* JYWKNewWebController.m in Sources */,
 				18AEC20B249332C500391584 /* JYKeyCustom.m in Sources */,
 				18056003255BD68C005B04DD /* Push.pbrpc.m in Sources */,
+				76ED394B28813ACC00B211C9 /* JhtFileModel.m in Sources */,
+				76ED394828813ACC00B211C9 /* JhtLoadDocView.m in Sources */,
+				76ED394428813ACC00B211C9 /* JhtDownTipsDumpingView.m in Sources */,
 				761708502735284200B60AD8 /* UIImage+GIFImage.m in Sources */,
 				761BCA63272A816900259676 /* JYNewMessViewController.m in Sources */,
+				76ED394628813ACC00B211C9 /* JhtDocWebView.m in Sources */,
 				18C78C1B24E240CE001208F2 /* ZKModal.m in Sources */,
 				C550BEF920180AF000F0BC2A /* AppDelegate.m in Sources */,
+				76ED394728813ACC00B211C9 /* JhtDownloadView.m in Sources */,
+				76ED394A28813ACC00B211C9 /* JhtLoadDocViewParamModel.m in Sources */,
 				18C78C1A24E240CE001208F2 /* ZKClipboardView.m in Sources */,
 				18B3148725B68ACA005C8319 /* NSString+Extension.m in Sources */,
 				18056002255BD68C005B04DD /* Push.pbobjc.m in Sources */,
@@ -834,6 +1080,7 @@
 				CLANG_WARN_BOOL_CONVERSION = YES;
 				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
@@ -841,8 +1088,10 @@
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -868,7 +1117,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
@@ -889,6 +1138,7 @@
 				CLANG_WARN_BOOL_CONVERSION = YES;
 				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
@@ -896,8 +1146,10 @@
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -917,7 +1169,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
 				VALIDATE_PRODUCT = YES;
@@ -945,7 +1197,7 @@
 				GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
 				GCC_PREFIX_HEADER = "$(SRCROOT)/JianYuIOS/BaseClass1/PrefixHeader.pch";
 				INFOPLIST_FILE = JianYuIOS/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (
 					"$(inherited)",
@@ -954,6 +1206,8 @@
 					"$(PROJECT_DIR)/JianYuIOS/ThirdSDK/UMSocial/UMSocialSDKPlugin",
 					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/WeChatSDK1.8.4",
 					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/WeChatSDK1.9.2",
+					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/UMSPosPayOnly",
+					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/UPPaymentControl",
 				);
 				MARKETING_VERSION = 3.0.4;
 				ONLY_ACTIVE_ARCH = YES;
@@ -1029,7 +1283,7 @@
 				GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
 				GCC_PREFIX_HEADER = "$(SRCROOT)/JianYuIOS/BaseClass1/PrefixHeader.pch";
 				INFOPLIST_FILE = JianYuIOS/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (
 					"$(inherited)",
@@ -1038,6 +1292,8 @@
 					"$(PROJECT_DIR)/JianYuIOS/ThirdSDK/UMSocial/UMSocialSDKPlugin",
 					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/WeChatSDK1.8.4",
 					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/WeChatSDK1.9.2",
+					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/UMSPosPayOnly",
+					"$(PROJECT_DIR)/JianYuIOS/Libs(第三方)/UPPaymentControl",
 				);
 				MARKETING_VERSION = 3.0.4;
 				ONLY_ACTIVE_ARCH = NO;

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

@@ -24,6 +24,10 @@
 #import "JYKeyCustom.h"
 #import <WebKit/WebKit.h>
 #import "WXApi.h"
+#import "UMSPPPayVersionsInfo.h"
+#import "UMSPPPayPluginSettings.h"
+#import "UMSPPPayUnifyPayPlugin.h"
+
 //JPUSHRegisterDelegate
 @interface AppDelegate ()<UIApplicationDelegate, WXApiDelegate,UNUserNotificationCenterDelegate>
 
@@ -68,7 +72,7 @@
 //    NSLog(@"%@",[[GlobalData shareInstance] getDocumentPath]);
 //    NSLog(@"%@",[[GlobalData shareInstance] getfsCachedData]);
    
-
+    [self initUMSPay];
     [self initUM];
     [self registeredPush]; //注册原生推送
 
@@ -100,6 +104,10 @@
     #pragma clang diagnostic pop
     }
 }
+
+-(void)initUMSPay {
+    NSLog(@"全民付插件当前SDK版本:%@",[UMSPPPayVersionsInfo getVersionsInfoForPosPayPlugin]);
+}
 -(void)initUM {
     /* 打开调试日志 */
     [[UMSocialManager defaultManager] openLog:YES];
@@ -107,7 +115,11 @@
     [[UMSocialManager defaultManager] setUmSocialAppkey:@"5a685423f43e4833e500003e"];
     [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wx0e6a5b18f4cfd10d" appSecret:@"bf12200554cb6edeb2be69d49dc11a3e" redirectURL:nil];
     [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1106703118"appSecret:@"MYFVJZhtygWy5hzh" redirectURL:@"http://mobile.umeng.com/social"];
+    
+    
     [WXApi registerApp:@"wx0e6a5b18f4cfd10d" universalLink:@"https:www.jianyu360.cn/"];
+    
+//    [UMSPPPayUnifyPayPlugin registerApp:@"wx0e6a5b18f4cfd10d" universalLink:@"https:www.jianyu360.cn/"];
 }
 
 #pragma mark   ****处理接收通知情况****
@@ -555,7 +567,6 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
         if ([url.scheme isEqualToString:@"wx0e6a5b18f4cfd10d"]) {
             return  [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
         }
-        
         if ([url.host isEqualToString:@"safepay"]) {
             //跳转支付宝钱包进行支付,处理支付结果
             [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

+ 6 - 8
ios/JianYuIOS/JianYuIOS/BaseClass1/PrefixHeader.pch

@@ -178,24 +178,22 @@ _Pragma("clang diagnostic pop")\
 
 //#define kHost @"https://appdev-jytest.jydev.jianyu360.com/"   //其他测试
 
-#define kHost @"https://app-jytest.jydev.jianyu360.com/"  //测试1
+//#define kHost @"https://app-jytest.jydev.jianyu360.com/"  //测试1
 //#define kHost @"https://app2-jytest.jydev.jianyu360.com/"  //测试2
-//#define kHost @"https://app4-jytest.jydev.jianyu360.com/"  //测试4
 //#define kHost @"https://app5-jytest.jydev.jianyu360.com/"  //测试5
 
 
-
-//#define kHost @"https://app-i2.jianyu360.cn/"   //新正式
+#define kHost @"https://app-i2.jianyu360.cn/"   //新正式
 
 
 
 //测试
-#define OCRAPPID @"TIDAXUV9"
-#define LICENCE @"p78X6jCKNuDQkIOPNl8TNLbULoxMVDkf+gQM18uC0ZARhlA5Cjzk8SuUP+p43Vhr0aH+i/Jmxc8wzdnGdnlqiLCdRYTZYvR7oMol4AP534BxF9GMgqty0x4Hjf2d8usufYq6FT04EjMk9Mudcz0AGyBJGkgLCiKDZNNrCvXC9iGu6HjKkDlKWhcLFmMimw9NjpIBSVubmbZq9LI6yCTVVpJe934uUSpRX+4aGhH3x6M7Uv+aOz232qxVldLxSWeS+16IVVI+uoGILEgpTOLbdNGjtYxAI5X3GdyR9/ZXPHUKbSwNaJWj4svMDm+unKSvshPmZ9we28IzWx0ddxn22w=="
+//#define OCRAPPID @"TIDAXUV9"
+//#define LICENCE @"p78X6jCKNuDQkIOPNl8TNLbULoxMVDkf+gQM18uC0ZARhlA5Cjzk8SuUP+p43Vhr0aH+i/Jmxc8wzdnGdnlqiLCdRYTZYvR7oMol4AP534BxF9GMgqty0x4Hjf2d8usufYq6FT04EjMk9Mudcz0AGyBJGkgLCiKDZNNrCvXC9iGu6HjKkDlKWhcLFmMimw9NjpIBSVubmbZq9LI6yCTVVpJe934uUSpRX+4aGhH3x6M7Uv+aOz232qxVldLxSWeS+16IVVI+uoGILEgpTOLbdNGjtYxAI5X3GdyR9/ZXPHUKbSwNaJWj4svMDm+unKSvshPmZ9we28IzWx0ddxn22w=="
 
 //正式
-//#define OCRAPPID @"IDA24rmI"
-//#define LICENCE @"p78X6jCKNuDQkIOPNl8TNLbULoxMVDkf+gQM18uC0ZARhlA5Cjzk8SuUP+p43Vhr0aH+i/Jmxc8wzdnGdnlqiLCdRYTZYvR7oMol4AP534BxF9GMgqty0x4Hjf2d8usufYq6FT04EjMk9Mudcz0AGyBJGkgLCiKDZNNrCvXC9iG2cYczbyncMrpud8GaWP/O2BhbWuWeoCpqhfOM16agoAHKepGWdhhkZTDOaVPKUMmbaQ8I2dFlk9IfOrmqc1UFO+mni7bJ90T8NjjyOPbcKYtJPFwVjyGzTse9klfXuHgNealpJfvXrTnS85BNZcxYxVh+U3H58Bel+LRnFIVUag=="
+#define OCRAPPID @"IDA24rmI"
+#define LICENCE @"p78X6jCKNuDQkIOPNl8TNLbULoxMVDkf+gQM18uC0ZARhlA5Cjzk8SuUP+p43Vhr0aH+i/Jmxc8wzdnGdnlqiLCdRYTZYvR7oMol4AP534BxF9GMgqty0x4Hjf2d8usufYq6FT04EjMk9Mudcz0AGyBJGkgLCiKDZNNrCvXC9iG2cYczbyncMrpud8GaWP/O2BhbWuWeoCpqhfOM16agoAHKepGWdhhkZTDOaVPKUMmbaQ8I2dFlk9IfOrmqc1UFO+mni7bJ90T8NjjyOPbcKYtJPFwVjyGzTse9klfXuHgNealpJfvXrTnS85BNZcxYxVh+U3H58Bel+LRnFIVUag=="
 
 
 

+ 30 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/JhtDocViewer_Default.plist

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>item 0</key>
+	<dict>
+		<key>daysAgo</key>
+		<string>3</string>
+		<key>downloadFailedHint</key>
+		<string>文件下载失败</string>
+		<key>downloadingHint</key>
+		<string>玩命加载中...</string>
+		<key>notEnoughMemoryHint</key>
+		<string>手内内存不足,请进行清理</string>
+		<key>lostNetHint</key>
+		<string>当前网络暂不可用,请检查网络设置</string>
+	</dict>
+	<key>item 1</key>
+	<dict>
+		<key>titleFont</key>
+		<string>17.0</string>
+		<key>isHiddenBtn</key>
+		<false/>
+		<key>title_Normal</key>
+		<string>用其他应用打开</string>
+		<key>title_Hlighted</key>
+		<string>用其他应用打开</string>
+	</dict>
+</dict>
+</plist>

BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/close@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/close@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/dumpView.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/excel@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/excel@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/nav-back@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/nav-back@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/network_lost@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/network_lost@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/pdf@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/pdf@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/ppt@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/ppt@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/txt@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/txt@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/unknow@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/unknow@3x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/word@2x.png


BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer.bundle/images/word@3x.png


+ 38 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/JhtDocViewer_Define.h

@@ -0,0 +1,38 @@
+//
+//  JhtDocViewer_Define.h
+//  JhtDocViewerDemo
+//
+//  Created by Jht on 2017/10/19.
+//  Copyright © 2017年 JhtDocViewerDemo. All rights reserved.
+//
+
+#ifndef JhtDocViewer_Define_h
+#define JhtDocViewer_Define_h
+
+
+#define FrameW [UIScreen mainScreen].bounds.size.width
+#define FrameH [UIScreen mainScreen].bounds.size.height
+/** 375 */
+#define WidthScale375 ([UIScreen mainScreen].bounds.size.width/375.0)
+
+/** StatusBar height */
+#define KStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
+/** navigationBar height */
+#define KNavBarHeight CGRectGetHeight(self.navigationController.navigationBar.frame)
+
+/** color transfer
+ *  eg: #000000 UIColorFromRGB(0x000000)
+ */
+#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]
+
+/** iPhoneX */
+#define JhtIsIphoneX (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375.0f, 812.0f)) || CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(812.0f, 375.0f)))
+#define JhtIsIphoneXSMax (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414.0f, 896.0f)) || CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(896.0f, 414.0f)))
+/** SafeAreaInsetsBottom */
+#define JhtSafeAreaInsetsBottom ((JhtIsIphoneX || JhtIsIphoneXSMax) ? (34) : (0))
+
+
+#endif /* JhtDocViewer_Define_h */

+ 62 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtFileModel/JhtFileModel.h

@@ -0,0 +1,62 @@
+//
+//  JhtFileModel.h
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/7/11.
+//  Copyright © 2016年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+/** 文件类型 */
+typedef NS_ENUM(NSUInteger, Jht_FileType) {
+    // word || doc || docx
+    Type_Docx = 0,
+    // excel || xls || xlsx
+    Type_Xlsx = 1,
+    // ppt || pptx
+    Type_Pptx = 2,
+    // pdf
+    Type_Pdf = 3,
+    // txt
+    Type_Txt = 4,
+};
+
+
+/** 下载文件 Model */
+@interface JhtFileModel : NSObject
+
+#pragma mark - property
+#pragma mark required
+/** 文件ID */
+@property (nonatomic, strong) NSString *fileId;
+/** 文件名 */
+@property (nonatomic, strong) NSString *fileName;
+/** 文件下载路径 */
+@property (nonatomic, strong) NSString *url;
+/** 如果是本地的,绝对路径 */
+@property (nonatomic, strong) NSString *fileAbsolutePath;
+
+/** 文件类型 */
+@property (nonatomic, assign) Jht_FileType viewFileType;
+
+/** 注意单位一定要是: KB || MB || GB || Bytes */
+@property (nonatomic, strong) NSString *fileSize;
+/** 附件文件大小 */
+@property (nonatomic, strong) NSString *attachmentFileSize;
+
+
+@end
+
+/** for example: 
+    fileModel.fileId = @"577e2300c94f6e51316a299d";
+    fileModel.fileName = @"哈哈哈.docx";
+    fileModel.url = @"http://inform-file.oss-cn-beijing.aliyuncs.com/577e2300c94f6e51316a299d";
+    fileModel.fileType = @"docx";
+    fileModel.fileSize = @"21.39KB";
+    fileModel.attachmentFileSize = @"21906";
+ */
+

+ 17 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtFileModel/JhtFileModel.m

@@ -0,0 +1,17 @@
+//
+//  JhtFileModel.m
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/7/11.
+//  Copyright © 2016年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtFileModel.h"
+
+@implementation JhtFileModel
+
+
+@end

+ 55 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtLoadDocViewParamModel/JhtLoadDocViewParamModel.h

@@ -0,0 +1,55 @@
+//
+//  JhtLoadDocViewParamModel.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/10/19.
+//  Copyright © 2017年 JhtDocViewerDemo. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class OtherOpenButtonParamModel;
+@class JhtShowDumpingViewParamModel;
+
+/** 文本加载 View 配置Model */
+@interface JhtLoadDocViewParamModel : NSObject
+
+#pragma mark - property
+#pragma mark optional
+/** 无网络连接提示语
+ *  default: @"当前网络暂不可用,请检查网络设置"
+ */
+@property (nonatomic, strong) NSString *lostNetHint;
+/** 内存不足提示语
+ *  default: @"手内内存不足,请进行清理"
+ */
+@property (nonatomic, strong) NSString *notEnoughMemoryHint;
+/** 文件正在下载中的提示语
+ *  default: @"玩命加载中..."
+ */
+@property (nonatomic, strong) NSString *downloadingHint;
+/** 文件下载失败提示语
+ *  default: @"文件下载失败"
+ */
+@property (nonatomic, strong) NSString *downloadFailedHint;
+
+/** 清理?天前的文件
+ *  default: 3
+ *  建议不要频繁清理,且文件过大可能存在且仅一次 错误读取上一次缓存文件
+ */
+@property (nonatomic, assign) NSInteger daysAgo;
+/** 下载进度条填充颜色
+ *  default: UIColorFromRGB(0x61CBF5)
+ */
+@property (nonatomic, strong) UIColor *downloadProgressTintColor;
+
+/** 提示框model相关参数 */
+@property (nonatomic, strong) JhtShowDumpingViewParamModel *showDumpingViewParamModelparamModel;
+
+/** 《用其他应用打开》按钮 配置Model */
+@property (nonatomic, strong) OtherOpenButtonParamModel *otherOpenButtonParamModel;
+
+
+@end

+ 17 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/JhtLoadDocViewParamModel/JhtLoadDocViewParamModel.m

@@ -0,0 +1,17 @@
+//
+//  JhtLoadDocViewParamModel.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/10/19.
+//  Copyright © 2017年 JhtDocViewerDemo. All rights reserved.
+//
+
+#import "JhtLoadDocViewParamModel.h"
+
+@implementation JhtLoadDocViewParamModel
+
+
+@end

+ 58 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/OtherOpenButtonParamModel/OtherOpenButtonParamModel.h

@@ -0,0 +1,58 @@
+//
+//  OtherOpenButtonParamModel.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/8/16.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+/** 《用其他应用打开》按钮 配置Model */
+@interface OtherOpenButtonParamModel : NSObject
+
+#pragma mark - property
+#pragma mark optional
+/** btnFrame 
+ *	default: CGRectMake(0, CGRectGetHeight(self.frame) - 45 - JhtSafeAreaInsetsBottom, CGRectGetWidth(self.frame), 45)
+ */
+@property (nonatomic, assign) CGRect btnFrame;
+/** backgroundColor 
+ *	default: [UIFont systemFontOfSize:17.f]
+ */
+@property (nonatomic, strong) UIColor *backgroundColor;
+/** btn cornerRadius */
+@property (nonatomic, assign) CGFloat cornerRadius;
+
+/** 是否隐藏btn
+ *  default: NO
+ */
+@property (nonatomic, assign) BOOL isHiddenBtn;
+
+/** btnTitle_Normal 
+ *	default: @"用其他应用打开"
+ */
+@property (nonatomic, strong) NSString *title_Normal;
+/** titleColor_Normal 
+ *	default: [UIColor whiteColor]
+ */
+@property (nonatomic, strong) UIColor *titleColor_Normal;
+/** btnTitle_hlighted 
+ *	default: @"用其他应用打开"
+ */
+@property (nonatomic, strong) NSString *title_Hlighted;
+/** titleColor_Normal 
+ *	default: [UIColor whiteColor]
+ */
+@property (nonatomic, strong) UIColor *titleColor_Hlighted;
+
+/** titleFont 
+ *	default: [UIFont systemFontOfSize:17.f]
+ */
+@property (nonatomic, strong) UIFont *titleFont;
+
+
+@end

+ 17 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Model/OtherOpenButtonParamModel/OtherOpenButtonParamModel.m

@@ -0,0 +1,17 @@
+//
+//  OtherOpenButtonParamModel.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/8/16.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "OtherOpenButtonParamModel.h"
+
+@implementation OtherOpenButtonParamModel
+
+
+@end

+ 33 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDefaultManager/JhtDefaultManager.h

@@ -0,0 +1,33 @@
+//
+//  JhtDefaultManager.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2018/11/24.
+//  Copyright © 2018 JhtDocViewerDemo. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/** Default Type */
+typedef NS_ENUM(NSUInteger, JhtDefaultType) {
+    // 文本加载 View 配置参数
+    JhtDefaultType_LoadDocViewParam = 0,
+    
+    // 《用其他应用打开》按钮 配置参数
+    JhtDefaultType_OtherOpenButtonParam
+};
+
+
+/** Default Manager */
+@interface JhtDefaultManager : NSObject
+
+#pragma mark - Public Method
+/** 获取指定 配置 Dic */
++ (NSDictionary *)getConfigDataWithType:(JhtDefaultType)type;
+
+
+@end
+

+ 47 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDefaultManager/JhtDefaultManager.m

@@ -0,0 +1,47 @@
+//
+//  JhtDefaultManager.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2018/11/24.
+//  Copyright © 2018 JhtDocViewerDemo. All rights reserved.
+//
+
+#import "JhtDefaultManager.h"
+
+@implementation JhtDefaultManager
+
+#pragma mark - Public Method
+/** 获取指定 配置 Dic */
++ (NSDictionary *)getConfigDataWithType:(JhtDefaultType)type {
+    NSString *key = [NSString stringWithFormat:@"item %ld", (long)type];
+    NSDictionary *dic = [JhtDefaultManager getBundleResourcePlist:@"JhtDocViewer_Default"];
+    
+    return dic[key];
+}
+
+
+#pragma mark - Private Method
+/** 获取指定 plist Dic */
++ (NSMutableDictionary *)getBundleResourcePlist:(NSString *)name {
+    if (name.length) {
+        NSString *bundlePath = [self getBundlePath];
+        NSString *plistPath = [bundlePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist", name]];
+        NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
+        return data ? : [NSMutableDictionary dictionary];
+    }
+    
+    return nil;
+}
+
+/** 获取Bundle path */
++ (NSString *)getBundlePath {
+    NSString *path = [[NSBundle mainBundle] pathForResource:@"JhtDocViewer" ofType:@"bundle"];
+    
+    return path;
+}
+
+
+@end

+ 58 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDocFileOperations/JhtDocFileOperations.h

@@ -0,0 +1,58 @@
+//
+//  JhtDocFileOperations.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/6.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+/** 文件操作类 */
+@interface JhtDocFileOperations : NSObject
+
+#pragma mark - property
+/** 文件名称 */
+@property (nonatomic, strong) NSString *fileName;
+
+/** 存放 app下载文件 沙盒路径 */
+@property (nonatomic, strong, readonly) NSString *downloadFilesPath;
+/** 存放 从其他app分享过来文件 沙盒路径 */
+@property (nonatomic, strong, readonly) NSString *otherAppFilesPath;
+
+
+#pragma mark - Public Method
+/** 单例 */
++ (instancetype)sharedInstance;
+
+#pragma mark 保存
+/** 将本地文件 加载至内存
+ *  fileName: 是以.为分割的格式       eg: 哈哈哈.doc
+ *  basePath: 是本地路径的基地址      eg: NSHomeDirectory()
+ *  localPath: 本地路径中存储的文件夹  eg: Documents/JhtDoc
+ */
+- (void)copyLocalWithFileName:(NSString *)fileName basePath:(NSString *)basePath localPath:(NSString *)localPath;
+
+#pragma mark 生成路径
+/** 生成 本地文件 完整路径 */
+- (NSString *)stitchLocalFilePath;
+/** 生成 下载文件 沙盒路径 */
+- (NSString *)stitchDownloadFilePath;
+/** “其他应用”===>“本应用”打开,根据传递的url,获得本地地址 */
+- (NSString *)findLocalPathFromAppLicationOpenUrl:(NSURL *)url;
+
+
+#pragma mark 清理
+/** 文件下载失败时,清除文件路径 */
+- (void)removeFileWhenDownloadFileFailure;
+/** 清理几天前文件
+ *  filePathArray: 需要 额外 清理的文件路径,可为nil
+ *  注: downloadFilesPath && otherAppFilesPath 路径下文件always clean(与filePathArray无关)
+ */
+- (void)cleanFileAfterDays:(CGFloat)day filePathArray:(NSArray *)filePathArray;
+
+
+@end

+ 246 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDocFileOperations/JhtDocFileOperations.m

@@ -0,0 +1,246 @@
+//
+//  JhtDocFileOperations.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/6.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtDocFileOperations.h"
+
+/** 系统默认 存放 从其他app分享过来文件的 文件夹名(后半段) */
+static NSString *const KJht_folderName_Default_OtherAppFiles = @"/Documents/Inbox";
+/** 存放 从其他app分享过来文件的 文件夹名(后半段) */
+static NSString *const KJht_folderName_OtherAppFiles = @"/Documents/JhtFolderNameWithOtherAppFiles";
+
+/** 默认 本地文件 加载到到内存中 文件夹名(后半段) */
+static NSString *const KJht_folderName_Default_LoadToMemoryFiles = @"Documents/JhtDoc";
+/** 系统默认 存放 下载文件的 文件夹名(后半段) */
+static NSString *const KJht_folderName_DownloadFiles = @"/Download/Files";
+
+@implementation JhtDocFileOperations
+/** 存放 app下载文件 沙盒路径 */
+@synthesize downloadFilesPath = _downloadFilesPath;
+/** 存放 从其他app分享过来文件 沙盒路径 */
+@synthesize otherAppFilesPath = _otherAppFilesPath;
+
+#pragma mark - Public Method
++ (instancetype)sharedInstance {
+    static JhtDocFileOperations *JhtDocUtil = nil;
+    static dispatch_once_t onceToken;
+    
+    dispatch_once(&onceToken, ^{
+        if (JhtDocUtil == nil) {
+            JhtDocUtil = [[self alloc] init];
+        }
+    });
+    
+    return JhtDocUtil;
+}
+
+#pragma mark 保存
+- (void)copyLocalWithFileName:(NSString *)fileName basePath:(NSString *)basePath localPath:(NSString *)localPath {
+    // 兼容处理
+    if (fileName.length == 0) {
+        return;
+    }
+    if (localPath.length == 0) {
+        localPath = KJht_folderName_Default_LoadToMemoryFiles;
+    }
+    if (basePath.length == 0) {
+        basePath = NSHomeDirectory();
+    }
+    // 储存方式
+    NSString *path = [basePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/%@", localPath, fileName]];
+    
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    NSError *error;
+    if (![fileManager fileExistsAtPath:path]) {
+        // 创建目录
+        [fileManager createDirectoryAtPath:[path componentsSeparatedByString:[NSString stringWithFormat:@"/%@", fileName]][0]  withIntermediateDirectories:YES attributes:nil error:&error];
+        NSString *filename = [fileName componentsSeparatedByString:@"."][0];
+        NSString *type = [fileName componentsSeparatedByString:@"."][1];
+        
+        NSString *bundle = [[NSBundle mainBundle] pathForResource:filename ofType:type];
+        
+        // 用NSData保存到内存
+        NSData *fileData = [[NSData alloc] initWithContentsOfFile:bundle];
+        [fileData writeToFile:path atomically:YES];
+    }
+}
+
+#pragma mark 生成路径
+- (NSString *)stitchLocalFilePath {
+    // 生成 下载文件 沙盒路径
+    NSString *filePath = [self stitchDownloadFilePath];
+    NSString *fileTypePath = [filePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", self.fileName]];
+    
+    return fileTypePath;
+}
+
+- (NSString *)stitchDownloadFilePath {
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
+    NSString *downLoadPath = [paths objectAtIndex:0];
+    NSString *downLoadFilesPath = [NSString stringWithFormat:@"%@%@", downLoadPath, KJht_folderName_DownloadFiles];
+	
+    return downLoadFilesPath;
+}
+
+- (NSString *)findLocalPathFromAppLicationOpenUrl:(NSURL *)url {
+//    NSString *str = [NSString stringWithFormat:@"\n发送请求的应用程序的 Bundle ID: %@\n\n文件的NSURL: %@", options[UIApplicationOpenURLOptionsSourceApplicationKey], url];
+    // url示例
+    // @"file:///private/var/mobile/Containers/Data/Application/A2E0485F-1341-48A3-BD40-6D09CB8559F5/Documents/Inbox/2-6.pptx"
+    
+    /*
+     // 从路径中获得完整的文件名(带后缀) 2.pptx
+     NSString *exestr = ;
+     NSLog(@"%@", exestr);
+     // 获得文件名(不带后缀) file:/private/var/mobile/Containers/Data/Application/BEBCB59D-DAE2-4743-9421-62A64AFFCE0B/Documents/Inbox/2
+     exestr = [[url description]  stringByDeletingPathExtension];
+     NSLog(@"%@", exestr);
+     
+     // 获得文件的后缀名(不带'.') pptx
+     exestr = [[url description]  pathExtension];
+     NSLog(@"%@", exestr);
+     */
+    
+    // url转码
+//    NSLog(@"%@", url);
+    NSString *urlStr = [[url description]  stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+    // 将inbox里这个文档拷贝到KJht_folderName_OtherAppFiles目录下
+    NSString *appfilePath = [self copyFromInboxWithFileName:[urlStr  lastPathComponent]];
+//    NSLog(@"%@", appfilePath);
+    
+    return appfilePath;
+}
+
+#pragma mark 清理
+- (void)removeFileWhenDownloadFileFailure {
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    NSString *fileName = [self stitchLocalFilePath];
+    if ([fileManager fileExistsAtPath:fileName]) {
+        [fileManager removeItemAtPath:fileName error:nil];
+    }
+}
+
+- (void)cleanFileAfterDays:(CGFloat)day filePathArray:(NSArray *)filePathArray {
+    // app下载文件 沙盒路径
+    _downloadFilesPath = [self stitchDownloadFilePath];
+    // 从别的app分享过来文件 沙盒路径
+    _otherAppFilesPath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", KJht_folderName_OtherAppFiles]];
+    NSArray *clearFilesPathArray = @[_downloadFilesPath, _otherAppFilesPath];
+    
+    if (filePathArray.count) {
+        NSMutableArray *tempArray = [NSMutableArray arrayWithArray:clearFilesPathArray];
+        [tempArray addObjectsFromArray:filePathArray];
+        
+        clearFilesPathArray = [tempArray copy];
+    }
+    
+    // 并发异步 进行文件操作
+    dispatch_queue_t queue = dispatch_queue_create("com.JhtDocViewerDemo", DISPATCH_QUEUE_SERIAL);
+    dispatch_async(queue, ^{
+        for (NSInteger i = 0; i < clearFilesPathArray.count; i ++) {
+            NSString *filePath = clearFilesPathArray[i];
+            NSFileManager *fileManager = [NSFileManager defaultManager];
+            NSDirectoryEnumerator *directoryEnumerator = [fileManager enumeratorAtPath:filePath];
+            NSString *path;
+            while ((path = [directoryEnumerator nextObject]) != nil) {
+                NSString *subFilePath = [filePath stringByAppendingPathComponent:path];
+                
+                // 遍历文件属性
+                NSError *error = nil;
+                NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:subFilePath error:&error];
+                if (fileAttributes != nil) {
+                    NSDate *fileCreateDate = [fileAttributes objectForKey:NSFileCreationDate];
+                    if (fileCreateDate) {
+                        NSDate *nowDate = [NSDate date];
+                        NSTimeInterval timeInterval = [nowDate timeIntervalSinceDate:fileCreateDate];
+                        
+                        // 文件创建时间 与当前时间 间隔 > day ===> 删除
+                        // (2 * 60): 2min的延迟,避免误删除当次要打开的文件
+                        if (timeInterval > (day > 0 ? (day * 24 * 60 * 60) : (2 * 60))) {
+                            // 判断文件是否存在
+                            if ([fileManager fileExistsAtPath:subFilePath]) {
+                                [fileManager removeItemAtPath:subFilePath error:nil];
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    });
+}
+
+
+#pragma mark - Private Method
+/** 将inbox里这个文档拷贝到KJht_folderName_OtherAppFiles文件夹下
+ *  fileName: Documents/Inbox文件夹下的文件名
+ *  return: 文件的新地址
+ */
+- (NSString *)copyFromInboxWithFileName:(NSString *)fileName {
+    // 其他app 分享过来的文件 默认存放的文件夹
+    NSString *tempFileDir = [NSHomeDirectory() stringByAppendingString:KJht_folderName_Default_OtherAppFiles];
+    
+    // 文件的新地址
+    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/%@", KJht_folderName_OtherAppFiles, fileName]];
+    
+    // 创建KJht_folderName_OtherAppFiles文件夹
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    BOOL isDir = FALSE;
+    BOOL isDirExist = [fileManager fileExistsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", KJht_folderName_OtherAppFiles]] isDirectory:&isDir];
+    if (!isDirExist) {
+        NSError *error;
+        [fileManager createDirectoryAtPath:[NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", KJht_folderName_OtherAppFiles]] withIntermediateDirectories:YES attributes:nil error:&error];
+    }
+    
+    // 删除KJht_folderName_OtherAppFiles文件夹下所有文件
+//    [self deleteWithLocalPath:[NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", KJht_folderName_OtherAppFiles]]];
+    
+    // 用NSData方式保存
+    NSData *fileData = [[NSData alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", tempFileDir, fileName]];
+    [fileData writeToFile:path atomically:YES];
+    
+    // 删除Inbox文件夹(文件所在的原始文件夹)下所有文件
+    [self deleteWithLocalPath:tempFileDir];
+    
+    return path;
+}
+
+/** 删除文件下的所有所有文档 */
+- (void)deleteWithLocalPath:(NSString *)filePath {
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    NSDirectoryEnumerator *directoryEnumerator = [fileManager enumeratorAtPath:filePath];
+    NSString *path;
+    while ((path = [directoryEnumerator nextObject]) != nil) {
+        NSString *subFilePath = [filePath stringByAppendingPathComponent:path];
+        if ([fileManager fileExistsAtPath:subFilePath]) {
+            // 如果存在
+            [fileManager removeItemAtPath:subFilePath error:nil];
+        }
+    }
+}
+
+
+#pragma mark - Getter
+- (NSString *)downloadFilesPath {
+    if (!_downloadFilesPath) {
+        _downloadFilesPath = [self stitchDownloadFilePath];
+    }
+    
+    return _downloadFilesPath;
+}
+
+- (NSString *)otherAppFilesPath {
+    if (!_otherAppFilesPath) {
+        _otherAppFilesPath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", KJht_folderName_OtherAppFiles]];
+    }
+    
+    return _otherAppFilesPath;
+}
+
+
+@end

+ 32 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDownloadRequest/JhtDownloadRequest.h

@@ -0,0 +1,32 @@
+//
+//  JhtDownloadRequest.h
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/7/10.
+//  Copyright © 2016年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface JhtDownloadRequest : NSObject
+
+#pragma mark - Public Method
+/** 单例 */
++ (id)sharedInstance;
+
+/** 下载文件功能
+ *  URLString: 下载文件 URL
+ *  downloadFileProgress: 下载的进度条(百分比)
+ *  setupFilePath: 设置下载 路径
+ *  downloadCompletionHandler: 下载完成后(下载完成后可拿到存储的路径)
+ */
++ (void)createDownloadFileWithURLString:(NSString *)URLString downloadFileProgress:(void(^)(NSProgress *downloadProgress))downloadFileProgress setupFilePath:(NSURL *(^)(NSURLResponse *response))setupFilePath downloadCompletionHandler:(void (^)(NSURL *filePath, NSError *error))downloadCompletionHandler;
+
+/** 停止 下载文件 */
++ (void)stopDownloadFile;
+
+
+@end

+ 99 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtDownloadRequest/JhtDownloadRequest.m

@@ -0,0 +1,99 @@
+//
+//  JhtDownloadRequest.m
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/7/10.
+//  Copyright © 2016年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtDownloadRequest.h"
+#import "AFHTTPSessionManager.h"
+
+#define TIME_NETOUT 20.0f
+
+@implementation JhtDownloadRequest {
+    AFHTTPSessionManager *_HTTPManager;
+    NSURLSessionDownloadTask *_dataTask;
+}
+
+#pragma mark - Init
+- (id)init {
+    if (self = [super init]) {
+        _HTTPManager = [AFHTTPSessionManager manager];
+        _HTTPManager.requestSerializer.HTTPShouldHandleCookies = YES;
+        
+        _HTTPManager.requestSerializer  = [AFHTTPRequestSerializer serializer];
+        _HTTPManager.responseSerializer = [AFHTTPResponseSerializer serializer];
+        
+        [_HTTPManager.requestSerializer setTimeoutInterval:TIME_NETOUT];
+        
+        // 版本号信息 放入 请求头中
+        [_HTTPManager.requestSerializer setValue:[NSString stringWithFormat:@"iOS-%@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]] forHTTPHeaderField:@"MM-Version"];
+        
+        [_HTTPManager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept" ];
+        _HTTPManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/html", @"text/plain", nil];
+    }
+    
+    return self;
+}
+
+
+#pragma mark - Public Method
++ (id)sharedInstance {
+    static JhtDownloadRequest * HTTPCommunicate;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        HTTPCommunicate = [[JhtDownloadRequest alloc] init];
+    });
+    
+    return HTTPCommunicate;
+}
+
++ (void)createDownloadFileWithURLString:(NSString *)URLString downloadFileProgress:(void(^)(NSProgress *downloadProgress))downloadFileProgress setupFilePath:(NSURL *(^)(NSURLResponse *response))setupFilePath downloadCompletionHandler:(void (^)(NSURL *filePath, NSError *error))downloadCompletionHandler {
+    if (URLString) {
+        [[JhtDownloadRequest sharedInstance]createUnloginedDownloadFileWithURLString:URLString downloadFileProgress:downloadFileProgress setupFilePath:setupFilePath downloadCompletionHandler:downloadCompletionHandler];
+    }
+}
+
+/** 停止 下载文件 */
++ (void)stopDownloadFile {
+    [[JhtDownloadRequest sharedInstance] pause];
+}
+
+
+#pragma mark - Private Method
+- (void)createUnloginedDownloadFileWithURLString:(NSString *)URLString downloadFileProgress:(void(^)(NSProgress *downloadProgress))downloadFileProgress setupFilePath:(NSURL*(^)(NSURLResponse *response))setupFilePath downloadCompletionHandler:(void (^)(NSURL *filePath, NSError *error))downloadCompletionHandler {
+    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URLString] cachePolicy:1 timeoutInterval:15];
+    
+    _dataTask = [_HTTPManager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
+        // 下载进度
+        downloadFileProgress(downloadProgress);
+        
+    } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
+        // 设置保存目录
+        return setupFilePath(response);
+        
+    } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
+        // 下载完成
+        downloadCompletionHandler(filePath,error);
+        
+    }];
+    
+    [_dataTask resume];
+}
+
+/** 暂停 下载文件 */
+- (void)pause {
+    // 暂停
+    [_dataTask cancelByProducingResumeData:^(NSData * _Nullable resumeData) {
+        
+    }];
+    
+    _dataTask = nil;
+}
+
+
+@end

+ 72 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtNetworkCheckTools/JhtNetworkCheckTools.h

@@ -0,0 +1,72 @@
+//
+//  JhtNetworkCheckTools.h
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/5/19.
+//  Copyright © 2016年 JhtTools. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@protocol JhtNetworkCheckToolsProtocol <NSObject>
+@optional
+/** 网络状态变更
+ *  注: 注册的 listener 需要实现此方法
+ */
+- (void)networkChangedNot:(NSNotification *)not;
+
+@end
+
+typedef NS_ENUM(NSUInteger, JhtNetWorkStatus) {
+    // 无网络
+    NetWorkStatus_None = 0,
+    
+    // WIFI
+    NetWorkStatus_WIFI,
+    
+    // 蜂窝网络
+    NetWorkStatus_2G,
+    NetWorkStatus_3G,
+    NetWorkStatus_4G,
+    
+    // 未知网络
+    NetWorkStatus_Unkhow
+};
+
+
+/** 网络状态变化通知 Key */
+extern NSString *const KNCTNetworkStatusChangedNotKey;
+
+/** 网络监听类 */
+@interface JhtNetworkCheckTools : NSObject
+
+#pragma mark - Public Method
+#pragma mark Check
+/** 获取当前网络状态: 枚举 */
++ (JhtNetWorkStatus)currentNetWork_Status;
+/** 获取当前网络状态: 字符串 */
++ (NSString *)currentNetWork_StatusString;
+
+#pragma mark start/stop
+/** 开始网络监听
+ *	listener: 监听对象,可为nil
+ */
++ (void)startMonitoringWithListener:(id<JhtNetworkCheckToolsProtocol>)listener;
+/** 停止网络监听
+ *  listener: 监听对象,可为nil
+ */
++ (void)stopMonitoringWithListener:(id<JhtNetworkCheckToolsProtocol>)listener;
+
+#pragma mark Judge
+/** 是否有网络 */
++ (BOOL)isNetworkEnable;
+/** 是否为WIFI */
++ (BOOL)isWIFI;
+/** 是否处于高速网络环境: 3G/4G/WIFI */
++ (BOOL)isHighSpeedNetwork;
+
+
+@end

+ 230 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/Tools/JhtNetworkCheckTools/JhtNetworkCheckTools.m

@@ -0,0 +1,230 @@
+//
+//  JhtNetworkCheckTools.m
+//  JhtTools
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 16/5/19.
+//  Copyright © 2016年 JhtTools. All rights reserved.
+//
+
+#import "JhtNetworkCheckTools.h"
+#import "Reachability.h"
+#import <CoreTelephony/CTTelephonyNetworkInfo.h>
+
+/** 网络状态变化通知Key */
+NSString *const KNCTNetworkStatusChangedNotKey = @"KNCTNetworkStatusChangedNotKey";
+
+@interface JhtNetworkCheckTools ()
+/** 是否正在监听 */
+@property (nonatomic, assign) BOOL isMonitoring;
+
+/** 2G数组 */
+@property (nonatomic, strong) NSArray *network2GArray;
+/** 3G数组 */
+@property (nonatomic, strong) NSArray *network3GArray;
+/** 4G数组 */
+@property (nonatomic, strong) NSArray *network4GArray;
+/** 网络状态中文数组 */
+@property (nonatomic, strong) NSArray *networkStatusStringArray;
+
+@property (nonatomic, strong) Reachability *reachability;
+/** 电话网络信息 */
+@property (nonatomic, strong) CTTelephonyNetworkInfo *telephonyNetworkInfo;
+/** 目前的无线接入 */
+@property (nonatomic, copy) NSString *currentRaioAccess;
+
+@end
+
+
+@implementation JhtNetworkCheckTools
+
+#pragma mark - Init
++ (void)initialize {
+    JhtNetworkCheckTools *status = [JhtNetworkCheckTools sharedInstance];
+    status.telephonyNetworkInfo =  [[CTTelephonyNetworkInfo alloc] init];
+}
+
+
+#pragma mark - Public Method
+#pragma mark Check
++ (JhtNetWorkStatus)currentNetWork_Status {
+    JhtNetworkCheckTools *status = [JhtNetworkCheckTools sharedInstance];
+    
+    return [status nctChectStatusWithRadioAccessTechnology];
+}
+
++ (NSString *)currentNetWork_StatusString {
+    JhtNetworkCheckTools *status = [JhtNetworkCheckTools sharedInstance];
+    
+    return status.networkStatusStringArray[[self currentNetWork_Status]];
+}
+
+#pragma mark start/stop
++ (void)startMonitoringWithListener:(id<JhtNetworkCheckToolsProtocol>)listener {
+    JhtNetworkCheckTools *status = [JhtNetworkCheckTools sharedInstance];
+    if (status.isMonitoring) {
+        NSLog(@"网络监听已开启,请勿重复开启");
+        
+        [self stopMonitoringWithListener:(id<JhtNetworkCheckToolsProtocol>)listener];
+    }
+    
+    // 注册监听
+    [[NSNotificationCenter defaultCenter] addObserver:status selector:@selector(nctNetWorkStatusChanged:) name:kReachabilityChangedNotification object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:status selector:@selector(nctNetWorkStatusChanged:) name:CTRadioAccessTechnologyDidChangeNotification object:nil];
+    
+    [status.reachability startNotifier];
+    
+    // 标记正在监听中
+    status.isMonitoring = YES;
+}
+
++ (void)stopMonitoringWithListener:(id<JhtNetworkCheckToolsProtocol>)listener {
+    JhtNetworkCheckTools *status = [JhtNetworkCheckTools sharedInstance];
+    
+    if (!status.isMonitoring) {
+        NSLog(@"网络监听已关闭,请勿重复关闭");
+        return;
+    }
+    
+    // 注销监听
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    
+    [status.reachability stopNotifier];
+    
+    // 标记 未 正在监听中
+    status.isMonitoring = NO;
+}
+
+#pragma mark Judge
++ (BOOL)isNetworkEnable {
+    JhtNetWorkStatus networkStatus = [self currentNetWork_Status];
+    
+    return (networkStatus != NetWorkStatus_Unkhow) && (networkStatus != NetWorkStatus_None);
+}
+
++ (BOOL)isWIFI {
+    return [self currentNetWork_Status] == NetWorkStatus_WIFI;
+}
+
++ (BOOL)isHighSpeedNetwork {
+    JhtNetWorkStatus networkStatus = [self currentNetWork_Status];
+    return networkStatus == NetWorkStatus_3G || networkStatus == NetWorkStatus_4G || networkStatus == NetWorkStatus_WIFI;
+}
+
+
+#pragma mark - Private Method
+/** 单例获取自身对象 */
+static JhtNetworkCheckTools *jhtNetworkCheck = nil;
++ (instancetype)sharedInstance {
+    static dispatch_once_t onceToken;
+    
+    dispatch_once(&onceToken, ^{
+        jhtNetworkCheck = [[self alloc] init];
+    });
+    
+    return jhtNetworkCheck;
+}
+
+/** 查询网络连接状态 */
+- (JhtNetWorkStatus)nctChectStatusWithRadioAccessTechnology {
+    JhtNetWorkStatus status = (JhtNetWorkStatus)[self.reachability currentReachabilityStatus];
+    
+    NSString *technology = self.currentRaioAccess;
+    if ((status == ReachableViaWWAN) && (technology != nil)) {
+        if ([self.network2GArray containsObject:technology]) {
+            status = NetWorkStatus_2G;
+        } else if ([self.network3GArray containsObject:technology]) {
+            status = NetWorkStatus_3G;
+        } else if ([self.network4GArray containsObject:technology]) {
+            status = NetWorkStatus_4G;
+        }
+    }
+    
+    return status;
+}
+
+/** 网络状态发生变化 */
+- (void)nctNetWorkStatusChanged:(NSNotification *)notification {
+    // 发送通知
+    if (notification.name == CTRadioAccessTechnologyDidChangeNotification &&
+        notification.object != nil) {
+        self.currentRaioAccess = self.telephonyNetworkInfo.currentRadioAccessTechnology;
+    }
+    
+    // 再次发出通知
+    NSDictionary *userInfo = @{@"currentStatus_Enum" : @([JhtNetworkCheckTools currentNetWork_Status]),
+                               @"currentStatus_String" : [JhtNetworkCheckTools currentNetWork_StatusString]
+                               };
+    [[NSNotificationCenter defaultCenter] postNotificationName:KNCTNetworkStatusChangedNotKey object:self userInfo:userInfo];
+}
+
+
+#pragma mark - Getter
+- (NSArray *)network2GArray {
+    if (!_network2GArray) {
+        _network2GArray = @[CTRadioAccessTechnologyEdge,
+                            CTRadioAccessTechnologyGPRS];
+    }
+    
+    return _network2GArray;
+}
+
+- (NSArray *)network3GArray {
+    if (!_network3GArray) {
+        _network3GArray = @[CTRadioAccessTechnologyHSDPA,
+                            CTRadioAccessTechnologyWCDMA,
+                            CTRadioAccessTechnologyHSUPA,
+                            CTRadioAccessTechnologyCDMA1x,
+                            CTRadioAccessTechnologyCDMAEVDORev0,
+                            CTRadioAccessTechnologyCDMAEVDORevA,
+                            CTRadioAccessTechnologyCDMAEVDORevB,
+                            CTRadioAccessTechnologyeHRPD];
+    }
+    
+    return _network3GArray;
+}
+
+- (NSArray *)network4GArray {
+    if (!_network4GArray) {
+        _network4GArray = @[CTRadioAccessTechnologyLTE];
+    }
+    
+    return _network4GArray;
+}
+
+- (NSArray *)networkStatusStringArray {
+    if (!_networkStatusStringArray) {
+        _networkStatusStringArray = @[@"无网络", @"WIFI", @"蜂窝网络", @"2G", @"3G", @"4G", @"未知网络"];
+    }
+    
+    return _networkStatusStringArray;
+}
+
+- (Reachability *)reachability {
+    if (!_reachability) {
+        _reachability = [Reachability reachabilityForInternetConnection];
+    }
+    
+    return _reachability;
+}
+
+- (CTTelephonyNetworkInfo *)telephonyNetworkInfo {
+    if (!_telephonyNetworkInfo) {
+        _telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init];
+    }
+    
+    return _telephonyNetworkInfo;
+}
+
+- (NSString *)currentRaioAccess {
+    if (!_currentRaioAccess) {
+        _currentRaioAccess = self.telephonyNetworkInfo.currentRadioAccessTechnology;
+    }
+    
+    return _currentRaioAccess;
+}
+
+
+@end

+ 30 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDocWebView/JhtDocWebView.h

@@ -0,0 +1,30 @@
+//
+//  JhtDocWebView.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/6.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class WKWebView;
+@class OtherOpenButtonParamModel;
+
+/** 加载文件的WebView */
+@interface JhtDocWebView : UIView
+
+#pragma mark - property
+/** 加载Doc的webView */
+@property (nonatomic, strong, readonly) WKWebView *wkWebView;
+
+/** 文件路径 */
+@property (nonatomic, strong) NSString *filePath;
+/** OtherOpenButton 配置Model */
+@property (nonatomic, strong) OtherOpenButtonParamModel *otherOpenButtonParamModel;
+
+
+@end

+ 357 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDocWebView/JhtDocWebView.m

@@ -0,0 +1,357 @@
+//
+//  JhtDocWebView.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/6.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtDocWebView.h"
+#import "sys/utsname.h"
+#import <WebKit/WebKit.h>
+#import "JhtDefaultManager.h"
+#import "JhtDocViewer_Define.h"
+#import "OtherOpenButtonParamModel.h"
+
+@interface JhtDocWebView () <WKNavigationDelegate, WKUIDelegate, UIDocumentInteractionControllerDelegate> {
+    // 用三方打开文件
+    UIDocumentInteractionController *_documentController;
+}
+/** 加载Doc的webView */
+@property (nonatomic, strong) WKWebView *wkWebView;
+/** 《用其他应用打开》按钮 */
+@property (nonatomic, strong) UIButton *otherOpenButton;
+
+@end
+
+
+@implementation JhtDocWebView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    
+    if (self) {
+        [self addSubview:self.wkWebView];
+        
+        // 其他应用打开
+        _documentController = [[UIDocumentInteractionController alloc] init];
+        
+        _documentController.delegate = self;
+        // 添加@"用其他应用打开"按钮
+        [self addSubview:self.otherOpenButton];
+    }
+    
+    return self;
+}
+
+
+#pragma mark - Getter
+- (WKWebView *)wkWebView {
+    if (!_wkWebView) {
+        _wkWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame) - 45 - JhtSafeAreaInsetsBottom)];
+        
+        _wkWebView.UIDelegate = self;
+        _wkWebView.navigationDelegate = self;
+        _wkWebView.allowsBackForwardNavigationGestures = YES;
+//        WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
+//        config.preferences.minimumFontSize = 0.0f;
+#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_10_3
+        if (@available(iOS 11.0, *)) {
+            _wkWebView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+            _wkWebView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
+            _wkWebView.scrollView.scrollIndicatorInsets = _wkWebView.scrollView.contentInset;
+        }
+#endif
+    }
+    
+    return _wkWebView;
+}
+
+- (UIButton *)otherOpenButton {
+    if (!_otherOpenButton) {
+        _otherOpenButton = [UIButton buttonWithType:UIButtonTypeCustom];
+        
+        NSDictionary *dic = [JhtDefaultManager getConfigDataWithType:JhtDefaultType_OtherOpenButtonParam];
+        
+        _otherOpenButton.frame = CGRectMake(0, CGRectGetHeight(self.frame) - 45 - JhtSafeAreaInsetsBottom, CGRectGetWidth(self.frame), 45);
+        _otherOpenButton.titleLabel.font = [UIFont systemFontOfSize:[dic[@"titleFont"] floatValue]];
+        [_otherOpenButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
+        [_otherOpenButton setTitle:dic[@"title_Normal"] forState:UIControlStateNormal];
+        [_otherOpenButton setTitle:dic[@"title_Hlighted"] forState:UIControlStateHighlighted];
+        _otherOpenButton.backgroundColor = UIColorFromRGB(0x265A6C);
+        
+        [_otherOpenButton addTarget:self action:@selector(dwvPresentOptionsMenu) forControlEvents:UIControlEventTouchUpInside];
+    }
+    
+    return _otherOpenButton;
+}
+
+#pragma mark Getter Method
+/** 显示@"用其他应用打开"打开的菜单栏 */
+- (void)dwvPresentOptionsMenu {
+    [_documentController presentOptionsMenuFromRect:self.bounds inView:self.superview animated:YES];
+}
+
+
+#pragma mark - Setter
+- (void)setOtherOpenButtonParamModel:(OtherOpenButtonParamModel *)otherOpenButtonParamModel {
+    _otherOpenButtonParamModel = otherOpenButtonParamModel;
+    
+    if (!CGRectEqualToRect(_otherOpenButtonParamModel.btnFrame, CGRectZero)) {
+        self.otherOpenButton.frame = _otherOpenButtonParamModel.btnFrame;
+    }
+    if (_otherOpenButtonParamModel.backgroundColor) {
+        self.otherOpenButton.backgroundColor = _otherOpenButtonParamModel.backgroundColor;
+    }
+    
+    self.otherOpenButton.hidden = _otherOpenButtonParamModel.isHiddenBtn;
+    if (self.otherOpenButton.hidden) {
+        self.wkWebView.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame));
+        
+    } else {
+        self.wkWebView.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame) - 45 - JhtSafeAreaInsetsBottom);
+    }
+    
+    if (_otherOpenButtonParamModel.title_Normal) {
+        [self.otherOpenButton setTitle:_otherOpenButtonParamModel.title_Normal forState:UIControlStateNormal];
+    }
+    if (_otherOpenButtonParamModel.titleColor_Normal) {
+        [self.otherOpenButton setTitleColor:_otherOpenButtonParamModel.titleColor_Normal forState:UIControlStateNormal];
+    }
+    if (_otherOpenButtonParamModel.title_Hlighted) {
+        [self.otherOpenButton setTitle:_otherOpenButtonParamModel.title_Hlighted forState:UIControlStateHighlighted];
+    }
+    if (_otherOpenButtonParamModel.titleColor_Hlighted) {
+        [self.otherOpenButton setTitleColor:_otherOpenButtonParamModel.titleColor_Hlighted forState:UIControlStateHighlighted];
+    }
+    
+    if (_otherOpenButtonParamModel.titleFont) {
+        self.otherOpenButton.titleLabel.font = _otherOpenButtonParamModel.titleFont;
+    }
+    
+    if (_otherOpenButtonParamModel.cornerRadius) {
+        self.otherOpenButton.layer.cornerRadius = _otherOpenButtonParamModel.cornerRadius;
+    }
+}
+
+- (void)setFilePath:(NSString *)filePath {
+    _filePath = filePath;
+    // 赋值
+    NSURL *url = [NSURL fileURLWithPath:filePath];
+    
+#if __IPHONE_OS_VERSION_MAX_ALLOWED <= 90000
+    // iOS9. One year later things are OK.
+//    [self.wkWebView loadFileURL:url allowingReadAccessToURL:url];
+//    [self.wkWebView loadData:data MIMEType:url textEncodingName:@"UTF-8" baseURL:nil];
+        NSString *lastName =[[url lastPathComponent] lowercaseString];
+        if ([lastName containsString:@".txt"]) {
+        //如果为UTF8格式的则body不为空
+            NSString *body =[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
+     //如果不是 则进行GBK编码再解码一次
+            if (!body) {
+                body =[NSString stringWithContentsOfURL:url encoding:0x80000632 error:nil];
+            }
+            //不行用GB18030编码再解码一次
+            if (!body) {
+                body =[NSString stringWithContentsOfURL:url encoding:0x80000631 error:nil];
+            }
+            if (body) {
+                body =[body stringByReplacingOccurrencesOfString:@"\n" withString:@"<br/>"];//替换换行符为HTML换行符
+                [self.wkWebView loadHTMLString:body baseURL:nil];
+                return;
+            }
+            [self.wkWebView loadFileURL:url allowingReadAccessToURL:url];
+        }else{
+            NSURLRequest *request =[NSURLRequest requestWithURL:url];
+            [self.wkWebView loadFileURL:url allowingReadAccessToURL:url];
+        }
+    
+#else
+    // iOS8. Things can be workaround-ed
+//    NSURL *fileURL = [self dwvFileURLForBuggyWKWebView:url];
+//    NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
+//    [self.wkWebView loadRequest:request];
+    NSURL *fileURL = [self dwvFileURLForBuggyWKWebView:url];
+    NSString *lastName =[[url lastPathComponent] lowercaseString];
+        if ([lastName containsString:@".txt"]) {
+        //如果为UTF8格式的则body不为空
+            NSString *body =[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
+     //如果不是 则进行GBK编码再解码一次
+            if (!body) {
+                body =[NSString stringWithContentsOfURL:url encoding:0x80000632 error:nil];
+            }
+            //不行用GB18030编码再解码一次
+            if (!body) {
+                body =[NSString stringWithContentsOfURL:url encoding:0x80000631 error:nil];
+            }
+            if (body) {
+                body =[body stringByReplacingOccurrencesOfString:@"\n" withString:@"<br/>"];//替换换行符为HTML换行符
+                [self.wkWebView loadHTMLString:body baseURL:nil];
+                return;
+            }
+            [self.wkWebView loadFileURL:url allowingReadAccessToURL:url];
+        }else{
+            NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
+            [self.wkWebView loadRequest:request];
+        }
+#endif
+
+    // 其他应用打开
+    _documentController.URL = [NSURL fileURLWithPath:filePath];
+}
+
+#pragma mark Setter Method
+/** 将文件copy到temp目录 ~~~ WKWebView */
+- (NSURL *)dwvFileURLForBuggyWKWebView:(NSURL *)fileURL {
+    NSError *error = nil;
+    if (!fileURL.fileURL || ![fileURL checkResourceIsReachableAndReturnError:&error]) {
+        return nil;
+    }
+    // Create "/temp/www" directory
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    NSURL *temDirURL = [[NSURL fileURLWithPath:NSTemporaryDirectory()] URLByAppendingPathComponent:@"www"];
+    [fileManager createDirectoryAtURL:temDirURL withIntermediateDirectories:YES attributes:nil error:&error];
+    
+    NSURL *dstURL = [temDirURL URLByAppendingPathComponent:fileURL.lastPathComponent];
+    // Now copy given file to the temp directory
+    [fileManager removeItemAtURL:dstURL error:&error];
+    [fileManager copyItemAtURL:fileURL toURL:dstURL error:&error];
+    // Files in "/temp/www" ld flawlesly :)
+    
+    return dstURL;
+}
+
+
+#pragma mark - UIDocumentInteractionControllerDelegate
+- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller {
+    // 获取view所在的viewController
+    return [self dwvGetViewController];
+}
+
+- (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller {
+    return self.superview;
+}
+
+- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller {
+    return self.superview.frame;
+}
+
+/** 点击预览窗口的“Done”(完成)按钮时调用 */
+- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller {
+}
+
+
+#pragma mark UIDocumentInteractionControllerDelegate Sel
+/** 获取view所在的viewController */
+- (UIViewController *)dwvGetViewController {
+    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 - WKUIDelegate
+/** 创建一个新的WebVeiw */
+- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures {
+    return nil;
+}
+
+/** WebVeiw关闭(9.0中的新方法) */
+- (void)webViewDidClose:(WKWebView *)webView NS_AVAILABLE(10_11, 9_0) {
+    
+}
+
+/** 显示一个JS的Alert(与JS交互) */
+- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler {
+    
+}
+
+/** 弹出一个输入框(与JS交互的) */
+- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(nullable NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * __nullable result))completionHandler {
+    
+}
+
+/** 显示一个确认框(JS的) */
+- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL result))completionHandler {
+    
+}
+
+
+#pragma mark - WKNavigationDelegate
+/** 页面开始加载时调用 */
+- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
+    [self dwvAddLoadingView];
+}
+
+/** 当内容开始返回时调用 */
+- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
+    
+}
+
+/** 页面加载完成之后调用 */
+- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
+    [self dwvRemoveLoadingView];
+}
+
+/** 页面加载失败时调用 */
+- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(nonnull NSError *)error {
+    [self dwvRemoveLoadingView];
+}
+
+/*
+ // 接收到服务器跳转请求之后再执行
+ - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)  navigation {
+ 
+ }
+ 
+ // 在收到响应后,决定是否跳转
+ - (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler {
+ 
+ }
+ 
+ // 在发送请求之前,决定是否跳转
+ - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
+ 
+ }
+ */
+
+#pragma mark WKNavigationDelegate Method
+/** 添加@“本地文件加载中...”View */
+- (void)dwvAddLoadingView {
+    // 背景View
+    CGFloat loadingViewWidth = (10 + 10 + 140);
+    UIView *loadingView = [[UIView alloc] initWithFrame:CGRectMake(([UIScreen mainScreen].bounds.size.width - loadingViewWidth) / 2.0, ([UIScreen mainScreen].bounds.size.height - 22 - [[UIApplication sharedApplication] statusBarFrame].size.height - 44) / 2.0, loadingViewWidth, 22)];
+    
+    loadingView.tag = 100;
+    [self addSubview:loadingView];
+    
+    // 加载菊花
+    UIActivityIndicatorView *loadingActivityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
+    loadingActivityIndicator.frame = CGRectMake(0, (CGRectGetHeight(loadingView.frame) - 10) / 2.0, 10, 10);
+    [loadingActivityIndicator startAnimating];
+    [loadingView addSubview:loadingActivityIndicator];
+    
+    // 文字label
+    UILabel *loadingLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(loadingActivityIndicator.frame) + 10, 0, 140, 22)];
+    loadingLabel.text = @"本地文件加载中...";
+    loadingLabel.textColor = [UIColor colorWithRed:0.47f green:0.47f blue:0.47f alpha:1.00f];
+    loadingLabel.textAlignment = NSTextAlignmentCenter;
+    [loadingView addSubview:loadingLabel];
+}
+
+/** 移除@"本地文件加载中..."View */
+- (void)dwvRemoveLoadingView {
+    UIView *loadingView = [self viewWithTag:100];
+    [loadingView removeFromSuperview];
+}
+
+
+@end

+ 27 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtDownTipsDumpingView.h

@@ -0,0 +1,27 @@
+//
+//  JhtDownTipsDumpingView.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/11.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class JhtShowDumpingViewParamModel;
+
+/** 下滑提示View */
+@interface JhtDownTipsDumpingView : UIView
+
+#pragma mark - Public Method
+/** show
+ *  view: 动画 父View
+ *  text: 动画展示 文字
+ *  model: 提示框 相关参数model
+ */
++ (void)showWithFView:(UIView *)view text:(NSString *)text showDumpingViewParamModel:(JhtShowDumpingViewParamModel *)model;
+
+
+@end

+ 145 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtDownTipsDumpingView.m

@@ -0,0 +1,145 @@
+//
+//  JhtDownTipsDumpingView.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/11.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtDownTipsDumpingView.h"
+#import "JhtShowDumpingViewParamModel.h"
+
+@interface JhtDownTipsDumpingView ()
+
+/** 阻尼动画下滑的label */
+@property (nonatomic, strong) UILabel *dumpLabel;
+/** 提示框model相关参数 */
+@property (nonatomic, strong) JhtShowDumpingViewParamModel *paramModel;
+
+@end
+
+
+@implementation JhtDownTipsDumpingView
+
+#pragma mark - Public Method
++ (void)showWithFView:(UIView *)view text:(NSString *)text showDumpingViewParamModel:(JhtShowDumpingViewParamModel *)model {
+    CGRect frame = model.showViewFrame;
+    frame.origin.y -= model.showViewFrame.size.height;
+    JhtDownTipsDumpingView *dump = [[JhtDownTipsDumpingView alloc] initWithFrame:frame withFView:view withText:text withShowDumpingViewModelParam:model];
+    [view addSubview:dump];
+    
+    // 开始动画
+    [dump startDampingAnimation:0.3];
+}
+
+
+#pragma mark - Priavte Method
+/** 初始化
+ *  view: 动画 父View
+ *  text: 动画展示 文字
+ *  model: 提示框 相关参数model
+ */
+- (id)initWithFrame:(CGRect)frame withFView:(UIView *)view withText:(NSString *)text withShowDumpingViewModelParam:(JhtShowDumpingViewParamModel *)model {
+    self = [super initWithFrame:frame];
+    
+    if (self) {
+        self.paramModel = model;
+        self.backgroundColor = self.paramModel.showBackgroundColor;
+        self.layer.masksToBounds = YES;
+        self.layer.cornerRadius = 5;
+        
+        // 设置背景图片
+        if (self.paramModel.showBackgroundImageName.length) {
+            UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(frame), CGRectGetHeight(frame))];
+            [self addSubview:bgImageView];
+            
+            // 背景图片
+            if ([self.paramModel.showBackgroundImageName isEqualToString:@"dumpView"]) {
+                // buddle中默认的图
+                NSString *imagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"JhtDocViewer.bundle/images/dumpView"];
+                bgImageView.image = [UIImage imageWithContentsOfFile:imagePath];
+                
+            } else {
+                bgImageView.image = [UIImage imageNamed:self.paramModel.showBackgroundImageName];
+            }
+        }
+        
+        // 设置前面警示图标
+        if (!self.paramModel.isHiddenFormerWarningIcon) {
+            UIImageView *warningIcon = [[UIImageView alloc] initWithFrame:self.paramModel.formerWarningIconFrame];
+            [self addSubview:warningIcon];
+            // buddle中默认的图
+            NSString *imagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"JhtDocViewer.bundle/images/network_lost"];
+            warningIcon.image = [UIImage imageWithContentsOfFile:imagePath];
+        }
+        
+        // 设置文字
+        self.dumpLabel.frame = self.paramModel.showLabelFrame;
+        self.dumpLabel.text = text;
+        [self addSubview:self.dumpLabel];
+    }
+    
+    return self;
+}
+
+/** 开始动画阻尼动画
+ *  duration: 动画时间
+ */
+- (void)startDampingAnimation:(NSTimeInterval)duration {
+    // 弹簧弹动效果动画 Damping: 阻尼 Velocity: 速度
+    CGRect frame = self.frame;
+    frame.origin.y += self.paramModel.showViewFrame.size.height;
+    [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.7 initialSpringVelocity:0.4 options:UIViewAnimationOptionCurveEaseIn animations:^{
+        // 动画过程中
+        self.frame = frame;
+        
+    } completion:^(BOOL finished) {
+        // 停留几秒
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            [self dismissWithAnimation:0.25 isAnimation:YES];
+        });
+    }];
+}
+
+/** 关闭阻尼动画
+ *  duration: 动画时间
+ *  isAnimation: 是否进行动画,NO: 直接关闭
+ */
+- (void)dismissWithAnimation:(NSTimeInterval)duration isAnimation:(BOOL)isAnimation {
+    CGRect frame = self.frame;
+    frame.origin.y -= self.paramModel.showViewFrame.size.height;
+    if (isAnimation) {
+        [UIView animateWithDuration:0.3 animations:^{
+            self.frame = frame;
+        }completion:^(BOOL finished) {
+            [self removeFromSuperview];
+        }];
+        
+    } else {
+        self.frame = frame;
+        [self removeFromSuperview];
+    }
+}
+
+
+#pragma mark - Getter
+- (UILabel *)dumpLabel {
+    if (!_dumpLabel) {
+        // 下拉View中的显示的label
+        _dumpLabel = [[UILabel alloc] init];
+        
+        _dumpLabel.font = self.paramModel.showTextFont;
+        _dumpLabel.textColor = self.paramModel.showTextColor;
+        _dumpLabel.layer.masksToBounds = YES;
+        _dumpLabel.backgroundColor = [UIColor clearColor];
+        _dumpLabel.textAlignment = self.paramModel.showTextAlignment;
+    }
+    
+    return _dumpLabel;
+}
+
+
+@end

+ 64 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtShowDumpingViewParamModel/JhtShowDumpingViewParamModel.h

@@ -0,0 +1,64 @@
+//
+//  JhtShowDumpingViewParamModel.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/11.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+/** 展示文字label的高度 */
+static const NSInteger KSDPMShowLabelHeight = 25;
+
+
+/** 下滑提示框配置参数model */
+@interface JhtShowDumpingViewParamModel : NSObject
+
+#pragma mark - property
+#pragma mark optional
+/** 提示框下拉整体坐标 
+ *  default: CGRectMake(0, 0, FrameW, 65)
+ */
+@property (nonatomic, assign) CGRect showViewFrame;
+
+/** 提示框背景颜色
+ *  default: [UIColor whiteColor]
+ */
+@property (nonatomic, strong) UIColor *showBackgroundColor;
+/** 提示框背景图片
+ *  default: [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"JhtDocViewer.bundle/images/dumpView"]
+ */
+@property (nonatomic, strong) NSString *showBackgroundImageName;
+
+/** 是否隐藏前面警示
+ *  default: NO
+ */
+@property (nonatomic, assign) BOOL isHiddenFormerWarningIcon;
+/** 前面警示图标 坐标
+ *  default: CGRectMake(15, (_paramModel.showViewFrame.size.height - 35) + ((showLabelHeight - 20) / 2.0), 20, 20)
+ */
+@property (nonatomic, assign) CGRect formerWarningIconFrame;
+
+/** 提示框 文字 label坐标
+ *  default: CGRectMake(CGRectGetMaxX(_paramModel.showNetLostImageViewRect) + 8, _paramModel.showViewFrame.size.height - 35, _paramModel.showViewFrame.size.width - (CGRectGetMaxX(_paramModel.showNetLostImageViewRect) + 8) * 2, showLabelHeight)
+ */
+@property (nonatomic, assign) CGRect showLabelFrame;
+/** 提示框文字颜色 
+ *  default: UIColorFromRGB(0x666666)
+ */
+@property (nonatomic, strong) UIColor *showTextColor;
+/** 提示框文字字号大小
+ *  default: [UIFont boldSystemFontOfSize:15]
+ */
+@property (nonatomic, strong) UIFont *showTextFont;
+/** 提示文字位置属性
+ *  default: NSTextAlignmentLeft
+ */
+@property (nonatomic, assign) NSTextAlignment showTextAlignment;
+
+
+@end

+ 17 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownTipsDumpingView/JhtShowDumpingViewParamModel/JhtShowDumpingViewParamModel.m

@@ -0,0 +1,17 @@
+//
+//  JhtShowDumpingViewParamModel.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/11.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtShowDumpingViewParamModel.h"
+
+@implementation JhtShowDumpingViewParamModel
+
+
+@end

+ 63 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownloadView/JhtDownloadView.h

@@ -0,0 +1,63 @@
+//
+//  JhtDownloadView.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/5.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class JhtFileModel;
+
+/** 展示下载 View */
+@interface JhtDownloadView : UIView
+
+#pragma mark - property
+#pragma mark optional
+/** 文件类型图片 */
+@property (nonatomic, strong) UIImageView *iconFileImageView;
+/** 文件名称 Label */
+@property (nonatomic, strong) UILabel *iconFileDescribeLabel;
+
+/** 下载进度文案 Label */
+@property (nonatomic, strong) UILabel *downloadingStateLabel;
+/** 下载进度条填充颜色
+ *  default: UIColorFromRGB(0x61CBF5)
+ */
+@property (nonatomic, strong) UIColor *downloadProgressTintColor;
+/** 进度条 */
+@property (nonatomic, strong) UIProgressView *fileProgressView;
+
+/** 关闭按钮 */
+@property (nonatomic, strong) UIButton *closeBtn;
+/** 下载按钮 */
+@property (nonatomic, strong) UIButton *downloadBtn;
+
+/** 文件正在下载中的提示语
+ *  default: @"玩命加载中..."
+ */
+@property (nonatomic, strong) NSString *downloadingHint;
+/** 无网络连接提示语 
+ *  default: @"当前网络暂不可用,请检查网络设置"
+ */
+@property (nonatomic, strong) NSString *lostNetHint;
+
+
+#pragma mark - Public Method
+/** 初始化
+ *  downloadingHint: 文件正在下载 提示语
+ *  lostNetHint: 无网络连接 提示语
+ *  downloadProgressTintColor: 下载进度条 颜色
+ *  model: 用于下载 文件model
+ */
+- (id)initWithFrame:(CGRect)frame downloadingHint:(NSString *)downloadingHint lostNetHint:(NSString *)lostNetHint downloadProgressTintColor:(UIColor *)downloadProgressTintColor fileModel:(JhtFileModel *)model;
+
+typedef void(^clickBlock)(NSInteger index);
+/** 点击按钮回调的block 0: 重新加载,1: 点击关闭 */
+- (void)clickBtnBlock:(clickBlock)block;
+
+
+@end

+ 228 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtDownloadView/JhtDownloadView.m

@@ -0,0 +1,228 @@
+
+//
+//  JhtDownloadView.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/1/5.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtDownloadView.h"
+#import "JhtFileModel.h"
+#import "JhtDefaultManager.h"
+#import "JhtDownloadRequest.h"
+#import "JhtDocViewer_Define.h"
+#import "JhtNetworkCheckTools.h"
+
+@interface JhtDownloadView() {
+    // 点击按钮回调的block 0: 重新加载,1: 点击关闭
+    clickBlock _block;
+}
+/** 下载文件的model */
+@property (nonatomic, strong) JhtFileModel *currentFileModel;
+
+@end
+
+
+@implementation JhtDownloadView
+
+#pragma mark - Public Method
+- (id)initWithFrame:(CGRect)frame downloadingHint:(NSString *)downloadingHint lostNetHint:(NSString *)lostNetHint downloadProgressTintColor:(UIColor *)downloadProgressTintColor fileModel:(JhtFileModel *)model {
+    self = [super initWithFrame:frame];
+    
+    if (self) {
+        self.downloadProgressTintColor = downloadProgressTintColor;
+        self.downloadingHint = downloadingHint;
+        self.lostNetHint = lostNetHint;
+        self.currentFileModel = model;
+        
+        // 文件类型图片
+        [self addSubview:self.iconFileImageView];
+        // 文件名称
+        [self addSubview:self.iconFileDescribeLabel];
+        // 进度条
+        [self addSubview:self.fileProgressView];
+        // 关闭按钮
+        [self addSubview:self.closeBtn];
+        // 下载按钮
+        [self addSubview:self.downloadBtn];
+        // 下载进度文案label
+        [self addSubview:self.downloadingStateLabel];
+        
+        // 初始化相关参数
+        [self ldvInitParam];
+    }
+    
+    return self;
+}
+
+- (void)clickBtnBlock:(clickBlock)block {
+    _block = block;
+}
+
+
+#pragma mark - Private Method
+/** 初始化相关参数 */
+- (void)ldvInitParam {
+    NSString *fileIconName = @"";
+    if (self.currentFileModel.viewFileType == Type_Docx) {
+        fileIconName = @"word.png";
+    } else if (self.currentFileModel.viewFileType == Type_Xlsx) {
+        fileIconName = @"excel.png";
+    } else if (self.currentFileModel.viewFileType == Type_Pptx) {
+        fileIconName = @"ppt.png";
+    } else if (self.currentFileModel.viewFileType == Type_Pdf) {
+        fileIconName = @"pdf.png";
+    } else if (self.currentFileModel.viewFileType == Type_Txt) {
+        fileIconName = @"txt.png";
+    } else {
+        fileIconName = @"unknow.png";
+    }
+    
+    // 文件类型图片
+    self.iconFileImageView.frame = CGRectMake((CGRectGetWidth(self.frame) - 100) / 2.f, 65.f, 100.f, 100.f);
+    NSString *fileTypeImagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"JhtDocViewer.bundle/images/%@", fileIconName]];
+    self.iconFileImageView.image = [UIImage imageWithContentsOfFile:fileTypeImagePath];
+    
+    // 计算文件大小
+    CGSize filesize = [self.currentFileModel.fileName boundingRectWithSize:CGSizeMake(CGRectGetWidth(self.frame) - 90, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16.0]} context:nil].size;
+    CGFloat describeHeight = filesize.height;
+    
+    // 文件名称
+    self.iconFileDescribeLabel.frame = CGRectMake(45, CGRectGetMaxY(_iconFileImageView.frame) + 25, CGRectGetWidth(self.frame) - 90, describeHeight);
+    self.iconFileDescribeLabel.text = self.currentFileModel.fileName;
+    
+    // 下载条
+    self.fileProgressView.frame = CGRectMake(45 / 2.0, CGRectGetMaxY(self.iconFileDescribeLabel.frame) + 29, CGRectGetWidth(self.frame) - (45 / 2.0 * 2 + 5 / 2.0 + 20), 10);
+    CGAffineTransform transform = CGAffineTransformMakeScale(1.0f, 3.0f);
+    // 更改进度条 高度
+    _fileProgressView.transform = transform;
+    
+    // 关闭按钮
+    self.closeBtn.frame = CGRectMake(CGRectGetMaxX(self.fileProgressView.frame), CGRectGetMaxY(self.iconFileDescribeLabel.frame) + 19, 20, 20);
+    
+    // 下载进度文案label
+    self.downloadingStateLabel.text = self.downloadingHint;
+    [self.downloadingStateLabel sizeToFit];
+    self.downloadingStateLabel.frame = CGRectMake(0, CGRectGetMaxY(self.iconFileDescribeLabel.frame) + 29 + 19, CGRectGetWidth(self.frame), CGRectGetHeight(_downloadingStateLabel.frame));
+
+    // 重试按钮
+    self.downloadBtn.frame = CGRectMake((CGRectGetWidth(self.frame) - 110.f) / 2.f, CGRectGetMaxY(_downloadingStateLabel.frame) + 10, 110, 30);
+    [self.downloadBtn setTitle:[NSString stringWithFormat:@"下载 %@", self.currentFileModel.fileSize] forState:UIControlStateNormal];
+}
+
+
+#pragma mark - Getter
+- (UIImageView *)iconFileImageView {
+    if (!_iconFileImageView) {
+        _iconFileImageView = [[UIImageView alloc] init];
+    }
+    
+    return _iconFileImageView;
+}
+
+- (UILabel *)iconFileDescribeLabel {
+    if (!_iconFileDescribeLabel) {
+        _iconFileDescribeLabel = [[UILabel alloc] init];
+        
+        _iconFileDescribeLabel.textAlignment = NSTextAlignmentCenter;
+        _iconFileDescribeLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
+        _iconFileDescribeLabel.font = [UIFont systemFontOfSize:16.f];
+        _iconFileDescribeLabel.textColor = UIColorFromRGB(0x333333);
+        _iconFileDescribeLabel.numberOfLines = 0;
+    }
+    
+    return _iconFileDescribeLabel;
+}
+
+- (UILabel *)downloadingStateLabel {
+    if (!_downloadingStateLabel) {
+        _downloadingStateLabel = [[UILabel alloc] initWithFrame:CGRectZero];
+        
+        _downloadingStateLabel.text = self.downloadingHint;
+        _downloadingStateLabel.font = [UIFont systemFontOfSize:14.f];
+        _downloadingStateLabel.textColor = UIColorFromRGB(0x808080);
+        _downloadingStateLabel.textAlignment = NSTextAlignmentCenter;
+    }
+    
+    return _downloadingStateLabel;
+}
+
+- (UIColor *)downloadProgressTintColor {
+    return _downloadProgressTintColor ? _downloadProgressTintColor : UIColorFromRGB(0x61CBF5);
+}
+
+- (UIProgressView *)fileProgressView {
+    if (!_fileProgressView) {
+        _fileProgressView = [[UIProgressView alloc] init];
+        
+        [_fileProgressView setProgressViewStyle:UIProgressViewStyleDefault];
+        _fileProgressView.progressTintColor = self.downloadProgressTintColor;
+        _fileProgressView.layer.masksToBounds = YES;
+        _fileProgressView.layer.cornerRadius = 2.f;
+        _fileProgressView.hidden = YES;
+    }
+    
+    return _fileProgressView;
+}
+
+- (UIButton *)closeBtn {
+    if (!_closeBtn) {
+        _closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+        
+        NSString *closeImagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"JhtDocViewer.bundle/images/close"];
+        UIImage *closeBtnImage = [UIImage imageWithContentsOfFile:closeImagePath];
+        [_closeBtn setImage:closeBtnImage forState:UIControlStateNormal];
+        [_closeBtn addTarget:self action:@selector(ldvTwoBtnClick:) forControlEvents:UIControlEventTouchUpInside];
+        _closeBtn.hidden = YES;
+        _closeBtn.tag = 201;
+    }
+    
+    return _closeBtn;
+}
+
+- (UIButton *)downloadBtn {
+    if (!_downloadBtn) {
+        _downloadBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+        
+        _downloadBtn.backgroundColor = UIColorFromRGB(0x61cbf5);
+        [_downloadBtn setTitle:@"下载" forState:UIControlStateNormal];
+        _downloadBtn.titleLabel.font = [UIFont systemFontOfSize:15.f];
+        [_downloadBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
+        _downloadBtn.layer.cornerRadius = 3.f;
+        _downloadBtn.tag = 200;
+        _downloadBtn.layer.masksToBounds = YES;
+        [_downloadBtn addTarget:self action:@selector(ldvTwoBtnClick:) forControlEvents:UIControlEventTouchUpInside];
+//        _downloadBtn.hidden = YES;
+    }
+    
+    return _downloadBtn;
+}
+
+- (NSString *)downloadingHint {
+    if ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_None) {
+        return self.lostNetHint;
+        
+    } else {
+        NSDictionary *dic = [JhtDefaultManager getConfigDataWithType:JhtDefaultType_LoadDocViewParam];
+        return _downloadingHint.length > 0 ? _downloadingHint : dic[@"downloadingHint"];
+    }
+}
+
+- (NSString *)lostNetHint {
+    NSDictionary *dic = [JhtDefaultManager getConfigDataWithType:JhtDefaultType_LoadDocViewParam];
+    return _lostNetHint.length > 0 ? _lostNetHint : dic[@"lostNetHint"];
+}
+
+
+#pragma mark Getter Method
+/** 点击按钮触发 */
+- (void)ldvTwoBtnClick:(UIButton *)btn {
+    _block(btn.tag - 200);
+}
+
+
+@end

+ 47 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtLoadDocView/JhtLoadDocView.h

@@ -0,0 +1,47 @@
+//
+//  JhtLoadDocView.h
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/10/19.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class WKWebView;
+@class JhtFileModel;
+@class JhtDocFileOperations;
+@class JhtLoadDocViewParamModel;
+@class OtherOpenButtonParamModel;
+@class JhtShowDumpingViewParamModel;
+
+/** 文本加载 View */
+@interface JhtLoadDocView : UIView
+
+#pragma mark - property(optional)
+/** 加载Doc的webView */
+@property (nonatomic, strong, readonly) WKWebView *wkWebView;
+
+/** otherOpenButton 配置Model */
+@property (nonatomic, strong) OtherOpenButtonParamModel *otherOpenButtonParamModel;
+
+
+#pragma mark - Public Method
+/** 初始化
+ *  fileModel: 当前 文件model
+ *  errorFView: errorView 父View(一般为self.navigationController.view)
+ *  loadDocViewParamModel: loadDocView 配置Model(内部均有default值,可为nil)
+ *  showDumpingViewParamModelparamModel: showDumpingView 配置Model(内部均有default值,可为nil)
+ *  otherOpenButtonParamModel: otherOpenButton 配置Model(内部均有default值,可为nil)
+ */
+- (instancetype)initWithFrame:(CGRect)frame fileModel:(JhtFileModel *)fileModel showErrorViewOfFatherView:(UIView *)errorFView loadDocViewParamModel:(JhtLoadDocViewParamModel *)loadDocViewParamModel showDumpingViewParamModel:(JhtShowDumpingViewParamModel *)showDumpingViewParamModel otherOpenButtonParamModel:(OtherOpenButtonParamModel *)otherOpenButtonParamModel;
+
+typedef void(^finishedDownloadCompletionHandler)(NSString *urlStr);
+/** 网络下载完成之后 本地存储的路径(NSUTF8StringEncoding) */
+- (void)finishedDownloadCompletionHandler:(finishedDownloadCompletionHandler)block;
+
+
+@end

+ 416 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/JhtDocViewer_SDK/View /JhtLoadDocView/JhtLoadDocView.m

@@ -0,0 +1,416 @@
+//
+//  JhtLoadDocView.m
+//  JhtDocViewerDemo
+//
+//  GitHub主页: https://github.com/jinht
+//  CSDN博客: http://blog.csdn.net/anticipate91
+//
+//  Created by Jht on 2017/10/19.
+//  Copyright © 2017年 JhtDocViewer. All rights reserved.
+//
+
+#import "JhtLoadDocView.h"
+#import "JhtFileModel.h"
+#import "JhtDocWebView.h"
+#import "JhtDownloadView.h"
+#import "JhtDefaultManager.h"
+#import "JhtDownloadRequest.h"
+#import "JhtDocViewer_Define.h"
+#import "JhtDocFileOperations.h"
+#import "JhtNetworkCheckTools.h"
+#import "JhtDownTipsDumpingView.h"
+#import "JhtLoadDocViewParamModel.h"
+#import "OtherOpenButtonParamModel.h"
+#import "JhtShowDumpingViewParamModel.h"
+
+@interface JhtLoadDocView () <UIAlertViewDelegate> {
+    finishedDownloadCompletionHandler _block;
+    
+    // 当前 文件model
+    JhtFileModel *_currentFileModel;
+    
+    // errorView 父View(一般为self.navigationController.view)
+    UIView *_errorFView;
+}
+/** 下载 View */
+@property (nonatomic, strong) JhtDownloadView *downloadView;
+/** 文件操作类 */
+@property (nonatomic, strong) JhtDocFileOperations *fileUtil;
+/** webView展示页 */
+@property (nonatomic, strong) JhtDocWebView *docWebView;
+/** 加载Doc的webView */
+@property (nonatomic, strong) WKWebView *wkWebView;
+/** 阻尼下拉动画View */
+@property (nonatomic, strong) UIView *dumpingView;
+
+/** JhtLoadDocView 配置Model */
+@property (nonatomic, strong) JhtLoadDocViewParamModel *loadDocViewParamModel;
+/** JhtShowDumpingView 配置Model */
+@property (nonatomic, strong) JhtShowDumpingViewParamModel *showDumpingViewParamModel;
+
+@end
+
+
+#define KB (1024)
+#define MB (KB * 1024)
+#define GB (MB * 1024)
+/** 状态栏 + 导航栏的高度 */
+#define KLDVStatusAndNavBarHeight (KStatusBarHeight + 44)
+
+@implementation JhtLoadDocView
+
+#pragma mark - Public Method
+- (instancetype)initWithFrame:(CGRect)frame fileModel:(JhtFileModel *)fileModel showErrorViewOfFatherView:(UIView *)errorFView loadDocViewParamModel:(JhtLoadDocViewParamModel *)loadDocViewParamModel showDumpingViewParamModel:(JhtShowDumpingViewParamModel *)showDumpingViewParamModel otherOpenButtonParamModel:(OtherOpenButtonParamModel *)otherOpenButtonParamModel {
+    self = [super initWithFrame:frame];
+    
+    if (self) {
+        _currentFileModel = fileModel;
+        _errorFView = errorFView;
+        self.loadDocViewParamModel = loadDocViewParamModel;
+        self.showDumpingViewParamModel = showDumpingViewParamModel;
+        self.otherOpenButtonParamModel = otherOpenButtonParamModel;
+        
+        // 创建文件工具类
+        [self ldvCreatefileUtil];
+        
+        // CreateUI
+        [self ldvCreateUI];
+        
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            // 清理几天前 downloadFilesPath && otherAppFilesPath 文件
+            [self.fileUtil cleanFileAfterDays:self.loadDocViewParamModel.daysAgo filePathArray:nil];
+        });
+    }
+    
+    return self;
+}
+
+- (void)finishedDownloadCompletionHandler:(finishedDownloadCompletionHandler)block {
+    _block = block;
+}
+
+
+#pragma mark - Private Method
+/** 创建文件工具类 */
+- (void)ldvCreatefileUtil {
+    _fileUtil = [JhtDocFileOperations sharedInstance];
+    _fileUtil.fileName = _currentFileModel.fileName;
+}
+
+#pragma mark UI
+/** CreateUI */
+- (void)ldvCreateUI {
+    // 设置背景颜色
+    self.backgroundColor = [UIColor whiteColor];
+    
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    NSString *filePath = [_fileUtil stitchLocalFilePath];
+    if (_currentFileModel.fileAbsolutePath) {
+        // 本地存在,直接创建WebView
+        [self ldvCreateWebView];
+        
+    } else if ([fileManager fileExistsAtPath:filePath]) {
+        // 如果存在,获取本地文件大小
+        CGFloat fileSize = [self ldvFileSizeForPath:filePath];
+        if ([_currentFileModel.attachmentFileSize floatValue] > fileSize) {
+            // 本地的附件文本大小 和 应该从网络下载的不一致
+            [_fileUtil removeFileWhenDownloadFileFailure];
+            // 生成下载页面
+            [self ldvCreateDownloadUI];
+            
+        } else {
+            // 本地存在,直接创建WebView
+            [self ldvCreateWebView];
+        }
+    } else {
+        // 本地不存在,应该先下载
+        [self ldvCreateDownloadUI];
+    }
+}
+
+/** 获取本地文件大小 */
+- (long long)ldvFileSizeForPath:(NSString *)filePath {
+    NSFileManager *manager = [NSFileManager defaultManager];
+    if ([manager fileExistsAtPath:filePath]) {
+        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
+    }
+    
+    return 0;
+}
+
+/** 生成下载页面 */
+- (void)ldvCreateDownloadUI {
+    // 下载文件View
+    self.downloadView = [[JhtDownloadView alloc] initWithFrame:CGRectMake(0, 0, FrameW, FrameH - KLDVStatusAndNavBarHeight) downloadingHint:self.loadDocViewParamModel.downloadingHint lostNetHint:self.loadDocViewParamModel.lostNetHint downloadProgressTintColor:self.loadDocViewParamModel.downloadProgressTintColor fileModel:_currentFileModel];
+    
+    __weak typeof(self) weakSelf = self;
+    // 点击block 0-重新加载,1-点击关闭
+    [self.downloadView clickBtnBlock:^(NSInteger index) {
+        if (index == 0) {
+            // 重新加载
+            [weakSelf ldvRetryClick];
+        } else {
+            // 点击关闭
+            [weakSelf ldvCloseClick];
+        }
+    }];
+    [self addSubview:self.downloadView];
+    
+    // 是否具备下载条件(网络 && 存储空间)
+    [self ldvJudgeDownloadConditions];
+}
+
+#pragma mark 判断是否具备下载条件(网络 && 存储空间)
+/** 判断是否具备下载条件(网络) */
+- (void)ldvJudgeDownloadConditions {
+    if ([self ldvCurrentFreeDiskSpaceToFileSize] < 0) {
+        // 内存不足
+        [self ldvShowDumpingView:self.loadDocViewParamModel.notEnoughMemoryHint];
+        self.downloadView.downloadBtn.hidden = NO;
+        
+    } else {
+        if (([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_2G) || ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_3G) || ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_4G)) {
+            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"下载流量提醒" message:@"当前处于非wifi环境,继续查看将会产生手机流量" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
+            
+            alert.tag = 123;
+            [alert show];
+            
+        } else if ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_None) {
+            // 没网啥都不做
+        } else {
+            // 开始下载
+            [self ldvDrawProgressUIForDowningFile];
+        }
+    }
+}
+
+/** 获取当前设备硬盘存储容量 与文件大小 做差 < 0 说明内存不足 */
+- (CGFloat)ldvCurrentFreeDiskSpaceToFileSize {
+    long long freeSpace = [[[[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil] objectForKey:NSFileSystemFreeSize] longLongValue];
+    // 去除200M左右保护空间
+    freeSpace -= (200 * 1024 * 1024);
+    
+    double bytes = 1.0 * freeSpace;
+    double kigabytes = bytes / KB;
+    double megabytes = bytes / MB;
+    double gigabytes = bytes / GB;
+    // Bytes,KB,MB,GB
+    if ([_currentFileModel.fileSize rangeOfString:@"KB"].length) {
+        return kigabytes - [[_currentFileModel.fileSize componentsSeparatedByString:@"KB"][0] floatValue];
+        
+    } else if ([_currentFileModel.fileSize rangeOfString:@"GB"].length) {
+        return gigabytes - [[_currentFileModel.fileSize componentsSeparatedByString:@"GB"][0] floatValue];
+        
+    } else if ([_currentFileModel.fileSize rangeOfString:@"MB"].length) {
+        return megabytes - [[_currentFileModel.fileSize componentsSeparatedByString:@"GB"][0] floatValue];
+        
+    } else if ([_currentFileModel.fileSize rangeOfString:@"Bytes"].length) {
+        return bytes - [[_currentFileModel.fileSize componentsSeparatedByString:@"Bytes"][0] floatValue];
+        
+    } else {
+        // 做的兼容处理,如果给的_currentFileModel.fileSize不符合规则,那么就不比较,直接返回1
+        return 1;
+    }
+}
+
+#pragma mark 绘制下载进度状况
+/** 绘制下载进度状况 */
+- (void)ldvDrawProgressUIForDowningFile {
+    self.downloadView.fileProgressView.hidden = NO;
+    self.downloadView.downloadingStateLabel.hidden = NO;
+    self.downloadView.closeBtn.hidden = NO;
+    self.downloadView.downloadBtn.hidden = YES;
+    
+    /** 下载文件功能
+     *  URLString: 要下载文件的URL
+     *  downloadFileProgress: 下载的进度条,百分比
+     *  setupFilePath: 设置下载的路径
+     *  downloadCompletionHandler: 下载完成后(下载完成后可拿到存储的路径)
+     */
+    [JhtDownloadRequest createDownloadFileWithURLString:_currentFileModel.url downloadFileProgress:^(NSProgress *downloadProgress) {
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [self.downloadView.fileProgressView setProgress:downloadProgress.fractionCompleted animated:YES];
+        });
+    } setupFilePath:^NSURL *(NSURLResponse *response) {
+        NSString *cachePath = [NSString stringWithFormat:@"%@", _currentFileModel.fileName];
+        NSString *filePath = [_fileUtil stitchDownloadFilePath];
+        BOOL isDir = NO;
+        NSFileManager *fileManager = [NSFileManager defaultManager];
+        BOOL existed = [fileManager fileExistsAtPath:filePath isDirectory:&isDir];
+        if (!(isDir == YES && existed == YES)) {
+            [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
+        }
+        NSString *localPath = [filePath stringByAppendingPathComponent:cachePath];
+        
+        return [NSURL fileURLWithPath:localPath];
+        
+    } downloadCompletionHandler:^(NSURL *filePath, NSError *error) {
+        NSLog(@"fileDownloadError ==> %@", error);
+        if (!error) {
+            self.downloadView.hidden = YES;
+            // 创建WebView
+            [self ldvCreateWebView];
+            // 网络下载成功,本地路径
+            NSString *pathUrl = [[_fileUtil stitchLocalFilePath] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+//            NSLog(@"pathUrl ===> %@\n\n\n%@", [_fileUtil stitchLocalFilePath], pathUrl);
+            // 本地路径
+            if (_block) {
+                _block(pathUrl);
+            }
+            
+            self.docWebView.hidden = NO;
+            
+        } else {
+            self.downloadView.hidden = NO;
+            self.downloadView.downloadingStateLabel.text = self.loadDocViewParamModel.downloadFailedHint;
+            self.downloadView.downloadBtn.hidden = NO;
+            
+            self.docWebView.hidden = YES;
+            // 文件下载失败时,清除文件路径
+            [_fileUtil removeFileWhenDownloadFileFailure];
+        }
+    }];
+}
+
+
+#pragma mark - WebView
+/** 创建WebView */
+- (void)ldvCreateWebView {
+    // 网络下载成功,本地路径
+    NSString *filePath = [_fileUtil stitchLocalFilePath];
+    // 非网络下载的路径
+    if (_currentFileModel.fileAbsolutePath) {
+        filePath = _currentFileModel.fileAbsolutePath;
+    }
+    
+    [self addSubview:self.docWebView];
+    self.docWebView.filePath = filePath;
+    self.docWebView.otherOpenButtonParamModel = self.otherOpenButtonParamModel;
+}
+
+
+#pragma mark - Getter
+- (JhtDocWebView *)docWebView {
+    if (!_docWebView) {
+        _docWebView = [[JhtDocWebView alloc] initWithFrame:CGRectMake(0, 0, FrameW, FrameH - KLDVStatusAndNavBarHeight)];
+    }
+    
+    return _docWebView;
+}
+
+- (WKWebView *)wkWebView {
+    return self.docWebView.wkWebView;
+}
+
+- (JhtLoadDocViewParamModel *)loadDocViewParamModel {
+    if (!_loadDocViewParamModel) {
+        _loadDocViewParamModel = [[JhtLoadDocViewParamModel alloc] init];
+    }
+    NSDictionary *dic = [JhtDefaultManager getConfigDataWithType:JhtDefaultType_LoadDocViewParam];
+    
+    _loadDocViewParamModel.lostNetHint = (_loadDocViewParamModel.lostNetHint.length > 0 ? _loadDocViewParamModel.lostNetHint : dic[@"lostNetHint"]);
+    _loadDocViewParamModel.notEnoughMemoryHint = (_loadDocViewParamModel.notEnoughMemoryHint.length > 0 ? _loadDocViewParamModel.notEnoughMemoryHint : dic[@"notEnoughMemoryHint"]);
+    
+    if ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_None) {
+        _loadDocViewParamModel.downloadingHint = _loadDocViewParamModel.lostNetHint;
+    } else {
+        _loadDocViewParamModel.downloadingHint = (_loadDocViewParamModel.downloadingHint.length > 0 ? _loadDocViewParamModel.downloadingHint : dic[@"downloadingHint"]);
+    }
+    
+    if ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_None) {
+        _loadDocViewParamModel.downloadFailedHint = _loadDocViewParamModel.lostNetHint;
+    } else {
+        _loadDocViewParamModel.downloadFailedHint = (_loadDocViewParamModel.downloadFailedHint.length > 0 ? _loadDocViewParamModel.downloadFailedHint : dic[@"downloadFailedHint"]);
+    }
+    
+    _loadDocViewParamModel.daysAgo = (_loadDocViewParamModel.daysAgo > [dic[@"daysAgo"] integerValue] ? _loadDocViewParamModel.daysAgo : [dic[@"daysAgo"] integerValue]);
+    _loadDocViewParamModel.downloadProgressTintColor = (_loadDocViewParamModel.downloadProgressTintColor ? _loadDocViewParamModel.downloadProgressTintColor : UIColorFromRGB(0x61CBF5));
+    
+    return _loadDocViewParamModel;
+}
+
+- (JhtShowDumpingViewParamModel *)showDumpingViewParamModel {
+    if (!_showDumpingViewParamModel) {
+        _showDumpingViewParamModel = [[JhtShowDumpingViewParamModel alloc] init];
+    }
+    _showDumpingViewParamModel.showViewFrame = (!CGRectEqualToRect(_showDumpingViewParamModel.showViewFrame, CGRectZero)) ? _showDumpingViewParamModel.showViewFrame : CGRectMake(0, 0, FrameW, 65);
+    
+    _showDumpingViewParamModel.showBackgroundColor = _showDumpingViewParamModel.showBackgroundColor ? _showDumpingViewParamModel.showBackgroundColor : [UIColor whiteColor];
+    _showDumpingViewParamModel.showBackgroundImageName = _showDumpingViewParamModel.showBackgroundImageName.length ? _showDumpingViewParamModel.showBackgroundImageName : @"dumpView";
+    
+    _showDumpingViewParamModel.formerWarningIconFrame = (!CGRectEqualToRect(_showDumpingViewParamModel.formerWarningIconFrame, CGRectZero)) ? _showDumpingViewParamModel.formerWarningIconFrame : CGRectMake(15, (_showDumpingViewParamModel.showViewFrame.size.height - 35) + ((KSDPMShowLabelHeight - 20) / 2.0), 20, 20);
+    
+    _showDumpingViewParamModel.showLabelFrame = (_showDumpingViewParamModel.showLabelFrame.size.height > 0 && _showDumpingViewParamModel.showLabelFrame.size.width > 0) ? _showDumpingViewParamModel.showLabelFrame : CGRectMake(CGRectGetMaxX(_showDumpingViewParamModel.formerWarningIconFrame) + 8, _showDumpingViewParamModel.showViewFrame.size.height - 35, _showDumpingViewParamModel.showViewFrame.size.width - (CGRectGetMaxX(_showDumpingViewParamModel.formerWarningIconFrame) + 8) * 2, KSDPMShowLabelHeight);
+    _showDumpingViewParamModel.showTextColor = _showDumpingViewParamModel.showTextColor ? _showDumpingViewParamModel.showTextColor : UIColorFromRGB(0x666666);
+    _showDumpingViewParamModel.showTextFont = _showDumpingViewParamModel.showTextFont ? _showDumpingViewParamModel.showTextFont : [UIFont boldSystemFontOfSize:15];
+    
+    return _showDumpingViewParamModel;
+}
+
+#pragma mark Getter Method
+/** 重新加载按钮触发方法 */
+- (void)ldvRetryClick {
+    if ([JhtNetworkCheckTools currentNetWork_Status] == NetWorkStatus_None) {
+        [self ldvShowDumpingView:self.loadDocViewParamModel.lostNetHint];
+        
+        // 改变下载过程中提示文字
+        self.downloadView.downloadingStateLabel.text = self.loadDocViewParamModel.downloadingHint;
+        // 隐藏进度条和关闭按钮
+        self.downloadView.fileProgressView.hidden = YES;
+        self.downloadView.closeBtn.hidden = YES;
+        
+        return;
+    }
+    
+    self.downloadView.downloadingStateLabel.text = self.loadDocViewParamModel.downloadingHint;
+    self.downloadView.downloadBtn.hidden = YES;
+    // 断是否具备下载条件(网络 && 存储空间)
+    [self ldvJudgeDownloadConditions];
+}
+
+/** 红色那个关闭点击事件 */
+- (void)ldvCloseClick {
+    [_fileUtil removeFileWhenDownloadFileFailure];
+    // 停止 下载文件
+    [JhtDownloadRequest stopDownloadFile];
+    self.downloadView.fileProgressView.progress = 0;
+}
+
+/** 展示弹框 */
+- (void)ldvShowDumpingView:(NSString *)title {
+    if (_errorFView) {
+        [JhtDownTipsDumpingView showWithFView:_errorFView text:title showDumpingViewParamModel:self.showDumpingViewParamModel];
+    }
+}
+
+
+#pragma mark - Setter
+- (void)setOtherOpenButtonParamModel:(OtherOpenButtonParamModel *)otherOpenButtonParamModel {
+    _otherOpenButtonParamModel = otherOpenButtonParamModel;
+    
+    self.docWebView.otherOpenButtonParamModel = _otherOpenButtonParamModel;
+}
+
+
+#pragma mark - UIAlertViewDelegate
+- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
+    if (alertView.tag == 123) {
+        if (buttonIndex == 1) {
+            // 开始下载
+            [self ldvDrawProgressUIForDowningFile];
+            
+        } else {
+            // 展示下载
+            self.downloadView.hidden = NO;
+            self.downloadView.fileProgressView.hidden = YES;
+            self.downloadView.closeBtn.hidden = YES;
+            self.downloadView.downloadBtn.hidden = NO;
+            self.downloadView.downloadingStateLabel.hidden = NO;
+            self.downloadView.downloadingStateLabel.text = @"该文件暂不支持在线预览,请下载后查看";
+            self.docWebView.hidden = YES;
+        }
+    }
+}
+
+
+@end

+ 59 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayPluginSettings.h

@@ -0,0 +1,59 @@
+//
+//  UMSPluginSettings.h
+//  UMSPosPay
+//
+//  Created by chinaums on 15/10/19.
+//  Copyright © 2015年 ChinaUMS. All rights reserved.
+//
+
+//  sdk_version = 3.1.3
+
+#import <Foundation/Foundation.h>
+
+//1 是走apple 0是不走
+//#define SHOULD_CONTAIN_APPLE_PAY_CODES 0
+
+/*!
+ @enum
+ @abstract 交易环境
+ @constant UMSP_PROD 生产环境
+ @constant UMSP_TEST 测试环境
+ */
+typedef NS_ENUM(NSInteger, UMSPluginEnvironment) {
+    UMSP_PROD,
+    UMSP_TEST
+};
+
+/**
+ *  进入插件的方式
+ */
+typedef NS_ENUM(NSInteger, UMSPluginEnterType) {
+    ///默认方式
+    UMSPluginEnterType_Default,
+    ///C扫B方式
+    UMSPluginEnterType_ScanCode
+};
+
+
+@interface UMSPPPayPluginSettings : NSObject
+
++ (UMSPPPayPluginSettings *)sharedInstance;
+
+/*!
+ @property
+ @abstract 设置交易环境,默认UMSP_PROD
+ */
+@property (nonatomic, assign) UMSPluginEnvironment umspEnviroment;
+
+/**
+ *  进入插件方式,默认UMSPluginEnterType_Default
+ */
+@property (nonatomic, assign) UMSPluginEnterType umspEnterType;
+
+/*!
+ @property
+ @abstract 设置是否需要启动页,默认YES
+ */
+@property (nonatomic, assign) BOOL umspSplash;
+
+@end

+ 99 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayUnifyPayPlugin.h

@@ -0,0 +1,99 @@
+//
+//  UMSPPPayUnifyPayPlugin.h
+//  UMSPosPay
+//
+//  Created by SunXP on 17/4/25.
+//  Copyright © 2017年 ChinaUMS. All rights reserved.
+//
+
+//  sdk_version = 3.1.3
+
+#import <Foundation/Foundation.h>
+#import "WXApi.h"
+
+/**
+ *  支付渠道
+ *
+ *  @param CHANNEL_WEIXIN      微信支付
+ *  @param CHANNEL_ALIPAY      支付宝支付
+ *  @param CHANNEL_ALIMINIPAY  支付宝小程序支付
+ */
+FOUNDATION_EXTERN NSString *const CHANNEL_WEIXIN;
+FOUNDATION_EXTERN NSString *const CHANNEL_ALIPAY;
+FOUNDATION_EXTERN NSString *const CHANNEL_ALIMINIPAY;
+
+typedef void(^TransactionResultBlock)(NSString *resultCode,  NSString *resultInfo);
+
+@interface UMSPPPayUnifyPayPlugin : NSObject
+
+/**
+ *  商户下单支付接口
+ *
+ *  @param payChannel   支付渠道
+ *  @param payData       订单信息:appPayRequest对应的json字符串
+ *  @param callbackBlock 交易结果回调Block
+ */
++ (void)payWithPayChannel:(NSString *)payChannel payData:(NSString *)payData callbackBlock:(TransactionResultBlock)callbackBlock;
+
+/**
+ 云闪付下单接口
+
+ @param schemes url schemes
+ @param payData 订单信息:appPayRequest对应的json字符串
+ @param viewController 启动支付控件的viewController
+ @param callbackBlock 交易结果回调Block
+ */
++ (void)cloudPayWithURLSchemes:(NSString *)schemes
+                       payData:(NSString *)payData
+                viewController:(UIViewController *)viewController
+                 callbackBlock:(TransactionResultBlock)callbackBlock;
+
+/**
+ *  微信支付配置参数
+ *
+ *  @param appId   商户注册的微信支付appId
+ *  @param universalLink 微信开发者Universal Link
+  *  @return YES:成功 NO:失败
+ *  需在AppDelegate的didFinishLaunchingWithOptions方法中调用
+ */
++ (BOOL)registerApp:(NSString *)appId  universalLink:(NSString *)universalLink;
+
+/**
+ *  微信支付配置参数
+ *
+ *  @param url   App处理的openUrl
+ *  @param otherDelegate WXApiDelegate对象,用来接收微信触发的非本功能的消息。
+ *  @return YES:成功 NO:失败
+ *  需在AppDelegate中的方法中调用:
+ *  iOS9.0之前版本:- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
+ *                          - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
+ *  iOS9.0之后版本:- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
+ */
++ (BOOL)handleOpenURL:(NSURL *)url otherDelegate:(id<WXApiDelegate>)otherDelegate;
+
+/*! @brief 处理微信通过Universal Link启动App时传递的数据
+*
+* 需要在 application:continueUserActivity:restorationHandler:中调用。
+* @param userActivity 微信启动第三方应用时系统API传递过来的userActivity
+* @param otherDelegate  WXApiDelegate对象,用来接收微信触发的非本功能的消息。
+* 需在AppDelegate中的方法中调用:
+ 需要在 application:continueUserActivity:restorationHandler:中调用。
+* @return 成功返回YES,失败返回NO。
+ */
++(BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity otherDelegate:(id<WXApiDelegate>)otherDelegate API_AVAILABLE(ios(8.0));
+/**
+ 云闪付处理
+
+ @param url App处理的openUrl
+ @return YES:成功 NO:失败
+ */
++ (BOOL)cloudPayHandleOpenURL:(NSURL *)url;
+
+/**
+ 支付宝小程序处理
+
+ @param url App处理的openUrl
+ */
++ (void)aliMiniPayHandleOpenURL:(NSURL *)url;
+
+@end

+ 17 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/include/UMSPPPayVersionsInfo.h

@@ -0,0 +1,17 @@
+//
+//  libUMSVersionsInfo.h
+//  UMSPosPay
+//
+//  Created by diudiu on 16/6/28.
+//  Copyright © 2016年 ChinaUMS. All rights reserved.
+//
+
+//  sdk_version = 3.1.3
+
+#import <Foundation/Foundation.h>
+
+@interface UMSPPPayVersionsInfo : NSObject
+
++ (NSMutableDictionary *)getVersionsInfoForPosPayPlugin;
+
+@end

BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UMSPosPayOnly/libUMSPosPayOnly.a


+ 63 - 0
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UPPaymentControl/UPPaymentControl.h

@@ -0,0 +1,63 @@
+//
+//  PaymentControl.h
+//  PaymentControl
+//
+//  Created by qcao on 15/10/20.
+//  Copyright © 2015年 China Unionpay Co.,Ltd. All rights reserved.
+//  v3.4.1 build2(mini)
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+
+typedef void (^UPPaymentResultBlock)(NSString* code, NSDictionary* data);
+
+
+@interface UPPaymentControl : NSObject
+
+
+/**
+ *  创建支付单例服务
+ *
+ *  @return 返回单例对象
+ */
+
++ (UPPaymentControl *)defaultControl;
+
+
+/**
+ *  支付接口
+ *
+ *  @param tn             订单信息
+ *  @param schemeStr      调用支付的app注册在info.plist中的scheme
+ *  @param mode           支付环境
+ *  @param viewController 启动支付控件的viewController
+ *  @return 返回成功失败
+ */
+- (BOOL)startPay:(NSString*)tn
+      fromScheme:(NSString *)schemeStr
+            mode:(NSString*)mode
+  viewController:(UIViewController*)viewController;
+
+
+
+/**
+ *  APP是否已安装检测接口,通过该接口得知用户是否安装银联支付的APP。
+ *
+ *  @return 返回是否已经安装了银联支付APP
+ */
+
+
+- (BOOL)isPaymentAppInstalled;
+
+/**
+ *  处理钱包或者独立快捷app支付跳回商户app携带的支付结果Url
+ *
+ *  @param url              支付结果url,传入后由SDK解析
+ *  @param completionBlock  结果回调,保证跳转钱包支付过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。
+ */
+
+- (void)handlePaymentResult:(NSURL*)url completeBlock:(UPPaymentResultBlock)completionBlock;
+
+@end

BIN
ios/JianYuIOS/JianYuIOS/Libs(第三方)/UPPaymentControl/libPaymentControlMini.a


+ 2 - 1
ios/JianYuIOS/Podfile

@@ -1,4 +1,5 @@
-platform :ios,'8.0'
+source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
+platform :ios,'12.0'
 target 'JianYuIOS' do
 pod 'JPush'
 pod 'AFNetworking'

+ 7 - 2
ios/JianYuIOS/Podfile.lock

@@ -403,6 +403,7 @@ PODS:
   - WBOCRService (3.0.3):
     - WBOCRService/BinaryLib (= 3.0.3)
   - WBOCRService/BinaryLib (3.0.3)
+  - WechatOpenSDK (1.8.7.1)
   - zkprotocol (0.0.2):
     - "!ProtoCompiler-gRPCPlugin (~> 1.0)"
     - zkprotocol/Messages (= 0.0.2)
@@ -427,9 +428,12 @@ DEPENDENCIES:
   - UMengUShare/UI
   - WBCloudReflectionFaceVerify_framework (from `./WBCloudReflectionFaceVerify_framework`)
   - WBOCRService (from `./OCR_private_pod`)
+  - WechatOpenSDK
   - zkprotocol (from `zkprotocol.podspec`)
 
 SPEC REPOS:
+  https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
+    - WechatOpenSDK
   trunk:
     - "!ProtoCompiler"
     - "!ProtoCompiler-gRPCPlugin"
@@ -477,8 +481,9 @@ SPEC CHECKSUMS:
   UMengUShare: 370d180101e13ee0227ae657ab119ba97243d2b3
   WBCloudReflectionFaceVerify_framework: d7273337593c0c67b875a113bd0efd0ca056ae6b
   WBOCRService: 9c6b112d975e79aea9f2684681a72b84d7e0242a
+  WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44
   zkprotocol: 21517643081c5c696d1f7f2e533ce89c52f888af
 
-PODFILE CHECKSUM: 142bf9411768c6ae8f9dbe08485eb1293aa5c310
+PODFILE CHECKSUM: 4510e6ea9f7bf3529fa33ea65595b690d360f383
 
-COCOAPODS: 1.9.1
+COCOAPODS: 1.11.3

+ 7 - 2
ios/JianYuIOS/Pods/Manifest.lock

@@ -403,6 +403,7 @@ PODS:
   - WBOCRService (3.0.3):
     - WBOCRService/BinaryLib (= 3.0.3)
   - WBOCRService/BinaryLib (3.0.3)
+  - WechatOpenSDK (1.8.7.1)
   - zkprotocol (0.0.2):
     - "!ProtoCompiler-gRPCPlugin (~> 1.0)"
     - zkprotocol/Messages (= 0.0.2)
@@ -427,9 +428,12 @@ DEPENDENCIES:
   - UMengUShare/UI
   - WBCloudReflectionFaceVerify_framework (from `./WBCloudReflectionFaceVerify_framework`)
   - WBOCRService (from `./OCR_private_pod`)
+  - WechatOpenSDK
   - zkprotocol (from `zkprotocol.podspec`)
 
 SPEC REPOS:
+  https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
+    - WechatOpenSDK
   trunk:
     - "!ProtoCompiler"
     - "!ProtoCompiler-gRPCPlugin"
@@ -477,8 +481,9 @@ SPEC CHECKSUMS:
   UMengUShare: 370d180101e13ee0227ae657ab119ba97243d2b3
   WBCloudReflectionFaceVerify_framework: d7273337593c0c67b875a113bd0efd0ca056ae6b
   WBOCRService: 9c6b112d975e79aea9f2684681a72b84d7e0242a
+  WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44
   zkprotocol: 21517643081c5c696d1f7f2e533ce89c52f888af
 
-PODFILE CHECKSUM: 142bf9411768c6ae8f9dbe08485eb1293aa5c310
+PODFILE CHECKSUM: 4510e6ea9f7bf3529fa33ea65595b690d360f383
 
-COCOAPODS: 1.9.1
+COCOAPODS: 1.11.3

File diff suppressed because it is too large
+ 4493 - 4479
ios/JianYuIOS/Pods/Pods.xcodeproj/project.pbxproj


+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler-gRPCPlugin/!ProtoCompiler-gRPCPlugin.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/!ProtoCompiler-gRPCPlugin
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/!ProtoCompiler-gRPCPlugin
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler-gRPCPlugin/!ProtoCompiler-gRPCPlugin.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/!ProtoCompiler-gRPCPlugin
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/!ProtoCompiler-gRPCPlugin
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler/!ProtoCompiler.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/!ProtoCompiler
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Protobuf"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/!ProtoCompiler
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/!ProtoCompiler/!ProtoCompiler.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/!ProtoCompiler
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Protobuf"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/!ProtoCompiler
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/AFNetworking/AFNetworking.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/AFNetworking/AFNetworking.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/AFNetworking
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/BoringSSL-GRPC/BoringSSL-GRPC.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/BoringSSL-GRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/BoringSSL-GRPC/BoringSSL-GRPC.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/BoringSSL-GRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/FMDB/FMDB.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FMDB
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FMDB" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/FMDB
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/FMDB/FMDB.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FMDB
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FMDB" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FMDB"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/FMDB
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/JCore/JCore.debug.xcconfig

@@ -1,9 +1,11 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JCore
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/JCore
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/JCore/JCore.release.xcconfig

@@ -1,9 +1,11 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JCore
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/JCore
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 3 - 0
ios/JianYuIOS/Pods/Target Support Files/JPush/JPush.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JPush
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JPush" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPush"
@@ -5,6 +6,8 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/JPush
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
+SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_ROOT}/JCore"
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 3 - 0
ios/JianYuIOS/Pods/Target Support Files/JPush/JPush.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JPush
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JPush" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPush"
@@ -5,6 +6,8 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/JPush
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
+SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_ROOT}/JCore"
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 5 - 0
ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS-acknowledgements.markdown

@@ -506,6 +506,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
 
+## WechatOpenSDK
+
+Copyright 2020 tencent.com. All rights reserved.
+
+
 ## abseil
 
 

+ 11 - 0
ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS-acknowledgements.plist

@@ -589,6 +589,17 @@ THE SOFTWARE.
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2020 tencent.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>WechatOpenSDK</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>

+ 5 - 3
ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.debug.xcconfig

@@ -1,10 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework/Libs" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialUI"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
-LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/abseil" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync" "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"BoringSSL-GRPC" -l"FMDB" -l"MBProgressHUD" -l"Protobuf" -l"SDWebImage" -l"SocialQQ" -l"SocialWeChat" -l"UMSocialLog" -l"abseil" -l"c++" -l"gRPC" -l"gRPC-Core" -l"gRPC-ProtoRPC" -l"gRPC-RxLibrary" -l"iCloudDocumentSync" -l"jcore-ios-2.4.0" -l"jpush-ios-3.3.6" -l"recdetect" -l"resolv" -l"sqlite3" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "NextCV" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "UMSocialCore" -framework "UMSocialNetwork" -framework "UShareUI" -framework "WBCloudReflectionFaceVerify" -framework "WBOCRService" -framework "WebKit" -framework "YTCommon" -framework "YTIllumination" -framework "YTPoseDetector" -framework "YTTrackProWB" -framework "faceLiveReflect" -framework "opencv2" -framework "rapidnet_ios" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
+LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/abseil" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync" "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin" "${PODS_ROOT}/WechatOpenSDK/OpenSDK1.8.7.1"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"BoringSSL-GRPC" -l"FMDB" -l"MBProgressHUD" -l"Protobuf" -l"SDWebImage" -l"SocialQQ" -l"SocialWeChat" -l"UMSocialLog" -l"WeChatSDK" -l"abseil" -l"c++" -l"gRPC" -l"gRPC-Core" -l"gRPC-ProtoRPC" -l"gRPC-RxLibrary" -l"iCloudDocumentSync" -l"jcore-ios-2.4.0" -l"jpush-ios-3.3.6" -l"recdetect" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "NextCV" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "UMSocialCore" -framework "UMSocialNetwork" -framework "UShareUI" -framework "WBCloudReflectionFaceVerify" -framework "WBOCRService" -framework "WebKit" -framework "YTCommon" -framework "YTIllumination" -framework "YTPoseDetector" -framework "YTTrackProWB" -framework "faceLiveReflect" -framework "opencv2" -framework "rapidnet_ios" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
 PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 5 - 3
ios/JianYuIOS/Pods/Target Support Files/Pods-JianYuIOS/Pods-JianYuIOS.release.xcconfig

@@ -1,10 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework/Libs" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialUI"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
-LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/abseil" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync" "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"BoringSSL-GRPC" -l"FMDB" -l"MBProgressHUD" -l"Protobuf" -l"SDWebImage" -l"SocialQQ" -l"SocialWeChat" -l"UMSocialLog" -l"abseil" -l"c++" -l"gRPC" -l"gRPC-Core" -l"gRPC-ProtoRPC" -l"gRPC-RxLibrary" -l"iCloudDocumentSync" -l"jcore-ios-2.4.0" -l"jpush-ios-3.3.6" -l"recdetect" -l"resolv" -l"sqlite3" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "NextCV" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "UMSocialCore" -framework "UMSocialNetwork" -framework "UShareUI" -framework "WBCloudReflectionFaceVerify" -framework "WBOCRService" -framework "WebKit" -framework "YTCommon" -framework "YTIllumination" -framework "YTPoseDetector" -framework "YTTrackProWB" -framework "faceLiveReflect" -framework "opencv2" -framework "rapidnet_ios" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/BoringSSL-GRPC" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/abseil" "${PODS_ROOT}/Headers/Public/gRPC" "${PODS_ROOT}/Headers/Public/gRPC-Core" "${PODS_ROOT}/Headers/Public/gRPC-ProtoRPC" "${PODS_ROOT}/Headers/Public/gRPC-RxLibrary" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
+LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/BoringSSL-GRPC" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/abseil" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC" "${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync" "${PODS_ROOT}/../OCR_private_pod/Libs" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ" "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin" "${PODS_ROOT}/WechatOpenSDK/OpenSDK1.8.7.1"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"BoringSSL-GRPC" -l"FMDB" -l"MBProgressHUD" -l"Protobuf" -l"SDWebImage" -l"SocialQQ" -l"SocialWeChat" -l"UMSocialLog" -l"WeChatSDK" -l"abseil" -l"c++" -l"gRPC" -l"gRPC-Core" -l"gRPC-ProtoRPC" -l"gRPC-RxLibrary" -l"iCloudDocumentSync" -l"jcore-ios-2.4.0" -l"jpush-ios-3.3.6" -l"recdetect" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "NextCV" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "UMSocialCore" -framework "UMSocialNetwork" -framework "UShareUI" -framework "WBCloudReflectionFaceVerify" -framework "WBOCRService" -framework "WebKit" -framework "YTCommon" -framework "YTIllumination" -framework "YTPoseDetector" -framework "YTTrackProWB" -framework "faceLiveReflect" -framework "opencv2" -framework "rapidnet_ios" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
 PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/Protobuf/Protobuf.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Protobuf
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Protobuf" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Protobuf"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/Protobuf
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/Protobuf/Protobuf.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Protobuf
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Protobuf" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Protobuf"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/Protobuf
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage
 DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 SUPPORTS_MACCATALYST = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage
 DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 SUPPORTS_MACCATALYST = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/UMengUShare/UMengUShare.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMengUShare
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialUI"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMengUShare
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/UMengUShare/UMengUShare.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMengUShare
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK" "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialUI"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMengUShare
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/WBCloudReflectionFaceVerify_framework/WBCloudReflectionFaceVerify_framework.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WBCloudReflectionFaceVerify_framework
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework/Libs"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/WBCloudReflectionFaceVerify_framework/WBCloudReflectionFaceVerify_framework.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WBCloudReflectionFaceVerify_framework
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework/Libs"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/../WBCloudReflectionFaceVerify_framework
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/WBOCRService/WBOCRService.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WBOCRService
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../OCR_private_pod/Libs"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/../OCR_private_pod
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/WBOCRService/WBOCRService.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WBOCRService
 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../OCR_private_pod/Libs"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/../OCR_private_pod
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/abseil/abseil.debug.xcconfig

@@ -1,4 +1,5 @@
 ALWAYS_SEARCH_USER_PATHS = NO
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/abseil
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/abseil" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/abseil"
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/abseil
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USER_HEADER_SEARCH_PATHS = $(inherited) "$(PODS_TARGET_SRCROOT)"

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/abseil/abseil.release.xcconfig

@@ -1,4 +1,5 @@
 ALWAYS_SEARCH_USER_PATHS = NO
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/abseil
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/abseil" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/abseil"
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/abseil
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USER_HEADER_SEARCH_PATHS = $(inherited) "$(PODS_TARGET_SRCROOT)"

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-Core/gRPC-Core.debug.xcconfig

@@ -1,4 +1,5 @@
 ALWAYS_SEARCH_USER_PATHS = NO
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -8,6 +9,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-Core
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USER_HEADER_SEARCH_PATHS = "$(GRPC_SRC_ROOT)"

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-Core/gRPC-Core.release.xcconfig

@@ -1,4 +1,5 @@
 ALWAYS_SEARCH_USER_PATHS = NO
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -8,6 +9,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-Core
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USER_HEADER_SEARCH_PATHS = "$(GRPC_SRC_ROOT)"

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-ProtoRPC/gRPC-ProtoRPC.debug.xcconfig

@@ -1,4 +1,5 @@
 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
@@ -7,6 +8,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-ProtoRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-ProtoRPC/gRPC-ProtoRPC.release.xcconfig

@@ -1,4 +1,5 @@
 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1
@@ -7,6 +8,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-ProtoRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-RxLibrary/gRPC-RxLibrary.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-RxLibrary
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC-RxLibrary/gRPC-RxLibrary.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC-RxLibrary
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC/gRPC.debug.xcconfig

@@ -1,4 +1,5 @@
 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -7,6 +8,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/gRPC/gRPC.release.xcconfig

@@ -1,4 +1,5 @@
 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CLANG_WARN_STRICT_PROTOTYPES = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/gRPC
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
@@ -7,6 +8,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/gRPC
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/iCloudDocumentSync/iCloudDocumentSync.debug.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/iCloudDocumentSync" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/iCloudDocumentSync
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 2 - 0
ios/JianYuIOS/Pods/Target Support Files/iCloudDocumentSync/iCloudDocumentSync.release.xcconfig

@@ -1,3 +1,4 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iCloudDocumentSync
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/iCloudDocumentSync" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/iCloudDocumentSync"
@@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_ROOT = ${SRCROOT}
 PODS_TARGET_SRCROOT = ${PODS_ROOT}/iCloudDocumentSync
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
 PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
 SKIP_INSTALL = YES
 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

Some files were not shown because too many files changed in this diff