Steven 1 year ago
parent
commit
36e56c600b
58 changed files with 894 additions and 630 deletions
  1. 4 4
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. 2 104
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Contents.json
  3. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt.png
  4. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt@2x.png
  5. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt.png
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt@2x.png
  7. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadProApp_83.5pt@2x.png
  8. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt.png
  9. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt@2x.png
  10. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt.png
  11. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt@2x.png
  12. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@2x.png
  13. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@3x.png
  14. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@2x.png
  15. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@3x.png
  16. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@2x.png
  17. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@3x.png
  18. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@2x.png
  19. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@3x.png
  20. 2 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/AccompanyLoadingView.xib
  21. 14 14
      KulexiuForStudent/KulexiuForStudent/Common/Define/KSDomain.h
  22. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Login/Controller/VefiCodeLoginController.m
  23. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyPhoneChangeController.m
  24. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyViewController.m
  25. 7 6
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/Controller/AccountDeleteViewController.m
  26. 1 0
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.h
  27. 10 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.m
  28. 437 181
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.xib
  29. 14 14
      KulexiuForStudent/Podfile.lock
  30. 14 14
      KulexiuForStudent/Pods/Manifest.lock
  31. 202 206
      KulexiuForStudent/Pods/Pods.xcodeproj/project.pbxproj
  32. 1 1
      KulexiuForStudent/Pods/Target Support Files/Whiteboard/ResourceBundle-Whiteboard-Whiteboard-Info.plist
  33. 1 1
      KulexiuForStudent/Pods/Target Support Files/Whiteboard/Whiteboard-Info.plist
  34. 3 23
      KulexiuForStudent/Pods/Whiteboard/README-zh.md
  35. 2 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteCommonCallbacks.h
  36. 17 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteCommonCallbacks.m
  37. 1 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteDisplayer.h
  38. 1 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteDisplayerState.h
  39. 3 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteConsts.h
  40. 1 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteConsts.m
  41. 3 3
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteMemberState.h
  42. 2 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteRoomMember.h
  43. 2 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteWindowParams.h
  44. 1 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteWindowParams.m
  45. 6 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Replayer/WhitePlayerConfig.h
  46. 16 3
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoom.h
  47. 14 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoom.m
  48. 10 8
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoomConfig.h
  49. 1 11
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoomConfig.m
  50. 0 14
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteSDK+Room.m
  51. 28 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSDK.h
  52. 43 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSDK.m
  53. 22 3
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSdkConfiguration.h
  54. 5 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSdkConfiguration.m
  55. 1 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/index.html
  56. 0 0
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/main.css
  57. 0 1
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/runtime.42cce1dd.js
  58. 0 5
      KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/video.b3db6331.js

+ 4 - 4
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -7693,7 +7693,7 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForStudent/KulexiuForStudent.entitlements;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1.4.7.1;
+				CURRENT_PROJECT_VERSION = 1.5.0;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -7747,7 +7747,7 @@
 					"$(PROJECT_DIR)/KulexiuForStudent/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.5/SocialLibraries/Sina/SinaSDK",
 					"$(PROJECT_DIR)/KulexiuForStudent/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.5/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.4.7;
+				MARKETING_VERSION = 1.5.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForStudent;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;
@@ -7768,7 +7768,7 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = KulexiuForStudent/KulexiuForStudent.entitlements;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1.4.7.1;
+				CURRENT_PROJECT_VERSION = 1.5.0;
 				DEVELOPMENT_TEAM = B2AP53HHTU;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
@@ -7822,7 +7822,7 @@
 					"$(PROJECT_DIR)/KulexiuForStudent/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.5/SocialLibraries/Sina/SinaSDK",
 					"$(PROJECT_DIR)/KulexiuForStudent/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.5/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.4.7;
+				MARKETING_VERSION = 1.5.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForStudent;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;

+ 2 - 104
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,111 +1,9 @@
 {
   "images" : [
     {
-      "filename" : "iconiPhoneNotification_20pt@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iconiPhoneNotification_20pt@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iconiPhoneSpootlight5_29pt@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iconiPhoneSpootlight5_29pt@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iconiPhoneSpootlight7_40pt@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iconiPhoneSpootlight7_40pt@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iconiPhoneApp_60pt@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "iconiPhoneApp_60pt@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "iconiPadNotifications_20pt.png",
-      "idiom" : "ipad",
-      "scale" : "1x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iconiPadNotifications_20pt@2x.png",
-      "idiom" : "ipad",
-      "scale" : "2x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iconiPadSpootlight5_29pt.png",
-      "idiom" : "ipad",
-      "scale" : "1x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iconiPadSpootlight5_29pt@2x.png",
-      "idiom" : "ipad",
-      "scale" : "2x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iconiPadSpootlight7_40pt.png",
-      "idiom" : "ipad",
-      "scale" : "1x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iconiPadSpootlight7_40pt@2x.png",
-      "idiom" : "ipad",
-      "scale" : "2x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iconiPadApp_76pt.png",
-      "idiom" : "ipad",
-      "scale" : "1x",
-      "size" : "76x76"
-    },
-    {
-      "filename" : "iconiPadApp_76pt@2x.png",
-      "idiom" : "ipad",
-      "scale" : "2x",
-      "size" : "76x76"
-    },
-    {
-      "filename" : "iconiPadProApp_83.5pt@2x.png",
-      "idiom" : "ipad",
-      "scale" : "2x",
-      "size" : "83.5x83.5"
-    },
-    {
       "filename" : "colexiu1024.png",
-      "idiom" : "ios-marketing",
-      "scale" : "1x",
+      "idiom" : "universal",
+      "platform" : "ios",
       "size" : "1024x1024"
     }
   ],

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadApp_76pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadNotifications_20pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadProApp_83.5pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight5_29pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPadSpootlight7_40pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneApp_60pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneNotification_20pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight5_29pt@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/AppIcon.appiconset/IconiPhoneSpootlight7_40pt@3x.png


+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/AccompanyLoadingView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>

+ 14 - 14
KulexiuForStudent/KulexiuForStudent/Common/Define/KSDomain.h

@@ -10,13 +10,13 @@
 
 //#ifdef DEBUG
 
-#define hostURL (@"https://dev.colexiu.com")
-#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
-#define WEBHOST (@"https://dev.colexiu.com/student")
-#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
-#define JSPUSH_ENVIRONMENT (NO)
-#define RCIM_KEY (@"0vnjpoad0jbdz")
-#define SUBMIT_UUID (NO)
+//#define hostURL (@"https://dev.colexiu.com")
+//#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
+//#define WEBHOST (@"https://dev.colexiu.com/student")
+//#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
+//#define JSPUSH_ENVIRONMENT (NO)
+//#define RCIM_KEY (@"0vnjpoad0jbdz")
+//#define SUBMIT_UUID (NO)
 
 // 预生产环境
 
@@ -30,13 +30,13 @@
 
 //#else
 
-//#define hostURL (@"https://online.colexiu.com")
-//#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
-//#define WEBHOST (@"https://online.colexiu.com/student")
-//#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
-//#define JSPUSH_ENVIRONMENT (YES)
-//#define RCIM_KEY (@"e5t4ouvpe42pa")
-//#define SUBMIT_UUID (YES)
+#define hostURL (@"https://online.colexiu.com")
+#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
+#define WEBHOST (@"https://online.colexiu.com/student")
+#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
+#define JSPUSH_ENVIRONMENT (YES)
+#define RCIM_KEY (@"e5t4ouvpe42pa")
+#define SUBMIT_UUID (YES)
 
 //#endif
 

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Login/Controller/VefiCodeLoginController.m

@@ -106,7 +106,7 @@
     __weak typeof(self) weakSelf = self;
     _time = [NSTimer scheduledTimerWithTimeInterval:1 target:weakSelf selector:@selector(buttonChangeAction) userInfo:nil repeats:YES];
     [[NSRunLoop mainRunLoop] addTimer:_time forMode:NSRunLoopCommonModes];
-    _count = 89;
+    _count = 59;
 }
 
 - (void)clearButtonState {

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyPhoneChangeController.m

@@ -156,7 +156,7 @@
     __weak typeof(self) weakSelf = self;
     _time = [NSTimer scheduledTimerWithTimeInterval:1 target:weakSelf selector:@selector(buttonChangeAction) userInfo:nil repeats:YES];
     [[NSRunLoop mainRunLoop] addTimer:_time forMode:NSRunLoopCommonModes];
-    _count = 89;
+    _count = 59;
 }
 
 - (void)clearButtonState {

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyViewController.m

@@ -148,7 +148,7 @@
     [_bodyView.codeButton setTitleColor:HexRGB(0xe5e5e5) forState:UIControlStateNormal];
     __weak typeof(self) weakSelf = self;
     _time = [NSTimer scheduledTimerWithTimeInterval:1 target:weakSelf selector:@selector(buttonChangeAction) userInfo:nil repeats:YES];
-    _count = 89;
+    _count = 59;
 }
 
 - (void)clearButtonState {

+ 7 - 6
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/Controller/AccountDeleteViewController.m

@@ -39,12 +39,11 @@
 }
 
 - (void)configUI {
+    [self.scrollView removeFromSuperview];
     self.bodyView = [DeleteAccountBodyView shareInstance];
-    [self.scrollView addSubview:_bodyView];
+    [self.view addSubview:_bodyView];
     [_bodyView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.top.mas_equalTo(self.scrollView.mas_top);
-        make.right.left.mas_equalTo(self.view);
-        make.height.mas_equalTo(kScreenHeight - kNaviBarHeight - iPhoneXSafeBottomMargin);
+        make.left.right.top.bottom.mas_equalTo(self.view);
     }];
     MJWeakSelf;
     [_bodyView deleteAccountCallback:^(DELETEACCOUNT action, NSDictionary * _Nonnull parm) {
@@ -78,7 +77,7 @@
         [self removehub];
         if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
             MJWeakSelf;
-            [self KSShowMsg:@"注销成功" promptCompletion:^{
+            [self KSShowMsg:@"注销成功,感谢您的使用" promptCompletion:^{
                 [weakSelf successDeleteBack];
             }];
         }
@@ -102,6 +101,8 @@
     [[NSUserDefaults standardUserDefaults] removeObjectForKey:Token_type];
     [[NSUserDefaults standardUserDefaults] removeObjectForKey:RefreshToken];
     [[NSUserDefaults standardUserDefaults] removeObjectForKey:RongTokenKey];
+    [[NSUserDefaults standardUserDefaults] removeObjectForKey:PHONEKEY];
+
     [[NSUserDefaults standardUserDefaults] synchronize];
     [KSNetworkingManager clearRequestHeader];
     LoginViewController *loginVC = [[LoginViewController alloc] init];
@@ -160,7 +161,7 @@
     __weak typeof(self) weakSelf = self;
     _time = [NSTimer scheduledTimerWithTimeInterval:1 target:weakSelf selector:@selector(buttonChangeAction) userInfo:nil repeats:YES];
     [[NSRunLoop mainRunLoop] addTimer:_time forMode:NSRunLoopCommonModes];
-    _count = 89;
+    _count = 59;
 }
 
 - (void)clearButtonState {

+ 1 - 0
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.h

@@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (void)deleteAccountCallback:(DeleteAccountBlock)callback;
 
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 10 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.m

@@ -8,15 +8,21 @@
 #import "DeleteAccountBodyView.h"
 
 @interface DeleteAccountBodyView ()<UITextFieldDelegate>
+@property (weak, nonatomic) IBOutlet UIView *container;
 
 @property (weak, nonatomic) IBOutlet UILabel *phoneDescLabel;
 
+@property (weak, nonatomic) IBOutlet UIScrollView *scroll;
 @property (weak, nonatomic) IBOutlet UITextField *codeField;
 
 @property (nonatomic, copy) DeleteAccountBlock callback;
 
 @property (nonatomic, strong) NSString *phoneNo;
 
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *containerWidth;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *containerHeight;
+
 @end
 
 @implementation DeleteAccountBodyView
@@ -27,7 +33,10 @@
     self.phoneNo = UserDefault(PHONEKEY);
     
     NSString *phoneDim = [self.phoneNo stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"];
-    self.phoneDescLabel.text = [NSString stringWithFormat:@"将%@所绑定的账号注销",phoneDim];    
+    self.phoneDescLabel.text = [NSString stringWithFormat:@"将%@所绑定的账号注销",phoneDim];
+    self.containerWidth.constant = KPortraitWidth - 26;
+//    self.containerHeight.constant = KPortraitHeight - kNaviBarHeight - 24 - 155;
+//    self.scroll.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
 }
 
 + (instancetype)shareInstance {

+ 437 - 181
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/View/DeleteAccountBodyView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,166 +11,442 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="DeleteAccountBodyView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="699"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="953"/>
+            <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1nG-sZ-TOw">
-                    <rect key="frame" x="13" y="12" width="388" height="593"/>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gTc-LK-g9D">
+                    <rect key="frame" x="13" y="12" width="388" height="929"/>
                     <subviews>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="将***********所绑定的账号注销" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KTf-hd-DqL">
-                            <rect key="frame" x="66.5" y="112" width="255" height="25"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="25" id="shE-jI-SbL"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
-                            <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5vd-tZ-CWT">
-                            <rect key="frame" x="0.0" y="157" width="388" height="165"/>
+                        <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" bouncesZoom="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMY-bn-wxE">
+                            <rect key="frame" x="0.0" y="0.0" width="388" height="774"/>
                             <subviews>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c7e-F8-dgF">
-                                    <rect key="frame" x="20" y="0.0" width="348" height="42"/>
-                                    <attributedString key="attributedText">
-                                        <fragment content="注销后,您在相关产品">
-                                            <attributes>
-                                                <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
-                                                <font key="NSFont" metaFont="system" size="14"/>
-                                                <font key="NSOriginalFont" metaFont="system" size="14"/>
-                                                <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="21" maximumLineHeight="21" tighteningFactorForTruncation="0.0"/>
-                                            </attributes>
-                                        </fragment>
-                                        <fragment content="/">
-                                            <attributes>
-                                                <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
-                                                <font key="NSFont" metaFont="system" size="14"/>
-                                                <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="21" maximumLineHeight="21" tighteningFactorForTruncation="0.0"/>
-                                            </attributes>
-                                        </fragment>
-                                        <fragment content="服务留存的信息将被清空且无法找回,具体包括:">
-                                            <attributes>
-                                                <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
-                                                <font key="NSFont" metaFont="system" size="14"/>
-                                                <font key="NSOriginalFont" metaFont="system" size="14"/>
-                                                <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" minimumLineHeight="21" maximumLineHeight="21" tighteningFactorForTruncation="0.0"/>
-                                            </attributes>
-                                        </fragment>
-                                    </attributedString>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="个人资料,实名认证等身份信息" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6u6-Ma-2KR">
-                                    <rect key="frame" x="34" y="58" width="334" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="20" id="OoU-Bq-Bp1"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="各产品/服务及权益信息" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="plu-48-YfS">
-                                    <rect key="frame" x="34" y="94" width="334" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="20" id="V4g-qq-cjg"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="您在使用各产品/服务时留存的其他信息" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="czQ-5I-E7e">
-                                    <rect key="frame" x="34" y="130" width="334" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="20" id="JT8-nx-olb"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                    <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBy-Z1-n96">
-                                    <rect key="frame" x="20" y="65" width="6" height="6"/>
-                                    <color key="backgroundColor" red="0.99607843137254903" green="0.14117647058823529" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="6" id="cke-8U-65O"/>
-                                        <constraint firstAttribute="width" constant="6" id="wNh-4O-3pP"/>
-                                    </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                            <real key="value" value="3"/>
-                                        </userDefinedRuntimeAttribute>
-                                    </userDefinedRuntimeAttributes>
-                                </view>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oHG-NB-zvk">
-                                    <rect key="frame" x="20" y="101" width="6" height="6"/>
-                                    <color key="backgroundColor" red="0.99607843139999996" green="0.14117647059999999" blue="0.31764705879999999" alpha="1" colorSpace="calibratedRGB"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="6" id="dA2-vz-Te6"/>
-                                        <constraint firstAttribute="width" constant="6" id="gdv-Sl-1CV"/>
-                                    </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                            <real key="value" value="3"/>
-                                        </userDefinedRuntimeAttribute>
-                                    </userDefinedRuntimeAttributes>
-                                </view>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mjk-vg-mYk">
-                                    <rect key="frame" x="20" y="137" width="6" height="6"/>
-                                    <color key="backgroundColor" red="0.99607843139999996" green="0.14117647059999999" blue="0.31764705879999999" alpha="1" colorSpace="calibratedRGB"/>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TEx-cD-ZR6">
+                                    <rect key="frame" x="0.0" y="0.0" width="388" height="505"/>
+                                    <subviews>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1nG-sZ-TOw">
+                                            <rect key="frame" x="0.0" y="0.0" width="388" height="505"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="将***********所绑定的账号注销" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KTf-hd-DqL">
+                                                    <rect key="frame" x="66.5" y="98" width="255" height="25"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="25" id="shE-jI-SbL"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
+                                                    <color key="textColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5vd-tZ-CWT">
+                                                    <rect key="frame" x="0.0" y="139" width="388" height="366"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c7e-F8-dgF">
+                                                            <rect key="frame" x="20" y="0.0" width="348" height="58.5"/>
+                                                            <attributedString key="attributedText">
+                                                                <fragment content="注销账号后,此账号将无法登录和使用酷乐秀相关产品。账号">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system" size="14"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="—">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="旦注销完成将无法恢复,请您在注销前慎重考虑。">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system" size="14"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                            </attributedString>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6u6-Ma-2KR">
+                                                            <rect key="frame" x="34" y="100.5" width="334" height="43.5"/>
+                                                            <attributedString key="attributedText">
+                                                                <fragment content="1">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="、您将无法再以此账号登录">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="/">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="使用酷乐秀">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="APP">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="的相关服务。">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                            </attributedString>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="plu-48-YfS">
+                                                            <rect key="frame" x="34" y="154" width="334" height="43.5"/>
+                                                            <attributedString key="attributedText">
+                                                                <fragment content="2">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="、注销后,您在相关产品">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="/">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="服务留存的信息将被清空且无法找回,具体包括">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=":">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                            </attributedString>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="czQ-5I-E7e">
+                                                            <rect key="frame" x="34" y="307.5" width="334" height="43.5"/>
+                                                            <attributedString key="attributedText">
+                                                                <fragment content="3">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="、账号一旦注销完成,将无法恢复;您与我们曾签署过的相关用户协议、授权协议等相应终止。">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.082352941176470587" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" size="14" name="PingFangSC-Semibold"/>
+                                                                        <font key="NSOriginalFont" metaFont="system" size="14"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                            </attributedString>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBy-Z1-n96">
+                                                            <rect key="frame" x="20" y="108.5" width="6" height="6"/>
+                                                            <color key="backgroundColor" red="0.99607843137254903" green="0.14117647058823529" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="6" id="cke-8U-65O"/>
+                                                                <constraint firstAttribute="width" constant="6" id="wNh-4O-3pP"/>
+                                                            </constraints>
+                                                            <userDefinedRuntimeAttributes>
+                                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                                    <real key="value" value="3"/>
+                                                                </userDefinedRuntimeAttribute>
+                                                            </userDefinedRuntimeAttributes>
+                                                        </view>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oHG-NB-zvk">
+                                                            <rect key="frame" x="20" y="162" width="6" height="6"/>
+                                                            <color key="backgroundColor" red="0.99607843139999996" green="0.14117647059999999" blue="0.31764705879999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="6" id="dA2-vz-Te6"/>
+                                                                <constraint firstAttribute="width" constant="6" id="gdv-Sl-1CV"/>
+                                                            </constraints>
+                                                            <userDefinedRuntimeAttributes>
+                                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                                    <real key="value" value="3"/>
+                                                                </userDefinedRuntimeAttribute>
+                                                            </userDefinedRuntimeAttributes>
+                                                        </view>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mjk-vg-mYk">
+                                                            <rect key="frame" x="20" y="315.5" width="6" height="6"/>
+                                                            <color key="backgroundColor" red="0.99607843139999996" green="0.14117647059999999" blue="0.31764705879999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="6" id="AsH-zk-onh"/>
+                                                                <constraint firstAttribute="width" constant="6" id="lHQ-RX-Ehp"/>
+                                                            </constraints>
+                                                            <userDefinedRuntimeAttributes>
+                                                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                                    <real key="value" value="3"/>
+                                                                </userDefinedRuntimeAttribute>
+                                                            </userDefinedRuntimeAttributes>
+                                                        </view>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="账号注销将会对您产生以下影响:" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1D8-dQ-4Em">
+                                                            <rect key="frame" x="20" y="68.5" width="348" height="22"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="22" id="NMZ-zs-f0y"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
+                                                            <color key="textColor" red="0.99607843137254903" green="0.14117647058823529" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R0B-8J-ehG">
+                                                            <rect key="frame" x="34" y="203.5" width="334" height="94"/>
+                                                            <attributedString key="attributedText">
+                                                                <fragment content="( 1 ) ">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="该账号下的所有内容、信息、数据、记录、个人资料(例如">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=":">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="头像、昵称等)及绑定信息(例如">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=":">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="绑定手机号等">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=")">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=";">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment>
+                                                                    <string key="content">
+( 2 ) </string>
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="该账号权益信息将被清除(例如">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=":">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="会员时长、购买单曲、专辑信息">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content=")">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                                <fragment content="。">
+                                                                    <attributes>
+                                                                        <color key="NSColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                                        <font key="NSFont" metaFont="system"/>
+                                                                        <font key="NSOriginalFont" metaFont="system"/>
+                                                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
+                                                                    </attributes>
+                                                                </fragment>
+                                                            </attributedString>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstItem="czQ-5I-E7e" firstAttribute="leading" secondItem="mjk-vg-mYk" secondAttribute="trailing" constant="8" id="3fe-hc-1jQ"/>
+                                                        <constraint firstItem="c7e-F8-dgF" firstAttribute="top" secondItem="5vd-tZ-CWT" secondAttribute="top" id="74w-wx-g4G"/>
+                                                        <constraint firstAttribute="trailing" secondItem="c7e-F8-dgF" secondAttribute="trailing" constant="20" id="AKi-Uc-c3h"/>
+                                                        <constraint firstAttribute="trailing" secondItem="plu-48-YfS" secondAttribute="trailing" constant="20" id="GNq-jw-Z22"/>
+                                                        <constraint firstItem="GBy-Z1-n96" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="KbT-VW-j6d"/>
+                                                        <constraint firstItem="R0B-8J-ehG" firstAttribute="top" secondItem="plu-48-YfS" secondAttribute="bottom" constant="6" id="Kmg-Sa-cXN"/>
+                                                        <constraint firstItem="6u6-Ma-2KR" firstAttribute="top" secondItem="1D8-dQ-4Em" secondAttribute="bottom" constant="10" id="P9Z-vx-vNA"/>
+                                                        <constraint firstAttribute="trailing" secondItem="czQ-5I-E7e" secondAttribute="trailing" constant="20" id="RGt-dD-6zV"/>
+                                                        <constraint firstItem="czQ-5I-E7e" firstAttribute="top" secondItem="R0B-8J-ehG" secondAttribute="bottom" constant="10" id="UvX-8O-e5n"/>
+                                                        <constraint firstItem="oHG-NB-zvk" firstAttribute="top" secondItem="plu-48-YfS" secondAttribute="top" constant="8" id="Vit-1L-bCk"/>
+                                                        <constraint firstItem="plu-48-YfS" firstAttribute="leading" secondItem="oHG-NB-zvk" secondAttribute="trailing" constant="8" id="WNJ-Eg-TYh"/>
+                                                        <constraint firstItem="6u6-Ma-2KR" firstAttribute="leading" secondItem="GBy-Z1-n96" secondAttribute="trailing" constant="8" id="XfW-lU-uJB"/>
+                                                        <constraint firstAttribute="bottom" secondItem="czQ-5I-E7e" secondAttribute="bottom" constant="15" id="Zxu-el-Q9z"/>
+                                                        <constraint firstItem="R0B-8J-ehG" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="34" id="aMv-3h-6mA"/>
+                                                        <constraint firstItem="oHG-NB-zvk" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="aee-FV-u0M"/>
+                                                        <constraint firstItem="mjk-vg-mYk" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="e6v-6g-4aM"/>
+                                                        <constraint firstItem="1D8-dQ-4Em" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="g7Z-bS-nt6"/>
+                                                        <constraint firstItem="plu-48-YfS" firstAttribute="top" secondItem="6u6-Ma-2KR" secondAttribute="bottom" constant="10" id="hzW-RT-JQz"/>
+                                                        <constraint firstAttribute="trailing" secondItem="1D8-dQ-4Em" secondAttribute="trailing" constant="20" id="jla-H3-bfX"/>
+                                                        <constraint firstItem="czQ-5I-E7e" firstAttribute="top" secondItem="mjk-vg-mYk" secondAttribute="top" constant="-8" id="k8V-jQ-GSL"/>
+                                                        <constraint firstAttribute="trailing" secondItem="R0B-8J-ehG" secondAttribute="trailing" constant="20" id="nNc-cc-Nft"/>
+                                                        <constraint firstItem="GBy-Z1-n96" firstAttribute="top" secondItem="6u6-Ma-2KR" secondAttribute="top" constant="8" id="pis-9p-XXq"/>
+                                                        <constraint firstItem="c7e-F8-dgF" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="rBH-eL-pS0"/>
+                                                        <constraint firstAttribute="trailing" secondItem="6u6-Ma-2KR" secondAttribute="trailing" constant="20" id="toW-r2-je8"/>
+                                                        <constraint firstItem="1D8-dQ-4Em" firstAttribute="top" secondItem="c7e-F8-dgF" secondAttribute="bottom" constant="10" id="xUH-SI-465"/>
+                                                    </constraints>
+                                                    <userDefinedRuntimeAttributes>
+                                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                            <real key="value" value="10"/>
+                                                        </userDefinedRuntimeAttribute>
+                                                    </userDefinedRuntimeAttributes>
+                                                </view>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="warning_image" translatesAutoresizingMaskIntoConstraints="NO" id="vNh-eW-Ega">
+                                                    <rect key="frame" x="169" y="24" width="50" height="50"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="50" id="F6j-t6-4fP"/>
+                                                        <constraint firstAttribute="width" constant="50" id="ptP-hm-Fam"/>
+                                                    </constraints>
+                                                </imageView>
+                                            </subviews>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <constraints>
+                                                <constraint firstItem="KTf-hd-DqL" firstAttribute="top" secondItem="vNh-eW-Ega" secondAttribute="bottom" constant="24" id="MDT-x6-gta"/>
+                                                <constraint firstAttribute="trailing" secondItem="5vd-tZ-CWT" secondAttribute="trailing" id="QcM-IX-ZbU"/>
+                                                <constraint firstAttribute="bottom" secondItem="5vd-tZ-CWT" secondAttribute="bottom" id="UHi-dS-7F6"/>
+                                                <constraint firstItem="vNh-eW-Ega" firstAttribute="centerX" secondItem="1nG-sZ-TOw" secondAttribute="centerX" id="V2r-Lk-5Yl"/>
+                                                <constraint firstItem="5vd-tZ-CWT" firstAttribute="leading" secondItem="1nG-sZ-TOw" secondAttribute="leading" id="WHr-Rg-bOG"/>
+                                                <constraint firstItem="KTf-hd-DqL" firstAttribute="centerX" secondItem="1nG-sZ-TOw" secondAttribute="centerX" id="axv-Ck-UAa"/>
+                                                <constraint firstItem="vNh-eW-Ega" firstAttribute="top" secondItem="1nG-sZ-TOw" secondAttribute="top" constant="24" id="bjO-bi-SRZ"/>
+                                                <constraint firstItem="5vd-tZ-CWT" firstAttribute="top" secondItem="KTf-hd-DqL" secondAttribute="bottom" constant="16" id="oYg-fL-pcm"/>
+                                            </constraints>
+                                        </view>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <constraints>
-                                        <constraint firstAttribute="height" constant="6" id="AsH-zk-onh"/>
-                                        <constraint firstAttribute="width" constant="6" id="lHQ-RX-Ehp"/>
+                                        <constraint firstItem="1nG-sZ-TOw" firstAttribute="top" secondItem="TEx-cD-ZR6" secondAttribute="top" id="4ww-co-yma"/>
+                                        <constraint firstItem="1nG-sZ-TOw" firstAttribute="leading" secondItem="TEx-cD-ZR6" secondAttribute="leading" id="6Hn-CC-m40"/>
+                                        <constraint firstItem="1nG-sZ-TOw" firstAttribute="height" secondItem="TEx-cD-ZR6" secondAttribute="height" id="Hup-b3-JPa"/>
+                                        <constraint firstAttribute="width" constant="388" id="egp-Eu-9uS"/>
+                                        <constraint firstAttribute="trailing" secondItem="1nG-sZ-TOw" secondAttribute="trailing" id="tdn-g0-2aX"/>
                                     </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                            <real key="value" value="3"/>
-                                        </userDefinedRuntimeAttribute>
-                                    </userDefinedRuntimeAttributes>
                                 </view>
                             </subviews>
-                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             <constraints>
-                                <constraint firstItem="czQ-5I-E7e" firstAttribute="leading" secondItem="mjk-vg-mYk" secondAttribute="trailing" constant="8" id="3fe-hc-1jQ"/>
-                                <constraint firstItem="c7e-F8-dgF" firstAttribute="top" secondItem="5vd-tZ-CWT" secondAttribute="top" id="74w-wx-g4G"/>
-                                <constraint firstAttribute="trailing" secondItem="c7e-F8-dgF" secondAttribute="trailing" constant="20" id="AKi-Uc-c3h"/>
-                                <constraint firstAttribute="trailing" secondItem="plu-48-YfS" secondAttribute="trailing" constant="20" id="GNq-jw-Z22"/>
-                                <constraint firstItem="czQ-5I-E7e" firstAttribute="top" secondItem="plu-48-YfS" secondAttribute="bottom" constant="16" id="GZu-XY-X4l"/>
-                                <constraint firstItem="GBy-Z1-n96" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="KbT-VW-j6d"/>
-                                <constraint firstItem="plu-48-YfS" firstAttribute="centerY" secondItem="oHG-NB-zvk" secondAttribute="centerY" id="KxB-yx-4BJ"/>
-                                <constraint firstItem="6u6-Ma-2KR" firstAttribute="top" secondItem="c7e-F8-dgF" secondAttribute="bottom" constant="16" id="MhW-PN-YDi"/>
-                                <constraint firstAttribute="trailing" secondItem="czQ-5I-E7e" secondAttribute="trailing" constant="20" id="RGt-dD-6zV"/>
-                                <constraint firstItem="plu-48-YfS" firstAttribute="leading" secondItem="oHG-NB-zvk" secondAttribute="trailing" constant="8" id="WNJ-Eg-TYh"/>
-                                <constraint firstItem="6u6-Ma-2KR" firstAttribute="leading" secondItem="GBy-Z1-n96" secondAttribute="trailing" constant="8" id="XfW-lU-uJB"/>
-                                <constraint firstAttribute="bottom" secondItem="czQ-5I-E7e" secondAttribute="bottom" constant="15" id="Zxu-el-Q9z"/>
-                                <constraint firstItem="oHG-NB-zvk" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="aee-FV-u0M"/>
-                                <constraint firstItem="mjk-vg-mYk" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="e6v-6g-4aM"/>
-                                <constraint firstItem="plu-48-YfS" firstAttribute="top" secondItem="6u6-Ma-2KR" secondAttribute="bottom" constant="16" id="hzW-RT-JQz"/>
-                                <constraint firstItem="czQ-5I-E7e" firstAttribute="centerY" secondItem="mjk-vg-mYk" secondAttribute="centerY" id="k8V-jQ-GSL"/>
-                                <constraint firstItem="c7e-F8-dgF" firstAttribute="leading" secondItem="5vd-tZ-CWT" secondAttribute="leading" constant="20" id="rBH-eL-pS0"/>
-                                <constraint firstAttribute="trailing" secondItem="6u6-Ma-2KR" secondAttribute="trailing" constant="20" id="toW-r2-je8"/>
-                                <constraint firstItem="6u6-Ma-2KR" firstAttribute="centerY" secondItem="GBy-Z1-n96" secondAttribute="centerY" id="xW9-do-aGo"/>
+                                <constraint firstAttribute="trailing" secondItem="TEx-cD-ZR6" secondAttribute="trailing" id="5uS-hl-kBF"/>
+                                <constraint firstItem="TEx-cD-ZR6" firstAttribute="leading" secondItem="DMY-bn-wxE" secondAttribute="leading" id="f7h-5P-YmI"/>
+                                <constraint firstItem="TEx-cD-ZR6" firstAttribute="top" secondItem="DMY-bn-wxE" secondAttribute="top" id="neG-wd-uf5"/>
+                                <constraint firstAttribute="bottom" secondItem="TEx-cD-ZR6" secondAttribute="bottom" id="zR4-QL-Rm7"/>
+                            </constraints>
+                        </scrollView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qi7-Np-SbU">
+                            <rect key="frame" x="12" y="865" width="364" height="44"/>
+                            <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="44" id="Q5v-LL-ePg"/>
                             </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="确认注销">
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            </state>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="10"/>
+                                    <real key="value" value="22"/>
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
-                        </view>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="warning_image" translatesAutoresizingMaskIntoConstraints="NO" id="vNh-eW-Ega">
-                            <rect key="frame" x="169" y="32" width="50" height="50"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="50" id="F6j-t6-4fP"/>
-                                <constraint firstAttribute="width" constant="50" id="ptP-hm-Fam"/>
-                            </constraints>
-                        </imageView>
+                            <connections>
+                                <action selector="sureAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2MO-WT-9Dy"/>
+                            </connections>
+                        </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mMv-gk-ABM">
-                            <rect key="frame" x="12" y="338" width="364" height="48"/>
+                            <rect key="frame" x="16" y="794" width="356" height="48"/>
                             <subviews>
                                 <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入短信验证码" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="byh-5B-J1p">
-                                    <rect key="frame" x="12" y="0.0" width="248" height="48"/>
+                                    <rect key="frame" x="12" y="0.0" width="240" height="48"/>
                                     <color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                     <textInputTraits key="textInputTraits" keyboardType="numberPad" enablesReturnKeyAutomatically="YES"/>
                                 </textField>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="akE-r3-235">
-                                    <rect key="frame" x="272" y="9" width="80" height="30"/>
+                                    <rect key="frame" x="264" y="9" width="80" height="30"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="80" id="ZPH-DO-yJC"/>
                                         <constraint firstAttribute="height" constant="30" id="mdJ-zw-XGc"/>
@@ -184,7 +460,7 @@
                                     </connections>
                                 </button>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eNg-5K-VLo">
-                                    <rect key="frame" x="260" y="15" width="1" height="18"/>
+                                    <rect key="frame" x="252" y="15" width="1" height="18"/>
                                     <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="1" id="phO-BP-jmy"/>
@@ -217,18 +493,18 @@
                             </userDefinedRuntimeAttributes>
                         </view>
                     </subviews>
-                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="mMv-gk-ABM" firstAttribute="top" secondItem="5vd-tZ-CWT" secondAttribute="bottom" constant="16" id="2gq-fW-LBO"/>
-                        <constraint firstItem="KTf-hd-DqL" firstAttribute="top" secondItem="vNh-eW-Ega" secondAttribute="bottom" constant="30" id="MDT-x6-gta"/>
-                        <constraint firstAttribute="trailing" secondItem="mMv-gk-ABM" secondAttribute="trailing" constant="12" id="Odw-7n-dAN"/>
-                        <constraint firstAttribute="trailing" secondItem="5vd-tZ-CWT" secondAttribute="trailing" id="QcM-IX-ZbU"/>
-                        <constraint firstItem="vNh-eW-Ega" firstAttribute="centerX" secondItem="1nG-sZ-TOw" secondAttribute="centerX" id="V2r-Lk-5Yl"/>
-                        <constraint firstItem="5vd-tZ-CWT" firstAttribute="leading" secondItem="1nG-sZ-TOw" secondAttribute="leading" id="WHr-Rg-bOG"/>
-                        <constraint firstItem="KTf-hd-DqL" firstAttribute="centerX" secondItem="1nG-sZ-TOw" secondAttribute="centerX" id="axv-Ck-UAa"/>
-                        <constraint firstItem="vNh-eW-Ega" firstAttribute="top" secondItem="1nG-sZ-TOw" secondAttribute="top" constant="32" id="bjO-bi-SRZ"/>
-                        <constraint firstItem="mMv-gk-ABM" firstAttribute="leading" secondItem="1nG-sZ-TOw" secondAttribute="leading" constant="12" id="d4J-0C-w2q"/>
-                        <constraint firstItem="5vd-tZ-CWT" firstAttribute="top" secondItem="KTf-hd-DqL" secondAttribute="bottom" constant="20" id="oYg-fL-pcm"/>
+                        <constraint firstItem="DMY-bn-wxE" firstAttribute="top" secondItem="gTc-LK-g9D" secondAttribute="top" id="51g-OR-1xw"/>
+                        <constraint firstAttribute="trailing" secondItem="DMY-bn-wxE" secondAttribute="trailing" id="9f4-YR-Kif"/>
+                        <constraint firstAttribute="trailing" secondItem="Qi7-Np-SbU" secondAttribute="trailing" constant="12" id="HAr-Lp-QRJ"/>
+                        <constraint firstItem="mMv-gk-ABM" firstAttribute="top" secondItem="DMY-bn-wxE" secondAttribute="bottom" constant="20" id="Lby-ce-W2v"/>
+                        <constraint firstAttribute="trailing" secondItem="mMv-gk-ABM" secondAttribute="trailing" constant="16" id="MR7-ts-wGR"/>
+                        <constraint firstItem="DMY-bn-wxE" firstAttribute="leading" secondItem="gTc-LK-g9D" secondAttribute="leading" id="V5r-o8-Nw4"/>
+                        <constraint firstItem="Qi7-Np-SbU" firstAttribute="leading" secondItem="gTc-LK-g9D" secondAttribute="leading" constant="12" id="a8l-QS-a5p"/>
+                        <constraint firstItem="Qi7-Np-SbU" firstAttribute="top" secondItem="mMv-gk-ABM" secondAttribute="bottom" constant="23" id="iny-PA-ces"/>
+                        <constraint firstAttribute="bottom" secondItem="Qi7-Np-SbU" secondAttribute="bottom" constant="20" id="oUt-0s-bus"/>
+                        <constraint firstItem="mMv-gk-ABM" firstAttribute="leading" secondItem="gTc-LK-g9D" secondAttribute="leading" constant="16" id="oXI-Yc-4s2"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -236,36 +512,13 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
-                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Qi7-Np-SbU">
-                    <rect key="frame" x="25" y="635" width="364" height="44"/>
-                    <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="44" id="Q5v-LL-ePg"/>
-                    </constraints>
-                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
-                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                    <state key="normal" title="确认注销">
-                        <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    </state>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="22"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                    <connections>
-                        <action selector="sureAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2MO-WT-9Dy"/>
-                    </connections>
-                </button>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="1nG-sZ-TOw" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="12" id="8jF-bT-vPd"/>
-                <constraint firstAttribute="trailing" secondItem="Qi7-Np-SbU" secondAttribute="trailing" constant="25" id="AFc-rt-tSu"/>
-                <constraint firstAttribute="trailing" secondItem="1nG-sZ-TOw" secondAttribute="trailing" constant="13" id="VES-mT-09z"/>
-                <constraint firstItem="Qi7-Np-SbU" firstAttribute="top" secondItem="1nG-sZ-TOw" secondAttribute="bottom" constant="30" id="azy-hH-kV3"/>
-                <constraint firstAttribute="bottom" secondItem="Qi7-Np-SbU" secondAttribute="bottom" constant="20" id="dOO-dg-7et"/>
-                <constraint firstItem="1nG-sZ-TOw" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="no1-KX-Pyf"/>
-                <constraint firstItem="Qi7-Np-SbU" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="v9U-R8-Lum"/>
+                <constraint firstItem="gTc-LK-g9D" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="Ppc-Ts-PEn"/>
+                <constraint firstAttribute="trailing" secondItem="gTc-LK-g9D" secondAttribute="trailing" constant="13" id="aij-V5-Mbu"/>
+                <constraint firstAttribute="bottom" secondItem="gTc-LK-g9D" secondAttribute="bottom" constant="12" id="iiw-3v-ayF"/>
+                <constraint firstItem="gTc-LK-g9D" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="12" id="pF7-Zx-Ohy"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
@@ -273,9 +526,12 @@
             <connections>
                 <outlet property="codeButton" destination="akE-r3-235" id="XHj-Ps-QHA"/>
                 <outlet property="codeField" destination="byh-5B-J1p" id="7om-O3-CaM"/>
+                <outlet property="container" destination="TEx-cD-ZR6" id="iQr-fo-wfK"/>
+                <outlet property="containerWidth" destination="egp-Eu-9uS" id="Dei-ae-yEU"/>
                 <outlet property="phoneDescLabel" destination="KTf-hd-DqL" id="RxJ-6p-d9V"/>
+                <outlet property="scroll" destination="DMY-bn-wxE" id="d2d-a3-V91"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="12.388392857142856"/>
+            <point key="canvasLocation" x="131.8840579710145" y="96.763392857142847"/>
         </view>
     </objects>
     <resources>

+ 14 - 14
KulexiuForStudent/Podfile.lock

@@ -45,7 +45,7 @@ PODS:
   - MBProgressHUD (1.2.0)
   - MJExtension (3.3.0)
   - MJRefresh (3.1.17)
-  - NTLBridge (3.1.4)
+  - NTLBridge (3.1.5)
   - Reachability (3.2)
   - RongCloudIM/ChatRoom (5.3.1):
     - RongCloudIM/IMLibCore
@@ -75,25 +75,25 @@ PODS:
   - SocketRocket (0.6.0)
   - SSZipArchive (2.4.3)
   - TYCyclePagerView (1.2.0)
-  - Whiteboard (2.16.48):
-    - Whiteboard/Whiteboard-YYModel (= 2.16.48)
-  - Whiteboard/Base (2.16.48):
+  - Whiteboard (2.16.65):
+    - Whiteboard/Whiteboard-YYModel (= 2.16.65)
+  - Whiteboard/Base (2.16.65):
     - NTLBridge (~> 3.1.4)
     - Whiteboard/Object
-  - Whiteboard/Converter (2.16.48):
+  - Whiteboard/Converter (2.16.65):
     - Whiteboard/Object
-  - Whiteboard/Model (2.16.48):
+  - Whiteboard/Model (2.16.65):
     - YYModel
-  - Whiteboard/NativeReplayer (2.16.48):
+  - Whiteboard/NativeReplayer (2.16.65):
     - Whiteboard/Replayer
-  - Whiteboard/Object (2.16.48):
+  - Whiteboard/Object (2.16.65):
     - Whiteboard/Model
-  - Whiteboard/Replayer (2.16.48):
+  - Whiteboard/Replayer (2.16.65):
     - Whiteboard/Base
-  - Whiteboard/Resource (2.16.48)
-  - Whiteboard/Room (2.16.48):
+  - Whiteboard/Resource (2.16.65)
+  - Whiteboard/Room (2.16.65):
     - Whiteboard/Base
-  - Whiteboard/Whiteboard-YYModel (2.16.48):
+  - Whiteboard/Whiteboard-YYModel (2.16.65):
     - Whiteboard/Converter
     - Whiteboard/NativeReplayer
     - Whiteboard/Resource
@@ -176,7 +176,7 @@ SPEC CHECKSUMS:
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
   MJRefresh: ee5b68f639775462faba4db0fd243baf4d42c2cf
-  NTLBridge: 49780dc966976d3221a0eb03c7368617c1987cb6
+  NTLBridge: e94dc18242476b0238c10213a5438d9b9a59fcce
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   RongCloudIM: 869a9411f57b55ae9424b8253e299eff84f4d9bc
   RongCloudRTC: 3ad2cdafd8168b9cb5d9abec6d84bdeaefd4bff3
@@ -185,7 +185,7 @@ SPEC CHECKSUMS:
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
   TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
-  Whiteboard: 7a09387d227121ad8fb3cbfdc6b66a383c024a0e
+  Whiteboard: dd99387ed2e7e095bb541830958ec73119403f07
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   ZKCycleScrollView: 4b353d17b7f469b245a1c606d5a977e72b940895
 

+ 14 - 14
KulexiuForStudent/Pods/Manifest.lock

@@ -45,7 +45,7 @@ PODS:
   - MBProgressHUD (1.2.0)
   - MJExtension (3.3.0)
   - MJRefresh (3.1.17)
-  - NTLBridge (3.1.4)
+  - NTLBridge (3.1.5)
   - Reachability (3.2)
   - RongCloudIM/ChatRoom (5.3.1):
     - RongCloudIM/IMLibCore
@@ -75,25 +75,25 @@ PODS:
   - SocketRocket (0.6.0)
   - SSZipArchive (2.4.3)
   - TYCyclePagerView (1.2.0)
-  - Whiteboard (2.16.48):
-    - Whiteboard/Whiteboard-YYModel (= 2.16.48)
-  - Whiteboard/Base (2.16.48):
+  - Whiteboard (2.16.65):
+    - Whiteboard/Whiteboard-YYModel (= 2.16.65)
+  - Whiteboard/Base (2.16.65):
     - NTLBridge (~> 3.1.4)
     - Whiteboard/Object
-  - Whiteboard/Converter (2.16.48):
+  - Whiteboard/Converter (2.16.65):
     - Whiteboard/Object
-  - Whiteboard/Model (2.16.48):
+  - Whiteboard/Model (2.16.65):
     - YYModel
-  - Whiteboard/NativeReplayer (2.16.48):
+  - Whiteboard/NativeReplayer (2.16.65):
     - Whiteboard/Replayer
-  - Whiteboard/Object (2.16.48):
+  - Whiteboard/Object (2.16.65):
     - Whiteboard/Model
-  - Whiteboard/Replayer (2.16.48):
+  - Whiteboard/Replayer (2.16.65):
     - Whiteboard/Base
-  - Whiteboard/Resource (2.16.48)
-  - Whiteboard/Room (2.16.48):
+  - Whiteboard/Resource (2.16.65)
+  - Whiteboard/Room (2.16.65):
     - Whiteboard/Base
-  - Whiteboard/Whiteboard-YYModel (2.16.48):
+  - Whiteboard/Whiteboard-YYModel (2.16.65):
     - Whiteboard/Converter
     - Whiteboard/NativeReplayer
     - Whiteboard/Resource
@@ -176,7 +176,7 @@ SPEC CHECKSUMS:
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
   MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
   MJRefresh: ee5b68f639775462faba4db0fd243baf4d42c2cf
-  NTLBridge: 49780dc966976d3221a0eb03c7368617c1987cb6
+  NTLBridge: e94dc18242476b0238c10213a5438d9b9a59fcce
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   RongCloudIM: 869a9411f57b55ae9424b8253e299eff84f4d9bc
   RongCloudRTC: 3ad2cdafd8168b9cb5d9abec6d84bdeaefd4bff3
@@ -185,7 +185,7 @@ SPEC CHECKSUMS:
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
   TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
-  Whiteboard: 7a09387d227121ad8fb3cbfdc6b66a383c024a0e
+  Whiteboard: dd99387ed2e7e095bb541830958ec73119403f07
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   ZKCycleScrollView: 4b353d17b7f469b245a1c606d5a977e72b940895
 

File diff suppressed because it is too large
+ 202 - 206
KulexiuForStudent/Pods/Pods.xcodeproj/project.pbxproj


+ 1 - 1
KulexiuForStudent/Pods/Target Support Files/Whiteboard/ResourceBundle-Whiteboard-Whiteboard-Info.plist

@@ -13,7 +13,7 @@
   <key>CFBundlePackageType</key>
   <string>BNDL</string>
   <key>CFBundleShortVersionString</key>
-  <string>2.16.48</string>
+  <string>2.16.65</string>
   <key>CFBundleSignature</key>
   <string>????</string>
   <key>CFBundleVersion</key>

+ 1 - 1
KulexiuForStudent/Pods/Target Support Files/Whiteboard/Whiteboard-Info.plist

@@ -15,7 +15,7 @@
   <key>CFBundlePackageType</key>
   <string>FMWK</string>
   <key>CFBundleShortVersionString</key>
-  <string>2.16.48</string>
+  <string>2.16.65</string>
   <key>CFBundleSignature</key>
   <string>????</string>
   <key>CFBundleVersion</key>

+ 3 - 23
KulexiuForStudent/Pods/Whiteboard/README-zh.md

@@ -15,7 +15,6 @@
   - [项目结构](#项目结构)
   - [Native音视频](#native音视频)
   - [动态ppt本地资源包](#动态ppt本地资源包)
-  - [fpa加速(iOS 13 及其以上)](#fpa加速ios-13-及其以上)
   - [自定义App插件](#自定义app插件)
     - [注册自定义App插件](#注册自定义app插件)
     - [添加自定义App插件到白板中](#添加自定义app插件到白板中)
@@ -238,21 +237,6 @@ sdk 现在支持使用 CombinePlayer,在 Native 端播放音视频,sdk 会
 
 [动态转换资源包](https://developer.netless.link/server-zh/home/server-dynamic-conversion-zip)
 
-
-## fpa加速(iOS 13 及其以上)
-
-1. podfile 添加 `pod 'Whiteboard/fpa'` 依赖
-2. 配置 WhiteRoomConfig 的 `nativeWebSocket` 为 YES
-3. 如需监听FPA连接状态,可以调用 `[[FpaProxyService sharedFpaProxyService] setupDelegate:(id<FpaProxyServiceDelegate>)self];`
-
-注意:如果是M1的电脑想要在模拟器调试,请在Podfile里加入如下声明:
-```ruby
-  post_install do |installer|
-    installer.pods_project.build_configurations.each do |config|
-      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
-    end
-```
-
 ## 自定义App插件
 
 自定义App插件可以扩展白板功能,用户通过编写js代码来实现自己的白板插件。
@@ -320,17 +304,13 @@ Native端在使用自定义App时需要注册对应的App到SDK中。
 pod 'Whiteboard/Whiteboard-YYKit'
 ```
 
-如果你引用了fpa你可以这样声明:
-
-``` ruby
-pod 'Whiteboard/fpa-YYKit'
-```
-
 ## 部分问题
 
 1. 目前 SDK 关键字为`White`,未严格使用前置三大写字母做前缀。
 2. 在白板内容比较复杂的情况下,白板有可能会因为内存不足的原因被系统kill掉,导致白屏,我们在 2.16.30 的版本中对该情况进行了主动恢复。在 2.16.30 的版本前,可以通过设置  `WhiteBoardView` 的 `navigationDelegate` 来监听 `webViewWebContentProcessDidTerminate:` 方法。当白板被kill掉时,会调用该方法,你可以在该方法中提示用户重新连接以恢复白板。
-3. 关于 cocoapods 发版:由于项目中的一些子仓库依赖了一些不支持arm64-simulator的静态库,比如 `YYKit` 和 `AgoraFPA_iOS` ,导致 pod lint 无法通过。 目前的解决办法是修改本地的 `validator.rb` 文件。具体参考 [这里](https://github.com/caixindong/Cocoapods_fix_i386/blob/master/validator.rb)。
+3. 关于 cocoapods 发版:由于项目中的一些子仓库依赖了一些不支持arm64-simulator的静态库,比如 `YYKit` ,导致 pod lint 无法通过。 目前的解决办法是修改本地的 `validator.rb` 文件。具体参考 [这里](https://github.com/caixindong/Cocoapods_fix_i386/blob/master/validator.rb)。
+4. 由于使用的场景存在较多可能性,第三方代码的引用方式请使用条件判断的方式来引入,比如 `#import "YYModel.h"` 需要替换成 `#if __has_include(<YYModel/YYModel.h>) #import <YYModel/YYModel.h>`.
+5. 从 2.16.63 版本开始,fpa加速停止提供服务。
 
 ## Whiteboard - Framework 拖拽方式集成
 

+ 2 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteCommonCallbacks.h

@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+#import "WhiteSlideDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -109,6 +110,7 @@ NS_ASSUME_NONNULL_BEGIN
  通用回调。详见 [WhiteCommonCallbackDelegate](WhiteCommonCallbackDelegate)。
  */
 @property (nonatomic, weak) id<WhiteCommonCallbackDelegate> delegate;
+@property (nonatomic, weak) id<WhiteSlideDelegate> slideDelegate;
 
 @end
 

+ 17 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteCommonCallbacks.m

@@ -8,6 +8,11 @@
 #import "WhiteCommonCallbacks.h"
 #import "WhiteConsts.h"
 #import "WhiteObject.h"
+#if __has_include(<NTLBridge/DWKWebView.h>)
+#import <NTLBridge/DWKWebView.h>
+#else
+#import "DWKWebView.h"
+#endif
 
 @implementation WhiteCommonCallbacks
 
@@ -39,6 +44,15 @@
     return @"";
 }
 
+- (void)slideUrlInterrupter:(NSString *)url completionHandler:(JSCallback)completionHandler
+{
+    if ([self.slideDelegate respondsToSelector:@selector(slideUrlInterrupter:completionHandler:)]) {
+        [self.slideDelegate slideUrlInterrupter:url completionHandler:^(NSString * _Nullable result) {
+            completionHandler(result, YES);
+        }];
+    }
+}
+
 - (NSString *)urlInterrupter:(NSString *)url
 {
     if ([self.delegate respondsToSelector:@selector(urlInterrupter:)]) {
@@ -102,6 +116,9 @@
     if (dict && [dict[@"type"] isEqualToString:@"@slide/_report_log_"]) {
         [[NSNotificationCenter defaultCenter] postNotificationName:@"Slide-Log" object:nil userInfo:dict];
     }
+    if (dict && [dict[@"type"] isEqualToString:@"@slide/_report_volume_"]) {
+        [[NSNotificationCenter defaultCenter] postNotificationName:@"Slide-Volume" object:nil userInfo:dict];
+    }
     if (dict && [self.delegate respondsToSelector:@selector(customMessage:)]) {
         [self.delegate customMessage:dict];
     }

+ 1 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteDisplayer.h

@@ -76,7 +76,7 @@ NS_ASSUME_NONNULL_BEGIN
 #pragma mark - SyncedStore
 /**
  * 获取 SyncedStore 对象
- * 注意 SyncedStore 只有在 `WhiteSdkConfiguration` 的 `enableSyncedStore` 为 true 的情况下才能正常使用
+ * 注意 SyncedStore 只有在 `WhiteSdkConfiguration` 的 `enableSyncedStore` 为  YES  的情况下才能正常使用
  */
 - (SyncedStore *)obtainSyncedStore;
 

+ 1 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Displayer/WhiteDisplayerState.h

@@ -33,7 +33,7 @@ FOUNDATION_EXPORT WhiteWindowBoxState const WhiteWindowBoxStateMax;
 
  **Note:** 如果你使用 Swift,在配置 [WhiteGlobalState](WhiteGlobalState) 子类属性时,需要对属性添加 `@objc` 修饰符。
 
- @return 
+ @return 配置是否成功
  
   - `YES`:配置成功。
   - `No`:配置失败,恢复为 [WhiteGlobalState](WhiteGlobalState) 类。

+ 3 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteConsts.h

@@ -34,4 +34,6 @@ extern WhiteRegionKey const WhiteRegionIN;
 /** 新加坡 */
 extern WhiteRegionKey const WhiteRegionSG;
 /** 英国 */
-extern WhiteRegionKey const WhiteRegionGB;
+extern WhiteRegionKey const WhiteRegionGB DEPRECATED_MSG_ATTRIBUTE("Using WhiteRegionEU instead.");
+/** 欧洲 */
+extern WhiteRegionKey const WhiteRegionEU;

+ 1 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteConsts.m

@@ -20,3 +20,4 @@ WhiteRegionKey const WhiteRegionUS = @"us-sv";
 WhiteRegionKey const WhiteRegionIN = @"in-mum";
 WhiteRegionKey const WhiteRegionSG = @"sg";
 WhiteRegionKey const WhiteRegionGB = @"gb-lon";
+WhiteRegionKey const WhiteRegionEU = @"eu";

+ 3 - 3
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteMemberState.h

@@ -90,13 +90,13 @@ extern WhiteApplianceShapeTypeKey const ApplianceShapeTypeSpeechBalloon;
 @property (nonatomic, strong, readwrite, nullable) NSNumber *textSize;
 /**
  开启后可以在文字教具下直接选择编辑文字。NSNumber取值为 bool 类型。
- 默认为 false
+ 默认为 NO
  */
 @property (nonatomic, assign, readwrite, nullable) NSNumber *textCanSelectText;
 /**
  开启后可以在画笔教具下画虚线。NSNumber取值为 bool 类型。
- 该功能要求设置 `disableNewPencil` 为 false
- 默认为 false
+ 该功能要求设置 `disableNewPencil` 为 NO
+ 默认为 NO
  */
 @property (nonatomic, assign, readwrite, nullable) NSNumber *dottedLine;
 /**

+ 2 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteRoomMember.h

@@ -31,7 +31,8 @@ NS_ASSUME_NONNULL_BEGIN
  
  用户加入房间时携带的用户信息。
  */
-@property (nonatomic, strong, readonly, nullable) WhiteMemberInformation *information;
+@property (nonatomic, strong, readonly, nullable) WhiteMemberInformation *information
+DEPRECATED_MSG_ATTRIBUTE("use payload");
 
 /**
  用户加入房间时携带的自定义用户信息。

+ 2 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteWindowParams.h

@@ -22,6 +22,8 @@ FOUNDATION_EXPORT WhitePrefersColorScheme const WhitePrefersColorSchemeDark;
 @property (nonatomic, strong) NSNumber *containerSizeRatio;
 /** 多窗口区域(主窗口)以外的空间显示 PS 棋盘背景,默认 YES */
 @property (nonatomic, assign) BOOL chessboard;
+/** 是否使用窗口最大化,开启后添加的窗口将全屏展示。 默认 NO */
+@property (nonatomic, assign) BOOL fullscreen;
 /** 驼峰形式的 CSS,透传给多窗口时,最小化 div 的 css */
 @property (nonatomic, copy, nullable) NSDictionary *collectorStyles;
 /** 是否在网页控制台打印日志,默认 YES */

+ 1 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Object/WhiteWindowParams.m

@@ -18,6 +18,7 @@ WhitePrefersColorScheme const WhitePrefersColorSchemeDark = @"dark";
     _chessboard = YES;
     _containerSizeRatio = @(9/16.0);
     _debug = YES;
+    _fullscreen = NO;
     _prefersColorScheme = WhitePrefersColorSchemeLight;
     return self;
 }

+ 6 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Replayer/WhitePlayerConfig.h

@@ -40,6 +40,12 @@ NS_ASSUME_NONNULL_BEGIN
  @since 2.11.0 */
 @property (nonatomic, strong, nullable) WhiteRegionKey region;
 
+/**
+ * 白板请求 modules 数据的地址,配置后不会请求白板默认地址
+ * @example https://modules.example.com
+ */
+@property (nonatomic, copy, nullable) NSString *modulesOrigin;
+
 /** 房间 UUID,即房间唯一标识符。 */
 @property (nonatomic, copy) NSString *room;
 

+ 16 - 3
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoom.h

@@ -21,6 +21,7 @@
 #import "WhiteDisplayer.h"
 #import "WhiteSDK+Room.h"
 #import "WhiteAppParam.h"
+#import "WhiteWindowDocsEventOptions.h"
 
 @class WhiteBoardView;
 
@@ -519,7 +520,7 @@ NS_ASSUME_NONNULL_BEGIN
 /**
  开启/禁止本地序列化。 
 
- 设置 `disableSerialization(true)` 后,以下方法将不生效:
+ 设置 `disableSerialization(YES)` 后,以下方法将不生效:
 
  - `redo`
  - `undo`
@@ -528,7 +529,7 @@ NS_ASSUME_NONNULL_BEGIN
  - `paste` 
 
  @warning
- 如果要设置 `disableSerialization(false)`,必须确保同一房间内所有用户使用的 SDK 满足以下版本要求,否则会导致 app 客户端崩溃。
+ 如果要设置 `disableSerialization(NO)`,必须确保同一房间内所有用户使用的 SDK 满足以下版本要求,否则会导致 app 客户端崩溃。
 
  - Web SDK 2.9.2 或之后版本
  - Android SDK 2.9.3 或之后版本
@@ -640,6 +641,18 @@ NS_ASSUME_NONNULL_BEGIN
  */
 - (void)closeApp:(NSString *)appId completionHandler:(void (^)(void))completionHandler;
 
+/**
+ * 派发文档事件
+ * 在多窗口模式下,该方法可以用来操作当前聚焦的文档窗口。
+ *
+ * @param docsEvent 事件类型。
+ * @param options 可选事件参数。
+ * @params completionHandler 完成回调。
+ *
+ * @warning 该方法只有在文档视图加载完毕时才能调用。不支持多次连续调用,只有当当前的转场动画完毕之后才能进行下一次调用。
+ */
+- (void)dispatchDocsEvent:(WhiteWindowDocsEventKey)docsEvent options:( WhiteWindowDocsEventOptions * _Nullable )options completionHandler:(void (^)(bool success))completionHandler;
+
 @end
 
 #pragma mark - 弃用方法
@@ -649,7 +662,7 @@ NS_ASSUME_NONNULL_BEGIN
  @deprecated 该方法已废弃,请使用 [disableDeviceInputs](disableDeviceInputs:) 和 [disableCameraTransform](disableCameraTransform:)。
 
  禁止操作。
- @param disable 是否禁止操作,true 为禁止。
+ @param disable 是否禁止操作,YES 为禁止。
  */
 - (void)disableOperations:(BOOL)disable DEPRECATED_MSG_ATTRIBUTE("use disableDeviceInputs and disableCameraTransform");
 

+ 14 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoom.m

@@ -306,7 +306,6 @@
     NSDictionary *params = (index == -1) ? @{} : @{@"index": @(index)};
     [self.bridge callHandler:@"room.removePage" arguments:@[params] completionHandler:^(id  _Nullable value) {
         if (completionHandler) {
-            
             if ([value isKindOfClass:[NSNumber class]]) {
                 return completionHandler([(NSNumber *)value boolValue]);
             }
@@ -649,6 +648,20 @@ static NSString * const RoomSyncNamespace = @"room.sync.%@";
     }];
 }
 
+- (void)dispatchDocsEvent:(WhiteWindowDocsEventKey)docsEvent options:(WhiteWindowDocsEventOptions *)options completionHandler:(void (^)(bool))completionHandler {
+    WhiteWindowDocsEventOptions *ops = options;
+    if (!ops) {
+        ops = [[WhiteWindowDocsEventOptions alloc] init];
+    }
+    [self.bridge callHandler:@"room.dispatchDocsEvent" arguments:@[docsEvent, ops] completionHandler:^(id  _Nullable value) {
+        if ([value isKindOfClass:[NSNumber class]]) {
+            return completionHandler([(NSNumber *)value boolValue]);
+        } else {
+            completionHandler(NO);
+        }
+    }];
+}
+
 @end
 
 

+ 10 - 8
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoomConfig.h

@@ -62,6 +62,12 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, strong, nullable) WhiteRegionKey region;
 
 /**
+ * 白板请求 modules 数据的地址,配置后不会请求白板默认地址
+ * @example https://modules.example.com
+ */
+@property (nonatomic, copy, nullable) NSString *modulesOrigin;
+
+/**
  禁止/允许工具响应用户输入。
 
  - `YES`:禁止工具响应用户输入。
@@ -112,8 +118,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 /**
  * 在用选择工具(``currentApplianceName="selector"``)选中物体后,出现的浮动条。
- * 若为 ``false``(默认值),则永远不会出现浮动条。若为 ``true``,则会出现浮动条。
- * 并且,若为 ``true`` , 只有选用单个物体或者同类物体才会出现浮动条。
+ * 若为 ``NO``(默认值),则永远不会出现浮动条。若为 ``YES``,则会出现浮动条。
+ * 并且,若为 ``YES`` , 只有选用单个物体或者同类物体才会出现浮动条。
  */
 @property (nonatomic, assign) BOOL floatBar;
 
@@ -172,13 +178,13 @@ NS_ASSUME_NONNULL_BEGIN
 
 
 /**
- 加入房间的超时时间。单位为秒。
+ 加入房间的超时时间。单位为秒。
 
  SDK 超时后会主动断连,并触发 [firePhaseChanged](firePhaseChanged:) 回调。同时触发 [fireDisconnectWithError](fireDisconnectWithError:) 回调并返回”重连时长超出 xx 毫秒”的提示。
  */
 @property (nonatomic, strong) NSNumber *timeout;
 
-///** 是否开启多窗口,默认为 false,开启后,各种 API 会进行更改。正式版该 API 已经迁移到 WhiteSDKConfiguration 中 */
+///** 是否开启多窗口,默认为 NO,开启后,各种 API 会进行更改。正式版该 API 已经迁移到 WhiteSDKConfiguration 中 */
 //@property (nonatomic, assign) BOOL useMultiViews;
 
 /** 多窗口用的本地参数,只影响本地客户 */
@@ -207,7 +213,3 @@ NS_ASSUME_NONNULL_BEGIN
 @end
 
 NS_ASSUME_NONNULL_END
-
-#if __has_include("WhiteRoomConfig+FPA.h")
-#import "WhiteRoomConfig+FPA.h"
-#endif

+ 1 - 11
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteRoomConfig.m

@@ -23,7 +23,7 @@
 - (instancetype)init
 {
     NSAssert(false, @"please never use this method.");
-    return [self initWithUUID:nil roomToken:nil uid:@"" userPayload:nil];
+    return [self initWithUUID:@"" roomToken:@"" uid:@"" userPayload:nil];
 }
 
 - (instancetype)initWithUUID:(NSString *)uuid roomToken:(NSString *)roomToken uid:(NSString *)uid
@@ -67,14 +67,4 @@
     _disableCameraTransform = disableOperations;
 }
 
-#if __has_include("WhiteRoomConfig+FPA.h")
-- (void)setNativeWebSocket:(BOOL)nativeWebSocket {
-    if (@available(iOS 13.0, *)) {
-        _nativeWebSocket = nativeWebSocket;
-    } else {
-        _nativeWebSocket = NO;
-    }
-}
-#endif
-
 @end

+ 0 - 14
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/Room/WhiteSDK+Room.m

@@ -14,10 +14,6 @@
 #import "WhiteRoom.h"
 #import "WhiteSocket.h"
 #import "WhiteSocket+Private.h"
-#if __has_include ("WhiteRoomConfig+FPA.h")
-#import "WhiteFPA.h"
-#import "WhiteRoomConfig+FPA.h"
-#endif
 
 #if DEBUG
 #import "WritableDetectRoom.h"
@@ -37,16 +33,6 @@
         WhiteRoomCallbacks *roomCallbacks = [[WhiteRoomCallbacks alloc] init];
         self.bridge.roomCallbacks = roomCallbacks;
         [self.bridge addJavascriptObject:roomCallbacks namespace:@"room"];
-        
-#if __has_include ("WhiteRoomConfig+FPA.h")
-        if (@available(iOS 13.0, *)) {
-            if (config.nativeWebSocket) {
-                [WhiteFPA setupFpa:[WhiteFPA defaultFpaConfig] chain:[WhiteFPA defaultChain]];
-                WhiteSocket *socket = [[WhiteSocket alloc] initWithBridge:self.bridge];
-                [self.bridge addJavascriptObject:socket namespace:@"ws"];
-            }
-        }
-#endif
     }
 
     

+ 28 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSDK.h

@@ -12,6 +12,7 @@
 #import "WhiteAudioMixerBridge.h"
 #import "WhiteFontFace.h"
 #import "WhiteRegisterAppParams.h"
+#import "WhiteSlideDelegate.h"
 NS_ASSUME_NONNULL_BEGIN
 
 /** 白板 SDK 相关方法。 */
@@ -116,6 +117,22 @@ NS_ASSUME_NONNULL_BEGIN
  */
 - (void)updateTextFont:(NSArray <NSString *>*)fonts;
 
+#pragma mark - PPT Volume
+
+/**
+ 获取当前 slide 音量
+ @param completionHandler 调用结果
+ - 如果调用成功: volume 返回值为 0-1 之间的值,error 为 nil
+ - 如果调用失败: volume 返回值为0,error 会返回详细信息
+ */
+- (void)getSlideVolumeWithCompletionHandler:(void(^)(CGFloat volume, NSError *error))completionHandler;
+
+/**
+ 更新当前 slide 音量
+ @param volume 音量值,0-1
+ */
+- (void)updateSlideVolume:(CGFloat)volume;
+
 #pragma mark - CommonCallback
 
 /**
@@ -127,6 +144,17 @@ NS_ASSUME_NONNULL_BEGIN
  */
 - (void)setCommonCallbackDelegate:(nullable id<WhiteCommonCallbackDelegate>)callbackDelegate;
 
+#pragma mark - SlideCallback
+
+/**
+ 设置 多窗口 Slide 回调事件。
+
+ SDK 通过 [WhiteSlideDelegate](WhiteSlideDelegate) 类处理 Slide 的回调。
+ 
+ @param slideDelegate Slide 回调事件,详见 [WhiteSlideDelegate](WhiteSlideDelegate)。
+ */
+- (void)setSlideDelegate:(nullable id<WhiteSlideDelegate>)slideDelegate;
+
 #pragma mark - CustomApp
 
 /**

+ 43 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSDK.m

@@ -21,6 +21,7 @@
 @property (nonatomic, copy) NSString *slideLogPath;
 @property (nonatomic, copy) NSFileHandle *slideLogFileHandler;
 @property (nonatomic, copy) void(^requestLogHandler)(BOOL success, NSError *error);
+@property (nonatomic, copy) void(^requestSlideVolumeHandler)(CGFloat volume, NSError *error);
 
 @end
 
@@ -28,7 +29,7 @@
 
 + (NSString *)version
 {
-    return @"2.16.48";
+    return @"2.16.65";
 }
 
 - (instancetype)initWithWhiteBoardView:(WhiteBoardView *)boardView config:(WhiteSdkConfiguration *)config commonCallbackDelegate:(nullable id<WhiteCommonCallbackDelegate>)callback audioMixerBridgeDelegate:( id<WhiteAudioMixerBridgeDelegate>)mixer
@@ -118,6 +119,26 @@
 {
     [self.bridge setupWebSDKWithConfig:self.config completion:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSlideLogNotification:) name:@"Slide-Log" object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSlideVolumeNotification:) name:@"Slide-Volume" object:nil];
+}
+
+#pragma mark - PPT Volume
+- (void)getSlideVolumeWithCompletionHandler:(void (^)(CGFloat, NSError * _Nonnull))completionHandler
+{
+    self.requestSlideVolumeHandler = completionHandler;
+    __weak typeof(self) weakSelf = self;
+    [self.bridge evaluateJavaScript:@"window.postMessage({type: \"@slide/_get_volume_\"}, '*');" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
+        if (error) {
+            completionHandler(0, error);
+            weakSelf.requestSlideVolumeHandler = nil;
+            return;
+        }
+    }];
+}
+
+- (void)updateSlideVolume:(CGFloat)volume
+{
+    [self.bridge evaluateJavaScript:[NSString stringWithFormat:@"window.postMessage ({'type': \"@slide/_update_volume_\", 'volume': %f}, '*')", volume] completionHandler:nil];
 }
 
 #pragma mark - CommonCallback
@@ -126,6 +147,12 @@
     self.bridge.commonCallbacks.delegate = callbackDelegate;
 }
 
+#pragma mark - SlideCallback
+- (void)setSlideDelegate:(nullable id<WhiteSlideDelegate>)slideDelegate
+{
+    self.bridge.commonCallbacks.slideDelegate = slideDelegate;
+}
+
 #pragma mark - Slide 日志
 - (void)requestSlideLogToFilePath:(NSString *)path result:(void(^)(BOOL success, NSError *error))result
 {
@@ -157,6 +184,21 @@
     self.slideLogFileHandler = nil;
 }
 
+- (void)onSlideVolumeNotification:(NSNotification *)notification
+{
+    if (!self.requestSlideVolumeHandler) {
+        return;
+    }
+    NSDictionary *userInfo = notification.userInfo;
+    if (userInfo[@"volume"]) {
+        CGFloat volume = [userInfo[@"volume"] floatValue];
+        self.requestSlideVolumeHandler(volume, nil);
+        return;
+    }
+    NSError *error = [NSError errorWithDomain:WhiteConstErrorDomain code:-70000 userInfo:userInfo];
+    self.requestSlideVolumeHandler(0, error);
+}
+
 - (void)onSlideLogNotification:(NSNotification *)notification
 {
     NSDictionary *userInfo = notification.userInfo;

+ 22 - 3
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSdkConfiguration.h

@@ -8,6 +8,7 @@
 #import "WhiteObject.h"
 #import <UIKit/UIKit.h>
 #import "WhiteConsts.h"
+#import "WhiteSlideAppParams.h"
 
 
 typedef NS_ENUM(NSInteger, WhiteDeviceType) {
@@ -185,9 +186,20 @@ FOUNDATION_EXPORT WhiteSDKLoggerReportModeKey const WhiteSDKLoggerReportBan;
 
 @property (nonatomic, assign) BOOL routeBackup __deprecated_msg("this api has no effect");
 
-/** 动态 ppt 参数。详见 [WhitePptParams](WhitePptParams)。 */
-@property (nonatomic, strong) WhitePptParams *pptParams;
+/** @deprecated 该属性已废弃。请使用 WhiteSlideAppParams */
+@property (nonatomic, strong) WhitePptParams *pptParams __deprecated_msg("use WhiteSlideAppParams instead");
 
+/** SlideApp 参数。详见 [WhiteSlideAppParams](WhiteSlideAppParams)  */
+@property (nonatomic, strong) WhiteSlideAppParams *whiteSlideAppParams;
+
+/**
+ 是否开启 Slide 资源 url 拦截替换功能。
+ 开启之后,需要同时设置 `WhiteSDK.setSlideDelegate` 在 `slideUrlInterrupter` 回调中对 url 进行处理。
+ 
+ - `YES`:开启。
+ - `NO`:(默认)关闭。
+ */
+@property (nonatomic, assign) BOOL enableSlideInterrupterAPI;
 
 @property (nonatomic, assign) BOOL disableDeviceInputs;
 
@@ -199,9 +211,16 @@ FOUNDATION_EXPORT WhiteSDKLoggerReportModeKey const WhiteSDKLoggerReportBan;
 /** 独立的 SyncedStore 状态,与 globalState 类似,但是没有任何 SDK 内部的状态 */
 @property (nonatomic, assign) BOOL enableSyncedStore;
 
-/** 是否开启多窗口,默认为 false,开启后,各种 API 会进行更改。*/
+/** 是否开启多窗口,默认为 NO,开启后,各种 API 会进行更改。*/
 @property (nonatomic, assign) BOOL useMultiViews;
 
+/**
+ * 配置白板的 API 服务器域名列表,可以用于服务器代理。配置后,白板不再使用 sdk 自带配置。
+ * @example
+ * [api.example.com]
+ */
+@property (nonatomic, copy, nullable) NSArray<NSString*> *apiHosts;
+
 @end
 
 @implementation WhiteSdkConfiguration (Deleted)

+ 5 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Classes/SDK/WhiteSdkConfiguration.m

@@ -74,6 +74,8 @@ static NSString *const kJSDeviceType = @"deviceType";
     _appIdentifier = appIdentifier;
     _pptParams = [[WhitePptParams alloc] init];
     _disableNewPencilStroke = NO;
+    _whiteSlideAppParams = [[WhiteSlideAppParams alloc] init];
+    _enableSlideInterrupterAPI = NO;
     return self;
 }
 
@@ -81,7 +83,9 @@ static NSString *const kJSDeviceType = @"deviceType";
 {
     return @{@"nativeTags": @"__nativeTags",
              @"platform": @"__platform",
-             @"netlessUA": @"__netlessUA"};
+             @"netlessUA": @"__netlessUA",
+             @"whiteSlideAppParams": @"slideAppOptions"
+    };
 }
 
 - (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic {

+ 1 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/index.html

@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>white-sdk-bridge Application</title><script defer="defer" src="runtime.42cce1dd.js"></script><script defer="defer" src="web-sdk.4473eae6.js"></script><script defer="defer" src="netless.618c57ce.js"></script><script defer="defer" src="video.b3db6331.js"></script><script defer="defer" src="vendor.cf7bef63.js"></script><script defer="defer" src="main.33a19dec.js"></script><link href="netless.css" rel="stylesheet"><link href="main.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
+<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>white-sdk-bridge Application</title><script defer="defer" src="runtime.94c1d79a.js"></script><script defer="defer" src="web-sdk.4083aee9.js"></script><script defer="defer" src="netless.178d4634.js"></script><script defer="defer" src="video.16e43ef6.js"></script><script defer="defer" src="vendor.726e5079.js"></script><script defer="defer" src="main.af8ddf7a.js"></script><link href="netless.css" rel="stylesheet"><link href="vendor.css" rel="stylesheet"><link href="main.css" rel="stylesheet"></head><body><div id="root"></div></body></html>

File diff suppressed because it is too large
+ 0 - 0
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/main.css


+ 0 - 1
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/runtime.42cce1dd.js

@@ -1 +0,0 @@
-!function(){"use strict";var e,n={},r={};function t(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={id:e,loaded:!1,exports:{}};return n[e](i,i.exports,t),i.loaded=!0,i.exports}t.m=n,t.amdD=function(){throw new Error("define cannot be used indirect")},t.amdO={},e=[],t.O=function(n,r,o,i){if(!r){var u=1/0;for(d=0;d<e.length;d++){r=e[d][0],o=e[d][1],i=e[d][2];for(var f=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(f=!1,i<u&&(u=i));if(f){e.splice(d--,1);var a=o();void 0!==a&&(n=a)}}return n}i=i||0;for(var d=e.length;d>0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[r,o,i]},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e={666:0};t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],f=r[1],c=r[2],a=0;if(u.some((function(n){return 0!==e[n]}))){for(o in f)t.o(f,o)&&(t.m[o]=f[o]);if(c)var d=c(t)}for(n&&n(r);a<u.length;a++)i=u[a],t.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return t.O(d)},r=self.webpackChunkwhiteboard_bridge=self.webpackChunkwhiteboard_bridge||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();

File diff suppressed because it is too large
+ 0 - 5
KulexiuForStudent/Pods/Whiteboard/Whiteboard/Resource/video.b3db6331.js


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