BGBaseWebViewController.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. //
  2. // BGBaseWebViewController.h
  3. // BuguLive
  4. //
  5. // Created by xfg on 2017/6/3.
  6. // Copyright © 2017年 xfg. All rights reserved.
  7. //
  8. #import "BGBaseViewController.h"
  9. #import <WebKit/WebKit.h>
  10. typedef NS_ENUM(NSInteger, RightBarBtnItem)
  11. {
  12. RightBarBtnItemRefresh = 0, // 导航栏右侧 刷新按钮,刷新按钮再点击后会有个隐藏
  13. RightBarBtnItemBackLiveVC = 1, // 导航栏右侧 回到直播间按钮
  14. };
  15. @interface BGBaseWebViewController : BGBaseViewController <WKNavigationDelegate, WKUIDelegate>
  16. @property (nonatomic, strong) WKWebView *webView; // wkwebview
  17. @property (nonatomic, strong) WKUserContentController *userContentC;
  18. @property (nonatomic, copy) NSString *urlStr; // url地址
  19. @property (nonatomic, copy) NSString *httpMethodStr; // 请求方式:GET、POST,默认为POST
  20. @property (nonatomic, copy) NSString *navTitleStr; // 标题栏
  21. @property (nonatomic, assign) BOOL isShowNavBar; // 是否显示导航栏
  22. @property (nonatomic, assign) BOOL isShowTabBar; // 是否显示tabBar
  23. @property (nonatomic, assign) BOOL isShowBackBtn; // 是否显示返回按钮
  24. @property (nonatomic, assign) BOOL isShowCloseBtn; // 是否显示关闭按钮(前提是 isShowBackBtn==YES)
  25. @property (nonatomic, assign) BOOL isShowIndicator; // 是否显示指示器(当前指示器指的是:菊花转转,后期可以用进度条等替换)
  26. @property (nonatomic, assign) BOOL isShowLaunchImgView; // 是否显示launchImgView,等webview加载完成后再隐藏
  27. @property (nonatomic, assign) BOOL isCanShowRightBarRefreshBtn; // 是否能够显示导航栏右侧刷新按钮
  28. @property (nonatomic, assign) BOOL isFrontRefresh; // 是否允许进入前台时进行刷新
  29. @property (nonatomic, assign) BOOL isViewWillAppearRefresh; // 是否允许ViewWillAppear的时候进行刷新
  30. @property (nonatomic, assign) BOOL isShouldOpenBounces; // 是否需要开启WebView回弹效果(注意:默认是禁止的)
  31. @property (nonatomic, assign) BOOL isSmallScreen; // 是否有小屏
  32. @property (nonatomic, assign) BOOL isShowSegHead; // 是否有SegHeight
  33. /**
  34. 类方法初始1
  35. @param urlStr WebView加载地址
  36. @return 返回WKWebView
  37. */
  38. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr;
  39. /**
  40. 类方法初始2
  41. @param urlStr urlStr WebView加载地址
  42. @param isShowIndicator 是否显示指示器
  43. @return 返回WKWebView
  44. */
  45. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr isShowIndicator:(BOOL)isShowIndicator;
  46. /**
  47. 类方法初始3
  48. @param urlStr urlStr WebView加载地址
  49. @param isShowIndicator 是否显示指示器
  50. @param isShowNavBar 是否显示导航栏
  51. @return 返回WKWebView
  52. */
  53. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr isShowIndicator:(BOOL)isShowIndicator isShowNavBar:(BOOL)isShowNavBar;
  54. /**
  55. 类方法初始4
  56. @param urlStr urlStr WebView加载地址
  57. @param isShowIndicator 是否显示指示器
  58. @param isShowNavBar 是否显示导航栏
  59. @param isShowTabBar 是否显示tabBar
  60. @return 返回WKWebView
  61. */
  62. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr isShowIndicator:(BOOL)isShowIndicator isShowNavBar:(BOOL)isShowNavBar isShowTabBar:(BOOL)isShowTabBar;
  63. /**
  64. 类方法初始5
  65. @param urlStr WebView加载地址
  66. @param isShowIndicator 是否显示指示器
  67. @param isShowNavBar 是否显示导航栏
  68. @param isShowBackBtn 是否显示返回按钮
  69. @return 返回WKWebView
  70. */
  71. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr isShowIndicator:(BOOL)isShowIndicator isShowNavBar:(BOOL)isShowNavBar isShowBackBtn:(BOOL)isShowBackBtn;
  72. /**
  73. 类方法初始6
  74. @param urlStr WebView加载地址
  75. @param isShowIndicator 是否显示指示器
  76. @param isShowNavBar 是否显示导航栏
  77. @param isShowBackBtn 是否显示返回按钮
  78. @param isShowCloseBtn 是否显示关闭按钮(前提是 isShowBackBtn==YES)
  79. @return 返回WKWebView
  80. */
  81. + (instancetype)webControlerWithUrlStr:(NSString *)urlStr isShowIndicator:(BOOL)isShowIndicator isShowNavBar:(BOOL)isShowNavBar isShowBackBtn:(BOOL)isShowBackBtn isShowCloseBtn:(BOOL)isShowCloseBtn;
  82. /**
  83. 加载当前WKWebView
  84. */
  85. - (void)loadCurrentWKWebView;
  86. /**
  87. 重新加载当前WKWebView
  88. */
  89. - (void)reLoadCurrentWKWebView;
  90. /**
  91. 显示HUD
  92. @param statusStr 显示的文字
  93. */
  94. - (void)showMyHud:(NSString *)statusStr;
  95. /**
  96. 隐藏HUD
  97. */
  98. - (void)hideMyHud;
  99. /**
  100. 添加导航栏右侧按钮
  101. @param type 类型,如需拓展,请拓展枚举RightBarBtnItem
  102. @param titleStr 按钮显得名称
  103. */
  104. - (void)initRightBarBtnItemWithType:(RightBarBtnItem)type titleStr:(NSString *)titleStr;
  105. /**
  106. 移除ScriptMessageHandler,防止退出时内存泄露
  107. */
  108. - (void)removeScriptMessageHandler;
  109. @end