RDSUserProtocolViewController.m 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //
  2. // RDSUserProtocolViewController.m
  3. // SmartLightForBigFish
  4. //
  5. // Created by coderYK on 2017/11/22.
  6. // Copyright © 2017年 RD. All rights reserved.
  7. //
  8. #import "RDSUserProtocolViewController.h"
  9. #import <WebKit/WebKit.h>
  10. @interface RDSUserProtocolViewController () <WKUIDelegate, WKNavigationDelegate>
  11. @property (nonatomic, strong) WKWebView *webView;
  12. @end
  13. @implementation RDSUserProtocolViewController
  14. - (void)dealloc {
  15. // WKUserContentController *controller = self.webView.configuration.userContentController;
  16. // [controller removeScriptMessageHandlerForName:@"closePage"];
  17. }
  18. - (void)viewDidLoad {
  19. [super viewDidLoad];
  20. self.title = _vcTitle;
  21. [self p_setupUI];
  22. [self p_loadData];
  23. }
  24. - (void)viewWillAppear:(BOOL)animated {
  25. [super viewWillAppear:animated];
  26. [self.navigationController setNavigationBarHidden:YES];
  27. }
  28. - (void)viewWillDisappear:(BOOL)animated {
  29. [super viewWillDisappear:animated];
  30. [self.navigationController setNavigationBarHidden:NO];
  31. }
  32. - (void)p_loadData {
  33. /* 加载服务器url的方法*/
  34. NSString *url = self.url;
  35. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
  36. [RDSHudShower showWithStatus:nil];
  37. [_webView loadRequest:request];
  38. }
  39. - (void)p_setupUI {
  40. WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
  41. // [configuration.userContentController addScriptMessageHandler:self name:@"closePage"];
  42. self.webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
  43. // 放在AppDelegate中全局修改
  44. // [_webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
  45. // NSString *newUserAgent = [result stringByAppendingFormat:@"/%@", @"yongxulvjian"];
  46. // [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent":newUserAgent}];
  47. // }];
  48. [self.view addSubview:_webView];
  49. [_webView mas_makeConstraints:^(MASConstraintMaker *make) {
  50. // make.left.equalTo(self.view);
  51. // make.right.equalTo(self.view);
  52. // make.top.equalTo(self.view);
  53. // if (@available(iOS 11.0, *)) {
  54. // make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
  55. // } else {
  56. // make.bottom.equalTo(self.view.mas_bottom);
  57. // }
  58. make.edges.mas_equalTo(UIEdgeInsetsZero);
  59. }];
  60. _webView.UIDelegate = self;
  61. _webView.navigationDelegate = self;
  62. _webView.allowsBackForwardNavigationGestures = YES;
  63. }
  64. - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
  65. [RDSHudShower dismissHUD];
  66. }
  67. - (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error {
  68. [RDSHudShower dismissHUD];
  69. }
  70. //- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
  71. // if ([message.name isEqualToString:@"closePage"]) {
  72. // [self.navigationController popViewControllerAnimated:YES];
  73. // }
  74. //}
  75. @end