浏览代码

消息推送

Steven 4 年之前
父节点
当前提交
f68e9e6b26

+ 116 - 5
MusicGradeExam/MusicGradeExam/AppDelegate.m

@@ -28,6 +28,8 @@
 #import "KSIMService.h"
 #import "RCConnectionManager.h"
 #import "UserInfoManager.h"
+#import "ExamDisplayViewController.h"
+#import "WaitExamViewController.h"
 
 @interface AppDelegate ()<UITabBarControllerDelegate, RCIMReceiveMessageDelegate,JPUSHRegisterDelegate,LoginDelegate>
 {
@@ -520,7 +522,72 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
 
 #pragma mark 根据不同消息跳转不同界面
 - (void)getVCUserInfoDict:(NSMutableDictionary *)infoDict {
-    
+    if (![NSString isEmptyString:[infoDict stringValueForKey:@"memo"]]) {
+        NSString *memoStr = [infoDict stringValueForKey:@"memo"];
+        NSString *headStr = [[memoStr componentsSeparatedByString:@"?"] firstObject];
+        
+        if ([headStr isEqualToString:@"1"]) { // 报考详情
+            NSRange range = [memoStr rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memoStr substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                CustomNavViewController *navCtrl = [self getCurrentNavController];
+                [navCtrl pushViewController:webCtrl animated:YES];
+            }
+        }
+        else if ([headStr isEqualToString:@"2"]) { // 调到准考证
+            if ([self checkIsLoginToLoginView:YES]) {
+                NSString *valueStr = [[memoStr componentsSeparatedByString:@"?"] lastObject];
+                NSArray *parmArray = [valueStr componentsSeparatedByString:@"&"];
+                for (NSString *subStr in parmArray) {
+                    if ([subStr containsString:@"examRegistrationId"]) {
+                        ExamDisplayViewController *displayVC = [[ExamDisplayViewController alloc] init];
+                        displayVC.examRegistrationId = [[subStr componentsSeparatedByString:@"="] lastObject];
+                        CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                        [navCtrl pushViewController:displayVC animated:YES];
+                    }
+                }
+            }
+        }
+        else if ([headStr isEqualToString:@"3"]) { // 待考区
+            if ([self checkIsLoginToLoginView:YES]) {
+                NSString *valueStr = [[memoStr componentsSeparatedByString:@"?"] lastObject];
+                NSArray *parmArray = [valueStr componentsSeparatedByString:@"&"];
+                for (NSString *subStr in parmArray) {
+                    if ([subStr containsString:@"examRegistrationId"]) {
+                        WaitExamViewController *waitCtrl = [[WaitExamViewController alloc] init];
+                        waitCtrl.examRegistrationId = [[subStr componentsSeparatedByString:@"="] lastObject];
+                        CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                        [navCtrl pushViewController:waitCtrl animated:YES];
+                    }
+                }
+            }
+        }
+        else if ([headStr isEqualToString:@"4"]) { // 考试记录
+            NSRange range = [memoStr rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memoStr substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                CustomNavViewController *navCtrl = [self getCurrentNavController];
+                [navCtrl pushViewController:webCtrl animated:YES];
+            }
+        }
+        else {
+            NSRange range = [memoStr rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memoStr substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                CustomNavViewController *navCtrl = [self getCurrentNavController];
+                [navCtrl pushViewController:webCtrl animated:YES];
+            }
+        }
+    }
 }
 
 #pragma mark ---- 处理外链
@@ -531,13 +598,57 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
         if (![NSString isEmptyString:linkUrl]) {
             linkUrl = [UrlDecode decodeStringWithString:linkUrl];
             
-            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
-            webCtrl.url = linkUrl;
-            CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
-            [navCtrl pushViewController:webCtrl animated:YES];
+            NSString *headStr = [[linkUrl componentsSeparatedByString:@"&"] firstObject];
+            NSArray *headParm = [headStr componentsSeparatedByString:@"="];
+            NSString *memo = [headParm lastObject];
+            if ([memo isEqualToString:@"2"]) { // 跳转到准考证详情
+                if ([self checkIsLoginToLoginView:YES]) { // 未登录跳转到登录页面
+                    NSRange range = [linkUrl rangeOfString:@"&"];
+                    if (range.location != NSNotFound) {
+                        CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                        ExamDisplayViewController *displayVC = [[ExamDisplayViewController alloc] init];
+                        
+                        NSString *valueUrl = [linkUrl substringFromIndex:(range.location+range.length)];
+                        NSArray *valueParm = [valueUrl componentsSeparatedByString:@"&"];
+                        for (NSString *subStr in valueParm) {
+                            if ([subStr containsString:@"examRegistrationId"]) {
+                                displayVC.examRegistrationId = [[subStr componentsSeparatedByString:@"="] lastObject];
+                            }
+                        }
+                        [navCtrl pushViewController:displayVC animated:YES];
+                    }
+                }
+            }
+            else if (([memo isEqualToString:@"1"])) { // 跳转网页
+                NSRange range = [linkUrl rangeOfString:@"&"];
+                if (range.location != NSNotFound) {
+                    NSString *valueUrl = [linkUrl substringFromIndex:(range.location+range.length)];
+                    if ([valueUrl containsString:@"url="]) {
+                        NSString *url = [valueUrl substringFromIndex:4];
+                        KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                        webCtrl.url = url;
+                        CustomNavViewController *navCtrl = [self getCurrentNavController];
+                        [navCtrl pushViewController:webCtrl animated:YES];
+                    }
+                }
+            }
+            else {
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = linkUrl;
+                CustomNavViewController *navCtrl = [self getCurrentNavController];
+                [navCtrl pushViewController:webCtrl animated:YES];
+            }
         }
     }
     NSLog(@"%@", detailUrl);
     return YES;
 }
+
+- (CustomNavViewController *)getCurrentNavController {
+    if ([self.window.rootViewController isKindOfClass:[KSTabBarController class]]) {
+       return self.tabBarController.selectedViewController;
+    }
+    return (CustomNavViewController *)self.window.rootViewController;
+}
+
 @end

+ 1 - 1
MusicGradeExam/MusicGradeExam/Base/KSBaseWKWebViewController.m

@@ -38,6 +38,7 @@
         [self allocTitle:_headTitle];
     }
     [self leftbutton];
+    [self initWebView];
 }
 
 - (void)leftbutton {
@@ -58,7 +59,6 @@
     if(@available(iOS 13.0, *)){
         [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;
     }
-    [self initWebView];
 }
 
 - (void)viewWillDisappear:(BOOL)animated {

+ 8 - 2
MusicGradeExam/MusicGradeExam/UI/Exam/View/WaitExamBodyView.m

@@ -61,14 +61,20 @@
         self.signDescLabel.text = @"您已签到,请点击下方按钮进入教室";
     }
     
-    if (self.sourceModel.recordFlag == 1) {
+    if (self.sourceModel.recordFlag == 1 && self.sourceModel.finishedExam == 4) { // 录播考试开启中
+        self.canJoinRoom = YES;
         [self.joinButton setTitle:@"录播考试" forState:UIControlStateNormal];
     }
+    else if (self.sourceModel.finishedExam == 5) { // 考试已完成
+        self.canJoinRoom = NO;
+        [self.joinButton setTitle:@"考试已完成" forState:UIControlStateNormal];
+    }
     else {
+        self.canJoinRoom = self.sourceModel.classroomSwitch;
         [self.joinButton setTitle:@"进入教室" forState:UIControlStateNormal];
     }
     
-    self.canJoinRoom = self.sourceModel.classroomSwitch;
+    
     
     self.classDate.text = [[self.sourceModel.examStartTime componentsSeparatedByString:@" "] firstObject];
     self.subjectLabel.text = [NSString returnNoNullStringWithString:self.sourceModel.baseExamName];

+ 8 - 0
MusicGradeExam/MusicGradeExam/UI/Home/Controller/HomeViewController.m

@@ -41,6 +41,14 @@
     [super viewWillAppear:animated];
     [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
     [self requestMessage];
+    
+    NSString *url = UserDefaultObjectForKey(WEB_URL);
+    if (![NSString isEmptyString:url]) {
+        KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+        ctrl.url = [url copy];
+        UserDefaultRemoveObjectForKey(WEB_URL);
+        [self.navigationController pushViewController:ctrl animated:YES];
+    }
 }
 
 - (void)requestMessage {

+ 4 - 2
MusicGradeExam/MusicGradeExam/UI/Home/View/HomeExamTicketCell.m

@@ -38,13 +38,15 @@
     formatter.timeZone = [NSTimeZone systemTimeZone];
     NSDate *beginDate = [formatter dateFromString:model.examTime];
     [formatter setDateFormat:@"yyyy-MM-dd"];
+    
     NSDate *currentDate = [NSDate date];
     NSString *currentDay = [formatter stringFromDate:currentDate];
     currentDate = [formatter dateFromString:currentDay];
+    
     NSString *beginDay = [formatter stringFromDate:beginDate];
-    NSDate *courseDate = [formatter dateFromString:beginDay];
+    NSDate *examDate = [formatter dateFromString:beginDay];
     
-    NSTimeInterval timeInterval = [courseDate timeIntervalSinceDate:beginDate];
+    NSTimeInterval timeInterval = [examDate timeIntervalSinceDate:currentDate];
     NSInteger countDay = timeInterval / 86400 > 0 ? timeInterval / 86400 : 0;
     self.countLabel.text = [NSString stringWithFormat:@"倒计时 %zd天", countDay];
 }

+ 4 - 4
MusicGradeExam/MusicGradeExam/UI/Login/View/FSBodyView.m

@@ -69,10 +69,10 @@
 
 - (IBAction)sureAction:(id)sender {
     [self endEditing:YES];
-    if ([NSString isEmptyString:self.nameField.text]) {
-        [self MBPShow:@"请输入用户名"];
-        return;
-    }
+//    if ([NSString isEmptyString:self.nameField.text]) {
+//        [self MBPShow:@"请输入用户名"];
+//        return;
+//    }
     if ([NSString isEmptyString:self.passwordField.text]) {
         [self MBPShow:@"请设置密码"];
         return;

+ 13 - 29
MusicGradeExam/MusicGradeExam/UI/Login/View/FSBodyView.xib

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
@@ -26,47 +26,31 @@
                     </constraints>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V0P-40-Jhd">
-                    <rect key="frame" x="44" y="249" width="326" height="61.5"/>
+                    <rect key="frame" x="44" y="249" width="326" height="65.5"/>
                     <attributedString key="attributedText">
-                        <fragment content="检测到您是第一次登录“酷乐秀”">
+                        <fragment content="检测到您是第一次登录“酷乐秀”App,请设置用户名和登录密码,下次可直接使用手机号、密码登录。">
                             <attributes>
                                 <color key="NSBackgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <font key="NSFont" size="16" name=".PingFangSC-Regular"/>
-                                <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="charWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
-                            </attributes>
-                        </fragment>
-                        <fragment content="App">
-                            <attributes>
-                                <color key="NSBackgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <font key="NSFont" size="16" name=".SFNS-Regular"/>
-                                <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="charWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
-                            </attributes>
-                        </fragment>
-                        <fragment content=",请设置用户名和登录密码,下次可直接使用手机号、密码登录。">
-                            <attributes>
-                                <color key="NSBackgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                <font key="NSFont" size="16" name=".PingFangSC-Regular"/>
+                                <font key="NSFont" metaFont="system" size="16"/>
                                 <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="charWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
                             </attributes>
                         </fragment>
                     </attributedString>
                     <color key="highlightedColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                 </label>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7i9-Gc-byq">
-                    <rect key="frame" x="40" y="340.5" width="334" height="60"/>
+                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7i9-Gc-byq">
+                    <rect key="frame" x="40" y="344.5" width="334" height="1"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O9Q-A6-oFC">
-                            <rect key="frame" x="0.0" y="59" width="334" height="1"/>
+                            <rect key="frame" x="0.0" y="0.0" width="334" height="1"/>
                             <color key="backgroundColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.92156862750000001" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="1" id="UmM-J0-at4"/>
                             </constraints>
                         </view>
                         <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入用户名或学生报名姓名" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="wV2-Ip-Geb">
-                            <rect key="frame" x="0.0" y="0.0" width="334" height="59"/>
+                            <rect key="frame" x="0.0" y="0.0" width="334" height="0.0"/>
                             <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <fontDescription key="fontDescription" type="system" pointSize="16"/>
                             <textInputTraits key="textInputTraits" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
@@ -79,13 +63,13 @@
                         <constraint firstItem="wV2-Ip-Geb" firstAttribute="leading" secondItem="7i9-Gc-byq" secondAttribute="leading" id="RwL-dP-J6b"/>
                         <constraint firstItem="O9Q-A6-oFC" firstAttribute="top" secondItem="wV2-Ip-Geb" secondAttribute="bottom" id="T6c-0i-Zed"/>
                         <constraint firstAttribute="bottom" secondItem="O9Q-A6-oFC" secondAttribute="bottom" id="WSq-uz-RPM"/>
-                        <constraint firstAttribute="height" constant="60" id="bqe-Xo-45m"/>
+                        <constraint firstAttribute="height" constant="1" id="bqe-Xo-45m"/>
                         <constraint firstAttribute="trailing" secondItem="wV2-Ip-Geb" secondAttribute="trailing" id="nk7-OH-9HV"/>
                         <constraint firstAttribute="trailing" secondItem="O9Q-A6-oFC" secondAttribute="trailing" id="v9A-eQ-CG7"/>
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="H9I-re-vaM">
-                    <rect key="frame" x="40" y="430.5" width="334" height="60"/>
+                    <rect key="frame" x="40" y="345.5" width="334" height="60"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rt4-9E-2kW">
                             <rect key="frame" x="0.0" y="59" width="334" height="1"/>
@@ -114,7 +98,7 @@
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4hn-3Q-bDK">
-                    <rect key="frame" x="40" y="520.5" width="334" height="60"/>
+                    <rect key="frame" x="40" y="435.5" width="334" height="60"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gxb-eV-Ffr">
                             <rect key="frame" x="0.0" y="59" width="334" height="1"/>
@@ -143,7 +127,7 @@
                     </constraints>
                 </view>
                 <button opaque="NO" tag="1004" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Efc-Ou-aRt">
-                    <rect key="frame" x="182" y="624.5" width="50" height="50"/>
+                    <rect key="frame" x="182" y="539.5" width="50" height="50"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="50" id="Vt1-IE-24P"/>
                         <constraint firstAttribute="height" constant="50" id="yxO-oC-mZd"/>
@@ -161,7 +145,7 @@
                 <constraint firstItem="V0P-40-Jhd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="44" id="8WK-lV-CSN"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="H9I-re-vaM" secondAttribute="trailing" constant="40" id="C5p-m2-o3S"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="7i9-Gc-byq" secondAttribute="trailing" constant="40" id="EvZ-c5-Z2H"/>
-                <constraint firstItem="H9I-re-vaM" firstAttribute="top" secondItem="7i9-Gc-byq" secondAttribute="bottom" constant="30" id="Fi6-tA-iCP"/>
+                <constraint firstItem="H9I-re-vaM" firstAttribute="top" secondItem="7i9-Gc-byq" secondAttribute="bottom" id="Fi6-tA-iCP"/>
                 <constraint firstItem="Eb2-M3-9Y1" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="GFp-xc-QQE"/>
                 <constraint firstItem="Efc-Ou-aRt" firstAttribute="top" secondItem="4hn-3Q-bDK" secondAttribute="bottom" constant="44" id="HbG-w2-Vcg"/>
                 <constraint firstItem="1Lv-Oi-9sI" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="N4x-kE-oDM"/>

+ 62 - 1
MusicGradeExam/MusicGradeExam/UI/NotiferMessage/Controller/NotifyMessageViewController.m

@@ -9,6 +9,9 @@
 #import "NotifyMessageViewController.h"
 #import "MessageListModel.h"
 #import "NotifyMessageCell.h"
+#import "KSBaseWKWebViewController.h"
+#import "ExamDisplayViewController.h"
+#import "WaitExamViewController.h"
 
 @interface NotifyMessageViewController ()<UITableViewDelegate, UITableViewDataSource>
 
@@ -125,13 +128,71 @@
             model.readStatus = 1;
             cell.isRead = YES;
             // 跳转页面
-            
+            [self toDetailViewWithTypeString:model.memo];
         }
     } faliure:^(NSError * _Nonnull error) {
         
     }];
 }
 
+- (void)toDetailViewWithTypeString:(NSString *)memo {
+    if (![NSString isEmptyString:memo]) {
+        NSString *headStr = [[memo componentsSeparatedByString:@"?"] firstObject];
+        if ([headStr isEqualToString:@"1"]) { // 报考详情
+            NSRange range = [memo rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memo substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                [self.navigationController pushViewController:webCtrl animated:YES];
+            }
+        }
+        else if ([headStr isEqualToString:@"2"]) { // 准考证
+            NSString *valueStr = [[memo componentsSeparatedByString:@"?"] lastObject];
+            NSArray *parmArray = [valueStr componentsSeparatedByString:@"&"];
+            for (NSString *subStr in parmArray) {
+                if ([subStr containsString:@"examRegistrationId"]) {
+                    ExamDisplayViewController *displayVC = [[ExamDisplayViewController alloc] init];
+                    displayVC.examRegistrationId = [[subStr componentsSeparatedByString:@"="] lastObject];
+                    [self.navigationController pushViewController:displayVC animated:YES];
+                }
+            }
+        }
+        else if ([headStr isEqualToString:@"3"]) {
+            NSString *valueStr = [[memo componentsSeparatedByString:@"?"] lastObject];
+            NSArray *parmArray = [valueStr componentsSeparatedByString:@"&"];
+            for (NSString *subStr in parmArray) {
+                if ([subStr containsString:@"examRegistrationId"]) {
+                    WaitExamViewController *waitCtrl = [[WaitExamViewController alloc] init];
+                    waitCtrl.examRegistrationId = [[subStr componentsSeparatedByString:@"="] lastObject];
+                    [self.navigationController pushViewController:waitCtrl animated:YES];
+                }
+            }
+        }
+        else if ([headStr isEqualToString:@"4"]) {
+            NSRange range = [memo rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memo substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                [self.navigationController pushViewController:webCtrl animated:YES];
+            }
+        }
+        else {
+            NSRange range = [memo rangeOfString:@"?"];
+            if (range.location != NSNotFound) {
+                NSString *url = [memo substringFromIndex:(range.location+range.length)];
+                
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = url;
+                [self.navigationController pushViewController:webCtrl animated:YES];
+            }
+        }
+    }
+}
+
 
 - (UITableView *)tableView {
     if (!_tableView) {