123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- * AlibcURLBus.h
- *
- * 阿里百川电商
- * 项目名称:阿里巴巴电商 AlibcTradeCommon
- * 版本号:3.1.1.93
- * 发布时间:2017-03-06
- * 开发团队:阿里巴巴百川商业化团队
- * 阿里巴巴电商SDK答疑群号:1229144682(阿里旺旺)
- * Copyright (c) 2016-2019 阿里巴巴-移动事业群-百川. All rights reserved.
- */
- #import <Foundation/Foundation.h>
- #import "AlibcURLBusContext.h"
- #ifndef AlibcURLBus_h
- #define AlibcURLBus_h
- @class UIWebView;
- @class UIViewController;
- /** 处理结果 */
- @interface AlibcURLProcessResult : NSObject
- /** 是否过滤 */
- @property(assign, nonatomic) BOOL filtered;
- /** 是否处理 */
- @property(assign, nonatomic) BOOL handled;
- /** 结果URL */
- @property(strong, nonatomic) NSURL *URL;
- @end
- //url匹配,getUrlRule和matchUrl只需实现一个,
- @protocol AlibcURLBusMatch <NSObject>
- @optional
- //返回正则匹配表达式,会自动用正则做判断
- - (NSArray<NSString *> *)getUrlRule;
- //返回是否匹配,匹配返回YES
- - (BOOL)matchUrl:(NSString *)url;
- @end
- @protocol AlibcURLBusHandle <AlibcURLBusMatch>
- //返回YES,则url加载会被中断...返回NO,正常加载
- - (BOOL)handleURL:(NSURL *)url context:(AlibcURLBusContext *)context;
- @end
- @protocol AlibcURLBusFilter <AlibcURLBusMatch>
- //返回修改过的url,或者把参数url返回...会加载返回的url值
- - (NSURL *)filterURL:(NSURL *)url context:(AlibcURLBusContext *)context;
- @end
- @interface AlibcURLBus : NSObject
- + (instancetype)defaultBus;
- /**
- 添加一个 Handle 实现
- @param handle Handle 实例
- */
- - (void)addHandle:(id <AlibcURLBusHandle>)handle;
- /**
- 移除一个 Handle 实现
- @param handle Handle 实例
- */
- - (void)removeHandle:(id <AlibcURLBusHandle>)handle;
- - (void)addFilter:(id <AlibcURLBusFilter>)handle;
- - (void)removeFilter:(id <AlibcURLBusFilter>)handle;
- /**
- 处理URL
- @param url 原始URL
- @param context 总线上下文
- @return 是否处理
- */
- - (BOOL)handleURL:(NSURL *)url context:(AlibcURLBusContext *)context;
- /**
- 过滤并处理URL
- @param url 原始URL
- @param context 总线上下文
- @return 处理结果
- */
- - (AlibcURLProcessResult *)processURL:(NSURL *)url context:(AlibcURLBusContext *)context;
- - (BOOL)handleOpenURL:(NSURL *)url;
- @end
- #endif
|