Selaa lähdekoodia

1.修改Apex CRM实现导航。

Pen Li 7 vuotta sitten
vanhempi
commit
38b14019c3

+ 15 - 0
RedAnt CRM/APEX CRM/APEX CRM.xcodeproj/project.pbxproj

@@ -25,6 +25,7 @@
 		4212ABC521AD3C3200BE4E45 /* RADataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 4212ABC421AD3C3200BE4E45 /* RADataProvider.m */; };
 		4212ABCB21AD450A00BE4E45 /* RAShareItemProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 4212ABC821AD450900BE4E45 /* RAShareItemProvider.m */; };
 		4212ABCC21AD450A00BE4E45 /* LPShareActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4212ABCA21AD450900BE4E45 /* LPShareActivity.m */; };
+		4277784F21AFB98600BCF7FA /* RAMapNavigateHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4277784E21AFB98600BCF7FA /* RAMapNavigateHandler.m */; };
 		42A8A21321AE7828003B854B /* RAPhotoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 42A8A20B21AE7828003B854B /* RAPhotoPreviewController.m */; };
 		42A8A21421AE7828003B854B /* PhotoList.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 42A8A20D21AE7828003B854B /* PhotoList.storyboard */; };
 		42A8A21521AE7828003B854B /* PhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 42A8A21021AE7828003B854B /* PhotoPreviewCell.m */; };
@@ -85,6 +86,8 @@
 		4212ABC821AD450900BE4E45 /* RAShareItemProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAShareItemProvider.m; sourceTree = "<group>"; };
 		4212ABC921AD450900BE4E45 /* LPShareActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LPShareActivity.h; sourceTree = "<group>"; };
 		4212ABCA21AD450900BE4E45 /* LPShareActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LPShareActivity.m; sourceTree = "<group>"; };
+		4277784D21AFB98600BCF7FA /* RAMapNavigateHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RAMapNavigateHandler.h; sourceTree = "<group>"; };
+		4277784E21AFB98600BCF7FA /* RAMapNavigateHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RAMapNavigateHandler.m; sourceTree = "<group>"; };
 		42A8A20A21AE7828003B854B /* RAPhotoPreviewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAPhotoPreviewController.h; sourceTree = "<group>"; };
 		42A8A20B21AE7828003B854B /* RAPhotoPreviewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAPhotoPreviewController.m; sourceTree = "<group>"; };
 		42A8A20D21AE7828003B854B /* PhotoList.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = PhotoList.storyboard; sourceTree = "<group>"; };
@@ -234,6 +237,16 @@
 			path = ../../../common/Share;
 			sourceTree = "<group>";
 		};
+		4277784C21AFB96700BCF7FA /* MapNavigation */ = {
+			isa = PBXGroup;
+			children = (
+				4277784D21AFB98600BCF7FA /* RAMapNavigateHandler.h */,
+				4277784E21AFB98600BCF7FA /* RAMapNavigateHandler.m */,
+			);
+			name = MapNavigation;
+			path = ../../../common/MapNavigation;
+			sourceTree = "<group>";
+		};
 		42A8A20821AE7828003B854B /* InfinitePhoto */ = {
 			isa = PBXGroup;
 			children = (
@@ -342,6 +355,7 @@
 		7106E80721A684F20056DD20 /* APEX CRM */ = {
 			isa = PBXGroup;
 			children = (
+				4277784C21AFB96700BCF7FA /* MapNavigation */,
 				42A8A22021AE8603003B854B /* UIImage */,
 				42A8A20821AE7828003B854B /* InfinitePhoto */,
 				4212ABC621AD450900BE4E45 /* Share */,
@@ -478,6 +492,7 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				4277784F21AFB98600BCF7FA /* RAMapNavigateHandler.m in Sources */,
 				4212ABCC21AD450A00BE4E45 /* LPShareActivity.m in Sources */,
 				4212AB9821AD25C800BE4E45 /* RAPreviewController.m in Sources */,
 				4212ABC521AD3C3200BE4E45 /* RADataProvider.m in Sources */,

+ 31 - 73
RedAnt CRM/APEX CRM/APEX CRM/RAWKWebView.m

@@ -16,11 +16,10 @@
 #import "RAProgressHUD.h"
 #import <MessageUI/MessageUI.h>
 #import "LPShareActivity.h"
-
 #import "NSDictionary+Extension.h"
-
 #import "RAPhotoPreviewController.h"
 #import "RAPhotoModel.h"
+#import "RAMapNavigateHandler.h"
 
 
 @interface RAWKWebView () <UINavigationControllerDelegate,UIImagePickerControllerDelegate,MFMailComposeViewControllerDelegate>
@@ -29,13 +28,6 @@
 
 @implementation RAWKWebView
 
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
 - (instancetype)initWithFrame:(CGRect)frame
 {
     self = [super initWithFrame:frame];
@@ -43,10 +35,6 @@
         
         [self initWKWebView];
         [self initMessageHandler];
-//        WKPreferences *preferences = [WKPreferences new];
-//        preferences.javaScriptCanOpenWindowsAutomatically = YES;
-//        preferences.minimumFontSize = 40.0;
-//        self.configuration.preferences = preferences;
     }
     return self;
 }
@@ -103,7 +91,7 @@
     [self.wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"Photo"];
     [self.wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"Email"];
     [self.wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"Preview"];
-        [self.wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"Navigation"];
+    [self.wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"Navigation"];
     
     
     //    [self.configuration.userContentController addScriptMessageHandler:self name:@"Color"];
@@ -183,20 +171,6 @@
     
     [self.ra_viewController.navigationController pushViewController:scanVC animated:YES];
 }
--(void) webPageCallback:(NSDictionary*)params caller:(NSString*) callerid value:(NSObject*)value
-{
-    NSString *jsStr = [NSString stringWithFormat:params[@"callback"],callerid,value];
-    [self.wkwebView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
-        NSLog(@"%@----%@",result, error);
-    }];
-}
--(void) webPageReturn:(NSString*) returnid value:(NSObject*)value
-{
-    NSString *jsStr = [NSString stringWithFormat:@"document.getElementById(\"%@\").value = %@;",returnid,value];
-    [self.wkwebView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
-        NSLog(@"%@----%@",result, error);
-    }];
-}
 
 - (void)ra_previewDocument:(NSDictionary *)params {
     /**
@@ -330,40 +304,6 @@
     
     // 选中分享类型
     [activityViewController setCompletionWithItemsHandler:^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
-        
-//<<<<<<< .mine
-//    } completionHandler:^(NSMutableDictionary *result) {
-//
-//        int code = [[result objectForKey:@"result"] intValue];
-//        if (code == RESULT_TRUE) {
-//
-//            NSString *path = [result objectForKey:@"path"];
-//
-//            NSArray *activityItems = @[[NSURL URLWithString:url]];
-//
-//            // 服务类型控制器
-//            UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[]];
-//            //    _activityViewController = activityViewController;
-//            //    activityViewController.excludedActivityTypes = @[UIActivityTypeMail];
-//            activityViewController.modalInPopover = true;
-//
-//            // 选中分享类型
-//            [activityViewController setCompletionWithItemsHandler:^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
-//
-//                // 显示选中的分享类型
-//                NSLog(@"act type %@",activityType);
-//
-//                if (completed) {
-//                    NSLog(@"ok");
-//                }else {
-//                    NSLog(@"not ok");
-//                }
-//
-//            }];
-//
-//            [self.ra_viewController presentViewController:activityViewController animated:YES completion:nil];
-//
-//=======
         // 显示选中的分享类型
         NSLog(@"act type %@",activityType);
         
@@ -371,7 +311,7 @@
             NSLog(@"ok");
         }else {
             NSLog(@"not ok");
-//>>>>>>> .r39012
+
         }
         
     }];
@@ -381,14 +321,6 @@
 
 - (void)ra_viewPhotos:(NSDictionary *)params {
     
-//    NSArray *arr = @[
-//                     @"http://192.168.0.130/s1.jpg",
-//                     @"http://192.168.0.130/s2.jpg",
-//                     @"http://192.168.0.130/s3.jpg",
-//                     @"http://192.168.0.130/s4.jpg",
-//                     @"http://192.168.0.130/s5.jpg"
-//                     ];
-    
     NSArray *urlArr = [params objectForKey:@"images"];
     NSUInteger index = [[params objectForKey:@"index"] integerValue];
     
@@ -407,7 +339,33 @@
     [self.ra_viewController presentViewController:previewController animated:YES completion:nil];
 }
 
-#pragma mark -MFMailComposeViewControllerDelegate delegate
+- (void)ra_navigate:(NSDictionary *)params {
+    
+    NSString *name = [params objectForKey:@"name"];
+    NSString *addr = [params objectForKey:@"address"];
+    
+    [RAMapNavigateHandler ra_navigate:addr withTitle:name viewController:self.ra_viewController];
+}
+
+#pragma mark - Web Callback
+
+-(void) webPageCallback:(NSDictionary*)params caller:(NSString*) callerid value:(NSObject*)value
+{
+    NSString *jsStr = [NSString stringWithFormat:params[@"callback"],callerid,value];
+    [self.wkwebView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
+        NSLog(@"%@----%@",result, error);
+    }];
+}
+
+-(void) webPageReturn:(NSString*) returnid value:(NSObject*)value
+{
+    NSString *jsStr = [NSString stringWithFormat:@"document.getElementById(\"%@\").value = %@;",returnid,value];
+    [self.wkwebView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
+        NSLog(@"%@----%@",result, error);
+    }];
+}
+
+#pragma mark - MFMailComposeViewControllerDelegate delegate
 
 - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
     switch (result)
@@ -605,7 +563,7 @@
 
 - (void)handleNavigation:(NSDictionary *)params
 {
-    
+    [self ra_navigate:params];
 }
 
 - (void)handleJumpTo:(NSDictionary *)params