RDSControlWebVC.m 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // RDSControlWebVC.m
  3. // Temperature
  4. //
  5. // Created by Kevin on 2023/12/6.
  6. #import "RDSControlWebVC.h"
  7. #import <WebViewJavascriptBridge/WebViewJavascriptBridge.h>
  8. #import <WebKit/WebKit.h>
  9. @interface RDSControlWebVC () <WKUIDelegate, WKNavigationDelegate>
  10. @property (nonatomic, strong) WKWebView *webView;
  11. @property (nonatomic, strong) WebViewJavascriptBridge *bridge;
  12. @property (nonatomic, copy) NSString *requestURL;
  13. @end
  14. @implementation RDSControlWebVC
  15. - (instancetype)initWithRecordId:(NSString *)recordId code:(NSString *)code {
  16. self = [super init];
  17. if (self) {
  18. self.requestURL = [NSString stringWithFormat:@"https://app.yongxulvjian.com/#/Room/%@/%@", recordId, code];
  19. }
  20. return self;
  21. }
  22. - (void)viewDidLoad {
  23. [super viewDidLoad];
  24. // Do any additional setup after loading the view.
  25. [self configSubviews];
  26. [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.requestURL]]];
  27. }
  28. - (void)configSubviews {
  29. [self.view addSubview:self.webView];
  30. [self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
  31. make.edges.mas_equalTo(UIEdgeInsetsZero);
  32. }];
  33. }
  34. - (void)jsBridge {
  35. RDS_WEAKSELF(weakSelf)
  36. self.bridge = [WebViewJavascriptBridge bridgeForWebView:_webView];
  37. [self.bridge setWebViewDelegate:self];
  38. // js 回调
  39. [self.bridge registerHandler:@"closeWebView" handler:^(id data, WVJBResponseCallback responseCallback) {
  40. [weakSelf.navigationController popViewControllerAnimated:YES];
  41. }];
  42. }
  43. - (WKWebView *)webView {
  44. if (!_webView) {
  45. WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
  46. config.userContentController = [[WKUserContentController alloc] init];
  47. config.allowsInlineMediaPlayback = YES;
  48. _webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
  49. _webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  50. // _webView.UIDelegate = self;
  51. // _webView.navigationDelegate = self;
  52. [self jsBridge];
  53. }
  54. return _webView;
  55. }
  56. @end