// // BUJSInjector.h // BURexxar // // Created by muhuai on 2017/6/17. // Copyright © 2017年 muhuai. All rights reserved. // #import #import @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 *)webview; @end