HybridBridgeImpl.m 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // HybridBridgeImpl.m
  3. // tk_hybrid_demo
  4. //
  5. // Created by terry.guo on 2018/6/19.
  6. // Copyright © 2018年 Terry. All rights reserved.
  7. //
  8. #import "NSJSONSerialization+Shortcuts.h"
  9. #import "JumpManager.h"
  10. #import "HybridBridgeImpl.h"
  11. @interface HybridBridgeImpl ()
  12. @property (weak, nonatomic) UIViewController *viewController;
  13. @end
  14. @implementation HybridBridgeImpl
  15. - (instancetype)initWithViewController:(UIViewController *)viewController {
  16. if (self = [super init]) {
  17. _viewController = viewController;
  18. }
  19. return self;
  20. }
  21. - (void)goTo:(NSString *)jsonString {
  22. dispatch_async(dispatch_get_main_queue(), ^{
  23. NSDictionary *params = [self convertToDictionary:jsonString];
  24. NSString *file = params[@"file"];
  25. NSString *webview = @"ui";
  26. if ([file isEqualToString:@"b.html"])
  27. webview = @"wk";
  28. NSURL *url = [[NSBundle mainBundle] URLForResource:[NSString stringWithFormat:@"data/%@",file] withExtension:nil];
  29. NSString *filePath = [url absoluteString];
  30. filePath = [filePath stringByAppendingString:[NSString stringWithFormat:@"?webview=%@",webview]];
  31. if ([file isEqualToString:@"c.html"])
  32. filePath = [filePath stringByAppendingString:@"&page=tk_page_first"];
  33. [JumpManager openPageWithLink:filePath withObject:nil];
  34. });
  35. }
  36. - (NSDictionary *)convertToDictionary:(NSString *)jsonString {
  37. NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithString:jsonString options:kNilOptions error:nil];
  38. if (dictionary) {
  39. return dictionary;
  40. }
  41. return nil;
  42. }
  43. @end