customShareManageTool.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. if(type == 3)
  33. {
  34. [self shareQQwithShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
  35. }
  36. else if(type == 1 || type == 2)
  37. {
  38. [self shareWechatByType:type withShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
  39. }
  40. // else{}
  41. }
  42. - (void)shareQQwithShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle withShareContent:(NSString*)shareContent
  43. {
  44. if(![QQApiInterface isSupportShareToQQ])
  45. {
  46. //[[iToast makeText:@"未安装QQ,请先安装QQ"] show];
  47. [[iToast makeText:NSLocalizedString(@"share_no_qq",nil)] show];
  48. return;
  49. }
  50. //分享没有图片 请用自己的AppIcon 作为分享图片
  51. UIImage *shareImage = [UIImage imageNamed:@"AppIcon"];
  52. /*分享文字+连接*/
  53. QQApiNewsObject *newsObj = [QQApiNewsObject
  54. objectWithURL:[NSURL URLWithString:shareUrl]
  55. title:shareTitle
  56. description:shareContent
  57. previewImageData:UIImagePNGRepresentation(shareImage)];
  58. SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];
  59. //将内容分享到qq
  60. QQApiSendResultCode sent = [QQApiInterface sendReq:req];
  61. if (sent != 0) {
  62. [[iToast makeText:@"QQ分享失败,请稍后重试"] show];
  63. KyoLog(@"QQ好友分享失败");
  64. }
  65. else {
  66. KyoLog(@"QQ好友分享成功");
  67. }
  68. }
  69. //
  70. // type1 朋友圈 2 微信好友 3 QQ
  71. - (void)shareWechatByType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle withShareContent:(NSString*)shareContent
  72. {
  73. if(![WXApi isWXAppInstalled])
  74. {
  75. //[[iToast makeText:@"未安装微信,请先安装微信"] show];
  76. [[iToast makeText:NSLocalizedString(@"share_no_wx",nil)] show];
  77. return;
  78. }
  79. //分享没有图片 请用自己的AppIcon 作为分享图片
  80. UIImage *shareImage = [UIImage imageNamed:@"PrivateX_icon"];
  81. /*分享文字+连接*/
  82. WXWebpageObject *webpageObject = [WXWebpageObject object];
  83. webpageObject.webpageUrl = shareUrl;
  84. WXMediaMessage *message = [WXMediaMessage message];
  85. message.title = shareTitle;
  86. message.description = shareContent;
  87. [message setThumbImage:shareImage];
  88. message.mediaObject = webpageObject;
  89. SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
  90. req.bText = NO;
  91. req.message = message;
  92. if (type == 2) {
  93. req.scene = WXSceneSession;
  94. }
  95. else{
  96. req.scene = WXSceneTimeline;
  97. }
  98. [WXApi sendReq:req completion:^(BOOL success) {
  99. if (success == NO) {
  100. KyoLog(@"微信分享失败");
  101. [[iToast makeText:@"微信分享失败,请稍后重试"] show];
  102. }else {
  103. KyoLog(@"微信分享成功");
  104. }
  105. }];
  106. }
  107. @end