IOS分享SDK接入说明

1 接入指南

掌趣分享SDK是一个聚合SDK,目前整合了微信、QQ、新浪微博等SDK,包含文本分享、图片分享、链接分享等功能。本SDK最低支持ios6.0

2 工程配置

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

注意:prop.cfg由掌趣运营提供

2.2 配置Info.plist文件

  1. <key>LSApplicationQueriesSchemes</key>
  2. <array>
  3. <string>weixin</string>
  4. <string>mqq</string>
  5. <string>mqqapi</string>
  6. <string>mqqwpa</string>
  7. <string>mqqbrowser</string>
  8. <string>mttbrowser</string>
  9. <string>mqqOpensdkSSoLogin</string>
  10. <string>mqqopensdkapiV2</string>
  11. <string>mqqopensdkapiV3</string>
  12. <string>mqqopensdkapiV4</string>
  13. <string>wtloginmqq2</string>
  14. <string>mqzone</string>
  15. <string>mqzoneopensdk</string>
  16. <string>mqzoneopensdkapi</string>
  17. <string>mqzoneopensdkapi19</string>
  18. <string>mqzoneopensdkapiV2</string>
  19. <string>mqqopensdkfriend</string>
  20. <string>mqqopensdkdataline</string>
  21. <string>mqqgamebindinggroup</string>
  22. <string>mqqopensdkgrouptribeshare</string>
  23. <string>tencentapi.qq.reqContent</string>
  24. <string>tencentapi.qzone.reqContent</string>
  25. <string>tim</string>
  26. <string>timapi</string>
  27. <string>timopensdkfriend</string>
  28. <string>timwpa</string>
  29. <string>timgamebindinggroup</string>
  30. <string>timapiwallet</string>
  31. <string>timOpensdkSSoLogin</string>
  32. <string>wtlogintim</string>
  33. <string>timopensdkgrouptribeshare</string>
  34. <string>timopensdkapiV4</string>
  35. <string>timgamebindinggroup</string>
  36. <string>timopensdkdataline</string>
  37. <string>wtlogintimV1</string>
  38. <string>timapiV1</string>
  39. <string>sinaweibohd</string>
  40. <string>sinaweibo</string>
  41. <string>weibosdk</string>
  42. <string>weibosdk2.5</string>
  43. </array>

2.3 配置URL Scheme

  1. <key>CFBundleURLTypes</key>
  2. <array>
  3. <dict>
  4. <key>CFBundleTypeRole</key>
  5. <string>Editor</string>
  6. <key>CFBundleURLName</key>
  7. <string>tencent</string>
  8. <key>CFBundleURLSchemes</key>
  9. <array>
  10. <string>tencent222222</string> // tencent+appId
  11. </array>
  12. </dict>
  13. <dict>
  14. <key>CFBundleTypeRole</key>
  15. <string>Editor</string>
  16. <key>CFBundleURLName</key>
  17. <string>com.weibo</string>
  18. <key>CFBundleURLSchemes</key>
  19. <array>
  20. <string>wb2045436852</string> // wb+appId
  21. </array>
  22. </dict>
  23. </array>

2.4 配置系统库

3 分享集成

功能说明
分享

接口定义

  1. void ShareThirdPlatform( NSString* shareScene,
  2. NSDictionary* shareContent,
  3. void (* pfuncShare)(const char * shareType,int errCode,const char * jsonStr));

分享接口参数:

参数名 类型 重要性 说明
shareScene NSString (必填) 分享场景:
SceneWeChat 微信好友
SceneWeChatLine 微信朋友圈
SceneQQ QQ好友
SceneQzone QQ空间
SceneSinaWeibo 新浪微博
shareContent NSDictionary (必填) 分享内容,具体根据分享类型的不同而不同
pfuncShare void* (必填) 分享回调

3.1 分享文本

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

3.2 分享图片

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

3.3 分享链接

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

接口示例

  1. // 回调函数
  2. void ShareThirdPlatformCallBack(const char * shareType, int errCode, const char * jsonStr)
  3. {
  4. NSLog(@"ShareThirdPlatformCallBack");
  5. string result = shareType;
  6. if (errCode == 1) {
  7. result.append("分享成功!");
  8. } else {
  9. result.append("分享失败!");
  10. }
  11. cout<<errCode<<endl;
  12. NSString *msg = [NSString stringWithUTF8String:result.c_str()];
  13. NSLog(@"%@", msg);
  14. UIAlertView*alert = [[UIAlertView alloc]initWithTitle:nil
  15. message:msg
  16. delegate:nil
  17. cancelButtonTitle:nil
  18. otherButtonTitles:@"确定",nil];
  19. [alert show];
  20. }
  21. // *************************微信分享************************************
  22. - (void)weChatShareScene:(int) friendScene contentType:(int) type
  23. {
  24. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  25. if (type == 0) {
  26. //分享文本
  27. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  28. [dic setObject:@"test" forKey:OPSParam_Text];
  29. }else if(type == 1){
  30. //分享图片
  31. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  32. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  33. [dic setObject:filePath forKey:OPSParam_ImagePath];
  34. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  35. }else{
  36. //分享链接
  37. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  38. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  39. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  40. [dic setObject:@"http://www.ourpalm.com/" forKey:OPSParam_LinkUrl];
  41. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  42. [dic setObject:filePath forKey:OPSParam_ImagePath];
  43. }
  44. if (friendScene == 0) {
  45. //好友分享
  46. OPGameSDK::GetInstance().ShareThirdPlatform(SceneWeChat, dic,ShareThirdPlatformCallBack);
  47. } else {
  48. //朋友圈分享
  49. OPGameSDK::GetInstance().ShareThirdPlatform(SceneWeChatLine, dic,ShareThirdPlatformCallBack);
  50. }
  51. }
  52. // *************************QQ分享************************************
  53. - (void)qqShareScene:(int)friendScene contentType:(int)type
  54. {
  55. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  56. if (type == 0) {
  57. //分享文本
  58. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  59. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  60. }else if(type == 1){
  61. //分享图片
  62. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  63. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  64. [dic setObject:filePath forKey:OPSParam_ImagePath];
  65. // [dic setObject:filePath forKey:@"thumbImage"];//缩略图
  66. }else{
  67. //分享链接
  68. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  69. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  70. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  71. [dic setObject:@"http://www.ourpalm.com/" forKey:OPSParam_LinkUrl];
  72. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  73. [dic setObject:filePath forKey:OPSParam_ImagePath];
  74. }
  75. // [dic setObject:@"NOAPPID" forKey:OPSParam_NOAPPID];
  76. if (friendScene == 0) {
  77. //好友分享
  78. OPGameSDK::GetInstance().ShareThirdPlatform(SceneQQ, dic,ShareThirdPlatformCallBack);
  79. } else {
  80. //空间分享
  81. OPGameSDK::GetInstance().ShareThirdPlatform(SceneQzone, dic,ShareThirdPlatformCallBack);
  82. }
  83. }
  84. //*************************微博分享************************************
  85. - (void)weiboShareContentType:(int)type
  86. {
  87. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  88. if (type == 0) {
  89. //分享文本
  90. [dic setObject:OPShareText forKey:OPSParam_ShareType];
  91. [dic setObject:@"文本测试" forKey:OPSParam_Text];
  92. } else if (type == 1) {
  93. //分享图片
  94. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"localPic" ofType:@"png"];
  95. [dic setObject:OPShareImage forKey:OPSParam_ShareType];
  96. [dic setObject:filePath forKey:OPSParam_ImagePath];
  97. } else {
  98. //分享链接
  99. NSString *filePath = [[NSBundle mainBundle] pathForResource:@"thumbImage" ofType:@"jpg"];
  100. [dic setObject:OPShareLink forKey:OPSParam_ShareType];
  101. [dic setObject:@"testTitle" forKey:OPSParam_LinkTitle];
  102. [dic setObject:@"http://www.sadfsadfsaf.com/" forKey:OPSParam_LinkUrl];
  103. [dic setObject:@"testDesc" forKey:OPSParam_LinkDesc];
  104. [dic setObject:filePath forKey:OPSParam_ImagePath];
  105. // [dic setObject:filePath forKey:@"thumbImage"]; //多媒体内容中缩略图大小不能大于32K
  106. }
  107. OPGameSDK::GetInstance().ShareThirdPlatform(SceneSinaWeibo, dic,ShareThirdPlatformCallBack);
  108. }

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