customShareManageTool.m 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //
  2. // customShareManageTool.m
  3. // 隐私保护
  4. //
  5. // Created by xd h on 2024/5/11.
  6. //
  7. #import "customShareManageTool.h"
  8. //微信分享头文件
  9. #import "WXApi.h"
  10. #import "WXApiObject.h"
  11. //QQ分享头文件
  12. #import <TencentOpenAPI/TencentOAuth.h>
  13. #import <TencentOpenAPI/QQApiInterface.h>
  14. #import <TencentOpenAPI/QQApiInterfaceObject.h>
  15. @implementation customShareManageTool
  16. + (nonnull instancetype)sharedManager {
  17. static dispatch_once_t once;
  18. static id instance;
  19. dispatch_once(&once, ^{
  20. instance = [[self alloc] init];
  21. });
  22. return instance;
  23. }
  24. //分享没有图片 请用自己的AppIcon 作为分享图片
  25. //shareUrl 分享链接
  26. //shareTitle 分享标题
  27. //shareContent 分享内容
  28. // type1 朋友圈 2 微信好友 3 QQ
  29. - (void)shareType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle withShareContent:(NSString*)shareContent
  30. {
  31. //[[iToast makeText:@"接入云游戏的APP分享请在这里添加代码实现"] show];
  32. //HLog(@"type:%ld---shareUrl:%@---shareTitle:%@",type,shareUrl,shareTitle)
  33. if(type == 3)
  34. {
  35. [self shareQQwithShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
  36. }
  37. else if(type == 1 || type == 2)
  38. {
  39. [self shareWechatByType:type withShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
  40. }
  41. // else{}
  42. }
  43. - (void)shareQQwithShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle withShareContent:(NSString*)shareContent
  44. {
  45. if(![QQApiInterface isSupportShareToQQ])
  46. {
  47. //[[iToast makeText:@"未安装QQ,请先安装QQ"] show];
  48. [[iToast makeText:NSLocalizedString(@"share_no_qq",nil)] show];
  49. return;
  50. }
  51. //分享没有图片 请用自己的AppIcon 作为分享图片
  52. UIImage *shareImage = [UIImage imageNamed:@"AppIcon"];
  53. /*分享文字+连接*/
  54. NSURL*curUrl = [NSURL URLWithString:shareUrl];
  55. QQApiNewsObject *newsObj = [QQApiNewsObject
  56. objectWithURL:curUrl
  57. title:shareTitle
  58. description:shareContent
  59. previewImageData:UIImagePNGRepresentation(shareImage)];
  60. SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];
  61. //将内容分享到qq
  62. QQApiSendResultCode sent = [QQApiInterface sendReq:req];
  63. if (sent != 0) {
  64. [[iToast makeText:@"QQ分享失败,请稍后重试"] show];
  65. KyoLog(@"QQ好友分享失败");
  66. }
  67. else {
  68. KyoLog(@"QQ好友分享成功");
  69. }
  70. }
  71. //
  72. // type1 朋友圈 2 微信好友 3 QQ
  73. - (void)shareWechatByType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle withShareContent:(NSString*)shareContent
  74. {
  75. if(![WXApi isWXAppInstalled])
  76. {
  77. //[[iToast makeText:@"未安装微信,请先安装微信"] show];
  78. [[iToast makeText:NSLocalizedString(@"share_no_wx",nil)] show];
  79. return;
  80. }
  81. //分享没有图片 请用自己的AppIcon 作为分享图片
  82. UIImage *shareImage = [UIImage imageNamed:@"PrivateX_icon"];
  83. /*分享文字+连接*/
  84. WXWebpageObject *webpageObject = [WXWebpageObject object];
  85. webpageObject.webpageUrl = shareUrl;
  86. WXMediaMessage *message = [WXMediaMessage message];
  87. message.title = shareTitle;
  88. message.description = shareContent;
  89. [message setThumbImage:shareImage];
  90. message.mediaObject = webpageObject;
  91. SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
  92. req.bText = NO;
  93. req.message = message;
  94. if (type == 2) {
  95. req.scene = WXSceneSession;
  96. }
  97. else{
  98. req.scene = WXSceneTimeline;
  99. }
  100. [WXApi sendReq:req completion:^(BOOL success) {
  101. if (success == NO) {
  102. KyoLog(@"微信分享失败");
  103. [[iToast makeText:@"微信分享失败,请稍后重试"] show];
  104. }else {
  105. KyoLog(@"微信分享成功");
  106. }
  107. }];
  108. }
  109. @end