悟空记账

JZUMShareManager.m 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. //
  2. // JZUMShareManager.m
  3. // JIZHANG
  4. //
  5. // Created by jikaipeng on 2017/10/23.
  6. // Copyright © 2017年 kuxuan. All rights reserved.
  7. //
  8. #import "JZUMShareManager.h"
  9. #import <UShareUI/UShareUI.h>
  10. #define UMSHARE_APPKEY @"5a14e6b9f29d9819e60000a4"
  11. #define WeiXin_APPKEY @"wxece0d842434b050a"
  12. #define WeiXin_appSecret @"af5a3ee008e8191693297d91b64572ad"
  13. #define QQ_APPKEY @"1105821097"
  14. @implementation JZUMShareManager
  15. + (instancetype)shareInstance{
  16. static JZUMShareManager *shareManger = nil;
  17. static dispatch_once_t onceToken;
  18. dispatch_once(&onceToken, ^{
  19. if (shareManger == nil) {
  20. shareManger = [[JZUMShareManager alloc]init];
  21. }
  22. });
  23. return shareManger;
  24. }
  25. - (void)setUMShare{
  26. /* 打开日志 */
  27. [[UMSocialManager defaultManager] openLog:NO];
  28. // 打开图片水印
  29. //[UMSocialGlobal shareInstance].isUsingWaterMark = YES;
  30. [UMSocialGlobal shareInstance].isClearCacheWhenGetUserInfo = NO;
  31. /* 设置友盟appkey */
  32. [[UMSocialManager defaultManager] setUmSocialAppkey:UMSHARE_APPKEY];
  33. [self configUSharePlatforms];
  34. [self confitUShareSettings];
  35. }
  36. - (void)shareWithUI{
  37. [UMSocialShareUIConfig shareInstance].shareTitleViewConfig.isShow = NO;
  38. [UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType = UMSocialSharePageGroupViewPositionType_Bottom;
  39. [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxRowCountForPortraitAndBottom = 2;
  40. [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxColumnCountForPortraitAndBottom = 2;
  41. // [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxRowCountForLandscapeAndMid = 2;
  42. // [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxColumnCountForLandscapeAndMid = 6;
  43. //显示分享面板
  44. [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
  45. NSString *shareUrl = [[NSUserDefaults standardUserDefaults]objectForKey:JZiosSahreUrl];
  46. // 根据获取的platformType确定所选平台进行下一步操作
  47. [self shareWebPagewithplatformType:platformType title:@"钱多多随手记" desc:@"钱多多记账,最简洁的随手记账软件,官方推荐,百万财务用户的记账首选APP" thumImage:@"mine_about_icon" webpageUrl:shareUrl];
  48. }];
  49. }
  50. - (void)alertWithError:(NSError *)error
  51. {
  52. NSString *result = nil;
  53. if (!error) {
  54. // result = [NSString stringWithFormat:@"分享成功"];
  55. [MBProgressHUD showSuccess:@"分享成功"];
  56. }
  57. else{
  58. NSMutableString *str = [NSMutableString string];
  59. if (error.userInfo) {
  60. for (NSString *key in error.userInfo) {
  61. [str appendFormat:@"%@ = %@\n", key, error.userInfo[key]];
  62. }
  63. }
  64. if (error) {
  65. result = [NSString stringWithFormat:@"Share fail with error code: %d\n%@",(int)error.code, str];
  66. // [MBProgressHUD showError:result];
  67. }
  68. else{
  69. // result = [NSString stringWithFormat:@"Share fail"];
  70. [MBProgressHUD showError:@"分享失败"];
  71. }
  72. }
  73. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"share"
  74. message:result
  75. delegate:nil
  76. cancelButtonTitle:NSLocalizedString(@"sure", @"确定")
  77. otherButtonTitles:nil];
  78. [alert show];
  79. }
  80. - (void)configUSharePlatforms{
  81. /*
  82. 设置微信的appKey和appSecret
  83. [微信平台从U-Share 4/5升级说明]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_1
  84. */
  85. [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:WeiXin_APPKEY appSecret:WeiXin_appSecret redirectURL:nil];
  86. /* 设置分享到QQ互联的appID
  87. * U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。
  88. 100424468.no permission of union id
  89. [QQ/QZone平台集成说明]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_3
  90. */
  91. [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:QQ_APPKEY/*设置QQ平台的appID*/ appSecret:nil redirectURL:nil];
  92. /*
  93. * 移除相应平台的分享,如微信收藏
  94. */
  95. [[UMSocialManager defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatFavorite),@(UMSocialPlatformType_Qzone),@(UMSocialPlatformType_QQ)]];
  96. }
  97. - (void)confitUShareSettings{
  98. /*
  99. * 打开图片水印
  100. */
  101. //[UMSocialGlobal shareInstance].isUsingWaterMark = YES;
  102. /*
  103. * 关闭强制验证https,可允许http图片分享,但需要在info.plist设置安全域名
  104. <key>NSAppTransportSecurity</key>
  105. <dict>
  106. <key>NSAllowsArbitraryLoads</key>
  107. <true/>
  108. </dict>
  109. */
  110. //[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
  111. }
  112. - (void)shareText:(NSString *)text{
  113. UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
  114. messageObject.text = text;
  115. [[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_WechatSession messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
  116. NSString *message = nil;
  117. if (!error) {
  118. message = [NSString stringWithFormat:@"分享成功"];
  119. } else {
  120. message = [NSString stringWithFormat:@"失败原因Code: %d\n",(int)error.code];
  121. }
  122. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"share"
  123. message:message
  124. delegate:nil
  125. cancelButtonTitle:NSLocalizedString(@"确定", nil)
  126. otherButtonTitles:nil];
  127. [alert show];
  128. }];
  129. }
  130. - (void)shareWebPagewithplatformType:(UMSocialPlatformType)platformType title:(NSString *)title desc:(NSString *)desc thumImage:(NSString *)imageName webpageUrl:(NSString *)webUrl{
  131. //创建分享消息对象
  132. UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
  133. //创建网页内容对象
  134. UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:title descr:desc thumImage:[UIImage imageNamed:imageName]];
  135. //设置网页地址
  136. shareObject.webpageUrl = webUrl;
  137. //分享消息对象设置分享内容对象
  138. messageObject.shareObject = shareObject;
  139. //调用分享接口
  140. [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:nil completion:^(id data, NSError *error) {
  141. if (error) {
  142. [MBProgressHUD showError:@"分享失败"];
  143. // UMSocialLogInfo(@"************Share fail with error %@*********",error);
  144. }else{
  145. if ([data isKindOfClass:[UMSocialShareResponse class]]) {
  146. UMSocialShareResponse *resp = data;
  147. // //分享结果消息
  148. // UMSocialLogInfo(@"response message is %@",resp.message);
  149. // //第三方原始返回的数据
  150. // UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
  151. [MBProgressHUD showSuccess:@"分享成功"];
  152. }else{
  153. // UMSocialLogInfo(@"response data is %@",data);
  154. [MBProgressHUD showSuccess:@"分享成功"];
  155. }
  156. }
  157. // [self alertWithError:error];
  158. }];
  159. }
  160. @end