Sin descripción

AlibcURLBus.h 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /*
  2. * AlibcURLBus.h
  3. *
  4. * 阿里百川电商
  5. * 项目名称:阿里巴巴电商 AlibcTradeCommon
  6. * 版本号:3.1.1.200
  7. * 发布时间:2017-08-21
  8. * 开发团队:阿里巴巴百川商业化团队
  9. * 阿里巴巴电商SDK答疑群号:1488705339 2071154343(阿里旺旺)
  10. * Copyright (c) 2016-2019 阿里巴巴-移动事业群-百川. All rights reserved.
  11. */
  12. #import <Foundation/Foundation.h>
  13. #import "AlibcURLBusContext.h"
  14. #ifndef AlibcURLBus_h
  15. #define AlibcURLBus_h
  16. @class UIWebView;
  17. @class UIViewController;
  18. /** 处理结果 */
  19. @interface AlibcURLProcessResult : NSObject
  20. /** 是否过滤 */
  21. @property(assign, nonatomic) BOOL filtered;
  22. /** 是否处理 */
  23. @property(assign, nonatomic) BOOL handled;
  24. /** 结果URL */
  25. @property(strong, nonatomic) NSURL *URL;
  26. @end
  27. //url匹配,getUrlRule和matchUrl只需实现一个,
  28. @protocol AlibcURLBusMatch <NSObject>
  29. @optional
  30. //返回正则匹配表达式,会自动用正则做判断
  31. - (NSArray<NSString *> *)getUrlRule;
  32. //返回是否匹配,匹配返回YES
  33. - (BOOL)matchUrl:(NSString *)url;
  34. @end
  35. @protocol AlibcURLBusHandle <AlibcURLBusMatch>
  36. //返回YES,则url加载会被中断...返回NO,正常加载
  37. - (BOOL)handleURL:(NSURL *)url context:(AlibcURLBusContext *)context;
  38. @end
  39. @protocol AlibcURLBusFilter <AlibcURLBusMatch>
  40. //返回修改过的url,或者把参数url返回...会加载返回的url值
  41. - (NSURL *)filterURL:(NSURL *)url context:(AlibcURLBusContext *)context;
  42. @end
  43. @interface AlibcURLBus : NSObject
  44. + (instancetype)defaultBus;
  45. /**
  46. 添加一个 Handle 实现
  47. @param handle Handle 实例
  48. */
  49. - (void)addHandle:(id <AlibcURLBusHandle>)handle;
  50. /**
  51. 移除一个 Handle 实现
  52. @param handle Handle 实例
  53. */
  54. - (void)removeHandle:(id <AlibcURLBusHandle>)handle;
  55. - (void)addFilter:(id <AlibcURLBusFilter>)handle;
  56. - (void)removeFilter:(id <AlibcURLBusFilter>)handle;
  57. /**
  58. 处理URL
  59. @param url 原始URL
  60. @param context 总线上下文
  61. @return 是否处理
  62. */
  63. - (BOOL)handleURL:(NSURL *)url context:(AlibcURLBusContext *)context;
  64. /**
  65. 过滤并处理URL
  66. @param url 原始URL
  67. @param context 总线上下文
  68. @return 处理结果
  69. */
  70. - (AlibcURLProcessResult *)processURL:(NSURL *)url context:(AlibcURLBusContext *)context;
  71. - (BOOL)handleOpenURL:(NSURL *)url;
  72. @end
  73. #endif