IOS三方登录和分享SDK接入说明

1 接入指南

龙图三方登录和分享SDK是一个聚合SDK,目前整合了微信、QQ、新浪微博、Facebook、Twitter等SDK,包含登录、文本分享、图片分享、链接分享等功能。本SDK最低支持iOS9.00

2 工程配置

2.1 添加库、资源、配置文件

注意:prop.cfg由龙图运营提供,需要加入工程(等同bundle资源).

2.2 配置Info.plist文件

  1. <key>LSApplicationQueriesSchemes</key>
  2. <array>
  3. <string>wechat</string>
  4. <string>mqqopensdkapiV3</string>
  5. <string>wtloginmqq2</string>
  6. <string>mqq</string>
  7. <string>mqqapi</string>
  8. <string>mqqwpa</string>
  9. <string>mqqbrowser</string>
  10. <string>mttbrowser</string>
  11. <string>mqqOpensdkSSoLogin</string>
  12. <string>mqqopensdkapiV2</string>
  13. <string>sinaweibo</string>
  14. <string>sinaweibohd</string>
  15. <string>weibosdk</string>
  16. <string>weibosdk2.5</string>
  17. <string>weibosdk3.3</string>
  18. <string>weixin</string>
  19. <string>weixinULAPI</string>
  20. <string>fbshareextension</string>
  21. <string>fb-messenger-api</string>
  22. <string>fbapi</string>
  23. <string>fbauth2</string>
  24. </array>

2.3 配置URL Scheme

格式按截图所示,或查看demo


facebook单独配置(同Facebook登录配置)

2.4 配置系统库

*新版微信和QQ登录和分享必须配置URLLink
例子:
applinks:www.xxxxx.com
地址不需要带前缀和结尾

3 分享集成

功能说明
分享

接口定义(C++)

  1. void LTGameSDK::ShareThirdPlatformView(void* content, void (* pfunc)(const char * shareType,int errCode, const char * jsonStr));

接口定义(OC)

  1. - (void)LTSDKShareThirdPlatformView:(NSDictionary *)dict;

分享接口参数:

参数名 类型 重要性 说明
content NSDictionary (必填) 分享内容,具体根据分享类型的不同而不同
pfunc void* (C++必填,OC不填) 分享回调

分享回调内的 shareType 对应参数

键值 类型 说明
“0” NSString 未知,失败的时候可能会用到。
“WeChat” NSString 微信好友
“WeChatLine” NSString 微信朋友圈
“QQ” NSString QQ好友
“Qzone” NSString QQ空间
“SinaWeibo” NSString 新浪微博
“Facebook” NSString 脸书
“Twitter” NSString 推特
“System” NSString 系统

3.1 分享文本

参数名 类型 重要性 说明
OPSParam_ShareType NSString (必填) OPShareText
OPShareText NSString (必填) 文本内容

3.2 分享图片

参数名 类型 重要性 说明
OPSParam_ShareType NSString (必填) OPShareImage
OPSParam_ImagePath NSString (必填) 本地图片路径

3.3 分享链接

参数名 类型 重要性 说明
OPSParam_ShareType NSString (必填) OPShareLink
OPSParam_ImagePath NSString (必填) 本地图片路径
OPSParam_Text NSString (必填) 文本内容
OPSParam_LinkTitle NSString (必填) 链接标题
OPSParam_LinkDesc NSString (必填) 链接描述
OPSParam_LinkUrl NSString (必填) 链接地址

回调示例(C++):

  1. void ShareThirdPlatformCallBack(const char * shareType, int errCode, const char * jsonStr)
  2. {
  3. NSLog(@"ShareThirdPlatformCallBack");
  4. string result = shareType;
  5. if (errCode == 1) {
  6. result.append("分享成功!");
  7. }else if (errCode == 0){
  8. result.append("分享取消!");
  9. } else {
  10. result.append("分享失败!");
  11. }
  12. cout<<errCode<<endl;
  13. NSString *msg = [NSString stringWithUTF8String:result.c_str()];
  14. NSLog(@"%@", msg);
  15. UIAlertView*alert = [[UIAlertView alloc]initWithTitle:nil
  16. message:msg
  17. delegate:nil
  18. cancelButtonTitle:nil
  19. otherButtonTitles:@"确定",nil];
  20. [alert show];
  21. }

回调示例(OC):

  1. - (void)ltShareThirdPlatformCallBackWithShareType:(NSString *)shareType errCode:(int)errCode dict:(NSDictionary *)dict {
  2. if (errCode == 1) {
  3. [[LTGameOCSDK shareInstance] LTSDKShowMessage:[NSString stringWithFormat:@"%@分享成功",shareType]];
  4. }else if (errCode == 0){
  5. [[LTGameOCSDK shareInstance] LTSDKShowMessage:[NSString stringWithFormat:@"%@分享取消",shareType]];
  6. } else {
  7. [[LTGameOCSDK shareInstance] LTSDKShowMessage:[NSString stringWithFormat:@"%@分享失败",shareType]];
  8. }
  9. }

3.3.1有界面分享接口

  • SDK自带分享界面,只需选择分享方式(文本/图片/链接)传入不同内容即可.

样式示例:

调用示例(C++):

  1. - (void)LTShareScene:(int) friendScene contentType:(int) type
  2. {
  3. //*************************分享************************************
  4. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  5. if (type == 0) {
  6. //分享文本
  7. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  8. [dic setObject:@"test" forKey:OPSParam_Text];
  9. }else if(type == 1){
  10. //分享图片
  11. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res5" ofType:@"jpg"];
  12. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  13. [dic setObject:filePath forKey:OPSParam_ImagePath];
  14. filePath = [[NSBundle mainBundle] pathForResource:@"res5" ofType:@"jpg"];
  15. [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  16. }else{
  17. //分享链接
  18. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res5" ofType:@"jpg"];
  19. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  20. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  21. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  22. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  23. [dic setObject:filePath forKey:OPSParam_ImagePath];//多媒体内容中缩略图大小不能大于32K
  24. }
  25. LTGameSDK::GetInstance().ShareThirdPlatformView(dic, ShareThirdPlatformCallBack);
  26. }

调用示例(OC):

  1. - (void)LTShareScene:(int) friendScene contentType:(int) type
  2. {
  3. //*************************分享************************************
  4. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  5. if (type == 0) {
  6. //分享文本
  7. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  8. [dic setObject:@"test" forKey:OPSParam_Text];
  9. }else if(type == 1){
  10. //分享图片
  11. // NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"jpg"];
  12. // [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  13. // [dic setObject:filePath forKey:OPSParam_ImagePath];
  14. // filePath = [[NSBundle mainBundle] pathForResource:@"thumbImage" ofType:@"jpg"];
  15. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  16. //分享图片
  17. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  18. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  19. [dic setObject:filePath forKey:OPSParam_ImagePath];
  20. }else{
  21. //分享链接
  22. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"jpg"];
  23. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  24. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  25. [dic setObject:@"http://pp.longtugame.com/apimob/ad? c=22690" forKey:OPSParam_LinkUrl];
  26. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  27. [dic setObject:filePath forKey:OPSParam_ImagePath]; //多媒体内容中缩略图大小不能大于32K
  28. }
  29. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformView:dic];
  30. }

3.3.2自定义分享接口

  • 自定义分享方式,需自行设计页面并且自行选择分享渠道进行不同内容(文本/图片/链接)的分享.

调用示例(C++):

  1. // *************************微信分享************************************
  2. - (void)weChatShareScene:(int) friendScene contentType:(int) type
  3. {
  4. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  5. if (type == 0) {
  6. //分享文本
  7. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  8. [dic setObject:@"test" forKey:OPSParam_Text];
  9. }else if(type == 1){
  10. //分享图片
  11. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  12. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  13. [dic setObject:filePath forKey:OPSParam_ImagePath];
  14. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  15. }else{
  16. //分享链接
  17. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  18. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  19. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  20. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  21. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  22. [dic setObject:filePath forKey:OPSParam_ImagePath];
  23. }
  24. if (friendScene == 0) {
  25. //好友分享
  26. LTGameSDK::GetInstance().ShareThirdPlatform(SceneWeChat, dic,ShareThirdPlatformCallBack);
  27. } else {
  28. //朋友圈分享
  29. LTGameSDK::GetInstance().ShareThirdPlatform(SceneWeChatLine, dic,ShareThirdPlatformCallBack);
  30. }
  31. }
  32. // *************************QQ分享************************************
  33. - (void)qqShareScene:(int)friendScene contentType:(int)type
  34. {
  35. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  36. if (type == 0) {
  37. //分享文本
  38. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  39. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  40. }else if(type == 1){
  41. //分享图片
  42. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  43. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  44. [dic setObject:filePath forKey:OPSParam_ImagePath];
  45. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  46. }else{
  47. //分享链接
  48. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  49. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  50. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  51. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  52. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  53. [dic setObject:filePath forKey:OPSParam_ImagePath];
  54. }
  55. // [dic setObject:@"NOAPPID" forKey:OPSParam_NOAPPID];
  56. if (friendScene == 0) {
  57. //好友分享
  58. LTGameSDK::GetInstance().ShareThirdPlatform(SceneQQ, dic,ShareThirdPlatformCallBack);
  59. } else {
  60. //空间分享
  61. LTGameSDK::GetInstance().ShareThirdPlatform(SceneQzone, dic,ShareThirdPlatformCallBack);
  62. }
  63. }
  64. //*************************微博分享************************************
  65. - (void)weiboShareContentType:(int)type
  66. {
  67. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  68. if (type == 0) {
  69. //分享文本
  70. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  71. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  72. } else if (type == 1) {
  73. //分享图片
  74. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  75. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  76. [dic setObject:filePath forKey:OPSParam_ImagePath];
  77. } else {
  78. //分享链接
  79. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"thumbImage" ofType:@"jpg"];
  80. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  81. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  82. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  83. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  84. [dic setObject:filePath forKey:OPSParam_ImagePath];
  85. // [dic setObject:filePath forKey:@"thumbImage"]; //多媒体内容中缩略图大小不能大于32K
  86. }
  87. LTGameSDK::GetInstance().ShareThirdPlatform(SceneSinaWeibo, dic,ShareThirdPlatformCallBack);
  88. }
  89. // *************************Facebook分享************************************
  90. - (void)facebookShareScene:(int)friendScene contentType:(int)type
  91. {
  92. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  93. if (type == 0) {
  94. //分享文本 facebook不支持文本分享
  95. }else if(type == 1){
  96. //分享图片
  97. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  98. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  99. [dic setObject:filePath forKey:OPSParam_ImagePath];
  100. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  101. }else{
  102. //分享链接
  103. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  104. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  105. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  106. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  107. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  108. [dic setObject:filePath forKey:OPSParam_ImagePath];
  109. }
  110. LTGameSDK::GetInstance().ShareThirdPlatform(SceneFacebook, dic,ShareThirdPlatformCallBack);
  111. }
  112. // *************************Twitter分享************************************
  113. - (void)twitterShareScene:(int)friendScene contentType:(int)type
  114. {
  115. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  116. if (type == 0) {
  117. //分享文本
  118. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  119. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  120. }else if(type == 1){
  121. //分享图片
  122. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  123. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  124. [dic setObject:filePath forKey:OPSParam_ImagePath];
  125. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  126. }else{
  127. //分享链接
  128. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  129. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  130. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  131. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  132. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  133. [dic setObject:filePath forKey:OPSParam_ImagePath];
  134. }
  135. LTGameSDK::GetInstance().ShareThirdPlatform(SceneTwitter, dic,ShareThirdPlatformCallBack);
  136. }

调用示例(OC):

  1. // *************************微信分享************************************
  2. - (void)weChatShareScene:(int) friendScene contentType:(int) type
  3. {
  4. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  5. if (type == 0) {
  6. //分享文本
  7. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  8. [dic setObject:@"test" forKey:OPSParam_Text];
  9. }else if(type == 1){
  10. //分享图片
  11. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  12. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  13. [dic setObject:filePath forKey:OPSParam_ImagePath];
  14. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  15. }else{
  16. //分享链接
  17. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  18. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  19. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  20. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  21. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  22. [dic setObject:filePath forKey:OPSParam_ImagePath];
  23. }
  24. if (friendScene == 0) {
  25. //好友分享
  26. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneWeChat dict:dic];
  27. } else {
  28. //朋友圈分享
  29. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneWeChatLine dict:dic];
  30. }
  31. }
  32. // *************************QQ分享************************************
  33. - (void)qqShareScene:(int)friendScene contentType:(int)type
  34. {
  35. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  36. if (type == 0) {
  37. //分享文本
  38. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  39. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  40. }else if(type == 1){
  41. //分享图片
  42. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  43. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  44. [dic setObject:filePath forKey:OPSParam_ImagePath];
  45. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  46. }else{
  47. //分享链接
  48. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  49. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  50. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  51. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  52. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  53. [dic setObject:filePath forKey:OPSParam_ImagePath];
  54. }
  55. // [dic setObject:@"NOAPPID" forKey:OPSParam_NOAPPID];
  56. if (friendScene == 0) {
  57. //好友分享
  58. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneQQ dict:dic];
  59. } else {
  60. //朋友圈分享
  61. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneQzone dict:dic];
  62. }
  63. }
  64. //*************************微博分享************************************
  65. - (void)weiboShareContentType:(int)type
  66. {
  67. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  68. if (type == 0) {
  69. //分享文本
  70. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  71. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  72. } else if (type == 1) {
  73. //分享图片
  74. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  75. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  76. [dic setObject:filePath forKey:OPSParam_ImagePath];
  77. } else {
  78. //分享链接
  79. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"thumbImage" ofType:@"jpg"];
  80. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  81. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  82. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  83. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  84. [dic setObject:filePath forKey:OPSParam_ImagePath];
  85. // [dic setObject:filePath forKey:@"thumbImage"]; //多媒体内容中缩略图大小不能大于32K
  86. }
  87. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneSinaWeibo dict:dic];
  88. }
  89. // *************************Facebook分享************************************
  90. - (void)facebookShareScene:(int)friendScene contentType:(int)type
  91. {
  92. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  93. if (type == 0) {
  94. //分享文本 facebook不支持文本分享
  95. }else if(type == 1){
  96. //分享图片
  97. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  98. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  99. [dic setObject:filePath forKey:OPSParam_ImagePath];
  100. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  101. }else{
  102. //分享链接
  103. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  104. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  105. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  106. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  107. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  108. [dic setObject:filePath forKey:OPSParam_ImagePath];
  109. }
  110. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneFacebook dict:dic];
  111. }
  112. // *************************Twitter分享************************************
  113. - (void)twitterShareScene:(int)friendScene contentType:(int)type
  114. {
  115. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  116. if (type == 0) {
  117. //分享文本
  118. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  119. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  120. }else if(type == 1){
  121. //分享图片
  122. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  123. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  124. [dic setObject:filePath forKey:OPSParam_ImagePath];
  125. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  126. }else{
  127. //分享链接
  128. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  129. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  130. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  131. [dic setObject:@"http://www.longtugame.com/" forKey:OPSParam_LinkUrl];
  132. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  133. [dic setObject:filePath forKey:OPSParam_ImagePath];
  134. }
  135. [[LTGameOCSDK shareInstance] LTSDKShareThirdPlatformWithChannel:SceneTwitter dict:dic];
  136. }

PS:两种分享共用同一回调接口.

3.4 分享场景和参数统一宏定义

需引入LTParam.h头文件

  1. //***************分享场景*******************
  2. #define SceneWeChat @"WeChat" //微信好友
  3. #define SceneWeChatLine @"WeChatLine" //微信朋友圈
  4. #define SceneQQ @"QQ" //QQ好友
  5. #define SceneQzone @"Qzone" //QQ空间
  6. #define SceneSinaWeibo @"SinaWeibo" //新浪微博
  7. #define SceneFacebook @"Facebook" //Facebook
  8. #define SceneTwitter @"Twitter" //Twitter
  9. //***************分享参数********************
  10. #define OPSParam_ShareType @"ShareType" //分享类型标识
  11. #define OPShareText @"ShareText" //分享文本
  12. #define OPShareImage @"ShareImage" //分享图片
  13. #define OPShareLink @"ShareLink" //分享链接
  14. #define OPSParam_Text @"Text" //文本
  15. #define OPSParam_ImagePath @"ImagePath" //图片本地地址
  16. #define OPSParam_LinkTitle @"LinkTitle" //链接标题
  17. #define OPSParam_LinkDesc @"LinkDesc" //链接描述
  18. #define OPSParam_LinkUrl @"LinkUrl" //链接地址
  19. #define OPSParam_NOAPPID @"NOAPPID" //特殊参数,暂时无用

3.5 三方登录和分享生命周期方法

新版三方登录和分享支持URLlink,需增加实现生命周期方法接入

  1. - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
  2. #if _AREA_FLAG & MASK_INIT_AREA_CPLUS//调用示例(C++):
  3. if (LTGameSDK::GetInstance().ContinueUserActivity(application, userActivity, restorationHandler)) {
  4. return YES;
  5. }
  6. #endif
  7. #if _AREA_FLAG & MASK_INIT_AREA_OC//调用示例(OC):
  8. if ([[LTGameOCSDK shareInstance] LTSDKApplication:application continueUserActivity:userActivity restorationHandler:restorationHandler]) {
  9. return YES;
  10. }
  11. #endif
  12. return NO;
  13. }

4、参数规则限制介绍

4.1、新浪微博分享规则

(1)新浪微博支持分享类型:
a、应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享
b、客户端分享支持:文字,图片,文字+图片,图片+文字+链接

参数说明:
text:不能超过140个汉字
image:图片最大不超过5M,仅支持PNG格式

4.2、QQ好友分享规则

QQ好友分享支持:文字,图片,文字+图片+链接,音乐链接,视频链接

参数说明:
text:最多40个字符
title:最多30个字符,超出部分会被截断
url :URL 地址,最长 512 个字符
thumbImage:预览图数据,最大20k
image:最大1M,仅支持PNG格式

4.3、QQ空间分享规则

QQ空间分享支持:文字,图片,文字+图片+链接,本地视频,视频链接

参数说明:
url: 1、必须用域名网址 ; 2、url 不能含有中文;
title:最多200个字符;
text:最多600个字符;

4.4、微信(好友、朋友圈、收藏)分享规则

微信好友分享支持:文字,图片,文字+图片+链接,音乐链接,视频链接,应用消息,表情,文件(本地视频),小程序
微信朋友圈分享支持:文字,图片,文字+图片+链接,音乐链接,视频链接
微信收藏分享支持:文字,图片,文字+图片+链接,音乐链接,视频链接,文件(本地视频)

参数说明
title:512Bytes以内
description:1KB以内
imageData:大小不能超过5M
imagePath:大小不能超过5M(传递的imagePath路径不能超过10KB)
imageUrl:长度不能超过10K(图片链接,仅支持PNG格式,较好的效果为大图360x200,小图200x200 )
ThumbImage:内存大小不能超过32K的png图,图片分享必须添加此图!!!!
musicUrl:长度不能超过10K
videoUrl:长度不能超过10K
url:不能为空且长度不能超过10K
参数说明
title:512Bytes以内
description:1KB以内
imageData:大小不能超过5M
imagePath:大小不能超过5M(传递的imagePath路径不能超过10KB)
imageUrl:长度不能超过10K(图片链接,仅支持PNG格式,较好的效果为大图360x200,小图200x200 )
ThumbImage:内存大小不能超过32K的png图,图片分享必须添加此图!!!!
musicUrl:长度不能超过10K
videoUrl:长度不能超过10K
url:不能为空且长度不能超过10K

4.5、Facebook分享

分享支持:图片、链接,不支持分享文本
参数说明:
image:小于4M

4.6、Twitter分享

分享支持:图片、文本、链接
参数说明:
image:小于4M
text:小于140字符

4.7、系统分享分享规则

分享支持:图片,链接.

参数说明
1.经测试发现系统分享到QQ时图片大于100K的话QQ会有很大几率发送失败,其他渠道如果图片过大会导致加载过程极慢甚至卡死,不同渠道也不太一样,官方并没有具体文档说明,所以分享图片时最好尽可能压缩图片大小.
2.另外针对系统分享到Facebook和Twitter在系统iOS12的设备上会直接返回失败,经测试为苹果自己的bug,暂时无解,所以在iOS12 上系统分享到Facebook和Twitter无法正常使用.
3.Twitter在分享链接时如果带缩略图则自动变成图片分享,无法正常分享链接,Facebook则在分享链接时无论带不带缩略图都不会显示缩略图.所以建议海外版本在使用系统分享链接时建议不传缩略图.