MOBFWKWebViewContext.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. //
  2. // MOBFWKWebViewContext.h
  3. // MOBFoundation
  4. //
  5. // Created by 崔林豪 on 2018/11/6.
  6. // Copyright © 2018年 MOB. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "MOBFJSTypeDefine.h"
  10. #import <WebKit/WebKit.h>
  11. #include <JavaScriptCore/JavaScript.h>
  12. NS_ASSUME_NONNULL_BEGIN
  13. @interface MOBFWKWebViewContext : NSObject
  14. @property (nonatomic, strong) WKWebView *webView;
  15. /**
  16. * 初始化
  17. *
  18. * @return 单例对象
  19. */
  20. + (instancetype)defaultContext;
  21. /**
  22. 初始化
  23. @param webview Web视图,如果传入视图带有委托处理,请在传入该参数前将委托设置,否则会奔溃。
  24. @return 类实例
  25. */
  26. - (instancetype)initWithWKWebView:(WKWebView *)webview;
  27. /**
  28. * 注册方法
  29. *
  30. * @param name 方法名称
  31. * @param block 方法执行
  32. */
  33. - (void)registerJSMethod:(NSString *)name block:(MOBFJSMethodIMP)block;
  34. /**
  35. * 调用方法
  36. *
  37. * @param name 方法名称
  38. * @param arguments 参数
  39. *
  40. * @return 返回值
  41. */
  42. - (NSString *)callJSMethod:(NSString *)name arguments:(NSArray *)arguments;
  43. /**
  44. * 创建新版本JS解析器
  45. */
  46. - (void)setupWKWebViewNewJSParser;
  47. - (void)initWKWebViewDelegate:(WKWebView *)wkWebView;
  48. /**
  49. * 加载插件
  50. *
  51. * @param path 插件脚本文件路径
  52. * @param name 插件名称
  53. */
  54. - (void)loadPluginWithPath:(NSString *)path forName:(NSString *)name;
  55. /**
  56. * 加载插件
  57. *
  58. * @param content 插件脚本内容
  59. * @param name 插件名称
  60. */
  61. - (void)loadPlugin:(NSString *)content forName:(NSString *)name;
  62. /**
  63. * 执行脚本
  64. *
  65. * @param script 脚本
  66. */
  67. - (void)runScript:(NSString *)script;
  68. /**
  69. * 回调JS
  70. *
  71. * @param callback 回调方法名称
  72. * @param resultData 回调数据
  73. */
  74. - (void)callback:(NSString *)callback resultData:(NSDictionary *)resultData;
  75. @end
  76. NS_ASSUME_NONNULL_END