NewsDetVC.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. //
  2. // NewsDetVC.m
  3. // jiaPei
  4. //
  5. // Created by apple on 15/12/30.
  6. // Copyright © 2015年 JCZ. All rights reserved.
  7. //
  8. #import "NewsDetVC.h"
  9. #import "HolderView.h"
  10. #import <WebKit/WebKit.h>
  11. //#import <ShareSDK/ShareSDK.h>
  12. //#import <ShareSDKUI/ShareSDK+SSUI.h>
  13. @interface NewsDetVC ()<WKNavigationDelegate>
  14. {
  15. NSString *urlString;
  16. HolderView *holdV;
  17. }
  18. @end
  19. @implementation NewsDetVC
  20. - (void)viewDidLoad {
  21. [super viewDidLoad];
  22. [self.view setBackgroundColor:[UIColor whiteColor]];
  23. self.title = @"资讯详情";
  24. if (_isNotification == NO)
  25. {
  26. //正常状态
  27. [self configNavigationBar];
  28. }
  29. else
  30. {
  31. //推送状态 要将根视图变回去
  32. UIBarButtonItem* backBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"question_pre_checked_icon.png"] style:UIBarButtonItemStylePlain target:self action:@selector(dismissNavgation)];
  33. [backBtn setTintColor:defGreen];
  34. self.navigationController.navigationBar.translucent = NO;
  35. [self.navigationItem setLeftBarButtonItem:backBtn];
  36. }
  37. //分享按钮
  38. if ([_type isEqualToString:@"3"]) {
  39. UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"分享" style:UIBarButtonItemStyleDone target:self action:@selector(clickToShare)];
  40. [item setTintColor:defGreen];
  41. [self.navigationItem setRightBarButtonItem:item];
  42. }
  43. holdV = [[HolderView alloc] initWithFrame:kFrame];
  44. [self.view addSubview:holdV];
  45. [holdV setHidden:YES];
  46. [holdV freshBlock:^{
  47. [self getTopicNewsById];
  48. }];
  49. }
  50. -(void)viewDidAppear:(BOOL)animated
  51. {
  52. [super viewDidAppear:animated];
  53. [self getTopicNewsById];
  54. }
  55. //推送过来 返回主页面
  56. -(void)dismissNavgation
  57. {
  58. [myDelegate gotoLoad];
  59. }
  60. #pragma mark 分享操作
  61. - (void)clickToShare {
  62. // if (!_preModel) {
  63. //
  64. // ShowMsg(@"暂无数据,请稍后重试!");
  65. // return;
  66. // }
  67. //
  68. // //NSLog(@"分享model%@",_preModel);
  69. // //有自己的分享菜单
  70. //
  71. // NSArray* imageArray;
  72. // if ([_preModel[@"ISIMG"] isEqualToString:@"0"]) {
  73. // imageArray = @[[UIImage imageNamed:@"defaultLogo.png"]];
  74. // }else{
  75. // imageArray = @[_preModel[@"IMGPATH"]];
  76. // }
  77. //
  78. // if (imageArray) {
  79. //
  80. // NSString *path = _preModel[@"HTML"];
  81. // if (path && ![path hasPrefix:@"http"]){
  82. // path = [imgPreFix stringByAppendingString:path];
  83. // }
  84. // if (!path) {
  85. // path = @"";
  86. // }
  87. //
  88. // NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  89. // [shareParams SSDKSetupShareParamsByText:_preModel[@"REMARK"]
  90. // images:imageArray
  91. // url:[NSURL URLWithString:path]
  92. // title:_preModel[@"TITLE"]
  93. // type:SSDKContentTypeAuto];
  94. // //2、分享(可以弹出我们的分享菜单和编辑界面)
  95. // [ShareSDK showShareActionSheet:nil customItems:nil shareParams:shareParams sheetConfiguration:nil onStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  96. // switch (state) {
  97. // case SSDKResponseStateSuccess:
  98. // {
  99. // UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
  100. // message:nil
  101. // delegate:nil
  102. // cancelButtonTitle:@"确定"
  103. // otherButtonTitles:nil];
  104. // [alertView show];
  105. //
  106. // break;
  107. // }
  108. // case SSDKResponseStateFail:
  109. // {
  110. // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败"
  111. // message:[NSString stringWithFormat:@"%@",error]
  112. // delegate:nil
  113. // cancelButtonTitle:@"OK"
  114. // otherButtonTitles:nil, nil];
  115. // [alert show];
  116. // //NSLog(@"分享----><>%@",error);
  117. // break;
  118. // }
  119. // default:
  120. // break;
  121. // }
  122. // }];
  123. // }
  124. }
  125. #pragma mark 获取webURL并展示
  126. -(void)getTopicNewsById
  127. {
  128. //如果是3 表示进来的新闻页面 不需要再请求地址 直接有 所以return
  129. if ([_type isEqualToString:@"3"]) {
  130. NSString *path = _preModel[@"HTML"];
  131. if (path && ![path hasPrefix:@"http"]){
  132. path = [imgPreFix stringByAppendingString:path];
  133. }
  134. if (!path) {
  135. path = @"";
  136. }
  137. urlString = path;
  138. dispatch_async(dispatch_get_main_queue(), ^{
  139. [self creatWebView];
  140. [holdV setHidden:YES];
  141. });
  142. return;
  143. }
  144. if (![Util connectedToNetWork]) {
  145. showMsgUnconnect();
  146. [holdV setHidden:YES];
  147. return ;
  148. }
  149. NSMutableArray* arr = [NSMutableArray array];
  150. NSString* method;
  151. if ([_type isEqualToString:@"1"])
  152. {
  153. if (_jkttId.length > 0) {
  154. [arr addPro:@"newsId" Value:_jkttId];
  155. }else{
  156. [arr addPro:@"newsId" Value:_preModel[@"ID"]];
  157. }
  158. method = @"getNewsInfo";
  159. }
  160. else
  161. {
  162. [arr addPro:@"newsId" Value:_preModel[@"ID"]];
  163. method = @"getNewsInfo";
  164. }
  165. [MBProgressHUD showLoadToView:self.view];
  166. [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * dict) {
  167. [MBProgressHUD hideHUDForView:self.view];
  168. //NSLog(@"驾校新闻详情---->%@---->dict-%@-->%@",arr,dict,dict[@"body"]);
  169. if (!dict) {
  170. ShowMsgFailed();
  171. [holdV setHidden:NO];
  172. return ;
  173. }
  174. if ( [dict[@"code"] isEqualToString:@"1"]) {
  175. ShowMsg(dict[@"body"]);
  176. [holdV setHidden:NO];
  177. return ;
  178. }
  179. urlString = dict[@"body"];
  180. [self creatWebView];
  181. [holdV setHidden:YES];
  182. }];
  183. }
  184. -(void)creatWebView
  185. {
  186. //解决乱码问题 因为服务器做了修改 所以不用自己处理乱码了 相关代码删除
  187. WKWebView *view = [[WKWebView alloc] initWithFrame:kFrame];
  188. view.height = kSize.height - kNavOffSet;
  189. view.navigationDelegate = self;
  190. [self.view addSubview: view];
  191. //NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
  192. //baseURL 一般加载本地 这个参数为空 这里不为nil是因为 写成nil报警告
  193. //[view loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:urlString]];
  194. NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
  195. if (![Util connectedToNetWork]) {
  196. showMsgUnconnect();
  197. return;
  198. }
  199. [MBProgressHUD showLoadToView:self.view];
  200. [view loadRequest:request];
  201. }
  202. #pragma mark -
  203. // 页面加载失败时调用
  204. - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error{
  205. [MBProgressHUD hideHUDForView:self.view];
  206. }
  207. // 页面加载完毕时调用
  208. - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
  209. [MBProgressHUD hideHUDForView:self.view];
  210. }
  211. - (void)didReceiveMemoryWarning {
  212. [super didReceiveMemoryWarning];
  213. }
  214. @end