123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //
- // BUJSInjector.h
- // BURexxar
- //
- // Created by muhuai on 2017/6/17.
- // Copyright © 2017年 muhuai. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- @protocol BUWebView;
- /**
- BUWebView的JS注入器
- 当页面加载完成后, 注入器会向WebView容器里注入一段JS脚本.
-
- 使用场景:
- 容器是其他人提供的, 但是你需要往里面注入一些脚本.
-
- 有两个级别:
- 1. webview级别, 只对当前webview生效. BUWebView.injector
- 2. 全局级别, 对所有webview生效. [BUJSInjector sharedInstance]
-
- 请自行根据需求使用, 不要滥用全局级别
-
- */
- @interface BUJSInjector : NSObject
- /**
- 全局级别的注入器.
- 需评估影响范围, 慎用
- @return 注入器
- */
- + (instancetype)sharedInstance;
- /**
- 对匹配正则的页面注入脚本
- 非线程安全
-
- @param script 脚本
- @param regex 正则表达式
- @param key 该条规则的key, 用于remove和 检验规则唯一性
- @note 如果有多条规则成功匹配, 则会注入多段JS脚本
- 多段注入会按照注册先后顺序, 并且web级别 > 全局级别
- */
- - (void)addInjectRuleWithScript:(NSString *)script regex:(NSString *)regex key:(NSString *)key;
- /**
- 移除指定规则
- 非线程安全
-
- @param key 规则的key
- */
- - (void)removeScriptWithKey:(NSString *)key;
- /**
- 移除全部规则.
- 非线程安全
-
- 慎用..小心被人打...
- */
- - (void)removeAllScript;
- /**
- 对webview注入 符合规则的脚本
- @param webview BUWebView
- */
- - (void)injectScriptInWebView:(UIView<BUWebView> *)webview;
- @end
|