cocos2d-x 集成社交分享平台shareSDK

前端之家收集整理的这篇文章主要介绍了cocos2d-x 集成社交分享平台shareSDK前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

社交分享功能有助于游戏宣传和提升知名度,是一种不错的社交营销手段。

ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台

参自百度百科:http://baike.baidu.com/view/9915538.htm?fr=aladdin

ShareSDK官网:http://sharesdk.cn

SDK下载:http://share.sharesdk.cn/Download

我们需要下载ShareSDK For iOS,ShareSDK For AndroidShareSDK For COCOS2D-X这三个组件。

ShareSDK官网注册一个账号,并添加新应用,得到此应用的AppKey,这个AppKey在下面我们将用的到。

在此只讲解 新浪微博,腾讯微博,微信朋友圈 三个平台的分享功能


下面是集成步骤:

IOS端:

1.创建一个cocos2d-x工程,命名为ShareSDK。

2.将ShareSDK For COCOS2D-X -> Classes 下的C2DXShareSDK拷贝到你项目的Classes目录下。

xcode中去除对Android目录的引用,只是去除引用,实际项目文件中要有此目录,项目编译到Android后才会用到。如图:

xcode中去除对Android目录的引用

实际项目文件保留:


3.ShareSDK For iOS下的ShareSDK拷贝到你项目的iOS目录下。如图:


4.在Link Binary With Libraries添加依赖库。如图:


添加以下framework到你的工程中:

  1. SystemConfiguration.framework
  2. QuartzCore.framework
  3. CoreTelephony.framework
  4. libicucore.dylib
  5. libz.1.2.5.dylib
  6. Security.framework
  7. libstdc++.dylib如果不需要QQ空间SSO登录和QQ好友分享可以不添加(这个如果是建立在你把SDK中对应的平台库文件删除掉,才能不添加,由于下载的SDK中每个平台的库都是默认存在的,所以必须要加上这个库,以下同理)
  8. libsqlite3.dylib如果不需要QQ空间SSO登录和QQ好友分享可以不添加
  9. CoreMotion.framework如果不使用Google+可以不添加
  10. CoreLocation.framework如果不使用Google+可以不添加
  11. MediaPlayer.framework如果不使用Google+可以不添加
  12. CoreText.framework如果不使用Google+可以不添加
  13. AssetsLibrary.framework如果不使用Google+可以不添加
  14. AddressBook.framework如果不使用Google+可以不添加
  15. MessageUI.framework如果不集成邮件和短信可以不添加

5.打开“AppDelegate.cpp”文件,导入头文件“C2DXShareSDK.h”和命名空间using namespace cn::sharesdk,完成初始化社交平台信息。代码如下:

  1. //
  2. //ShareSDKAppDelegate.cpp
  3. //ShareSDK
  4. //
  5. //CreatedbyXiangZion14-6-18.
  6. //Copyright__MyCompanyName__2014年.Allrightsreserved.
  7. //
  8. #include"AppDelegate.h"
  9. #include"cocos2d.h"
  10. #include"SimpleAudioEngine.h"
  11. #include"HelloWorldScene.h"
  12. #include"C2DXShareSDK.h"
  13. usingnamespacecn::sharesdk;
  14. USING_NS_CC;
  15. usingnamespaceCocosDenshion;
  16. AppDelegate::AppDelegate()
  17. {
  18. }
  19. AppDelegate::~AppDelegate()
  20. {
  21. }
  22. boolAppDelegate::applicationDidFinishLaunching()
  23. {
  24. //*******************************************shareSDK*******************************************//
  25. C2DXShareSDK::open(CCString::create("211e0be667aa"),false);//211e0be667aa为你在ShareSDK官网添加应用的AppKey
  26. //初始化社交平台信息
  27. this->initPlatformConfig();
  28. //**********************************************************************************************//
  29. //initializedirector
  30. CCDirector*pDirector=CCDirector::sharedDirector();
  31. pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
  32. //turnondisplayFPS
  33. pDirector->setDisplayStats(true);
  34. //setFPS.thedefaultvalueis1.0/60ifyoudon'tcallthis
  35. pDirector->setAnimationInterval(1.0/60);
  36. //createascene.it'sanautoreleaSEObject
  37. CCScene*pScene=HelloWorld::scene();
  38. //run
  39. pDirector->runWithScene(pScene);
  40. returntrue;
  41. }
  42. //Thisfunctionwillbecalledwhentheappisinactive.Whencomesaphonecall,it'sbeinvokedtoo
  43. voidAppDelegate::applicationDidEnterBackground()
  44. {
  45. CCDirector::sharedDirector()->stopAnimation();
  46. SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
  47. SimpleAudioEngine::sharedEngine()->pauseAllEffects();
  48. }
  49. //thisfunctionwillbecalledwhentheappisactiveagain
  50. voidAppDelegate::applicationWillEnterForeground()
  51. {
  52. CCDirector::sharedDirector()->startAnimation();
  53. SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
  54. SimpleAudioEngine::sharedEngine()->resumeAllEffects();
  55. }
  56. //*******************************************shareSDK*******************************************//
  57. /**
  58. 注意:可以根据自己需要集成的平台来选择部分平台进行初始化。配置中指定的AppKey等信息需要到相关的社会化平台中通过应用登记来获取
  59. 1.app_key,app_secret,redirect_uri这三个字段都需要你去各自官方平台注册得到。
  60. 2.在info.plist中注册各平台app_key。
  61. */
  62. voidAppDelegate::initPlatformConfig()
  63. {
  64. //新浪微博别忘了在info.plist中注册http://open.weibo.com
  65. CCDictionary*sinaConfigDict=CCDictionary::create();
  66. sinaConfigDict->setObject(CCString::create("568898243"),"app_key");//app_key应用标识
  67. sinaConfigDict->setObject(CCString::create("38a4f8204cc784f81f9f0daaf31e02e3"),"app_secret");//app_secret应用密钥
  68. sinaConfigDict->setObject(CCString::create("http://www.sharesdk.cn"),"redirect_uri");//redirect_uri回调地址
  69. C2DXShareSDK::setPlatformConfig(C2DXPlatTypeSinaWeibo,sinaConfigDict);
  70. //腾讯微博别忘了在info.plist中注册http://dev.t.qq.com
  71. CCDictionary*tcConfigDict=CCDictionary::create();
  72. tcConfigDict->setObject(CCString::create("801307650"),"app_key");
  73. tcConfigDict->setObject(CCString::create("ae36f4ee3946e1cbb98d6965b0b2ff5c"),"app_secret");
  74. tcConfigDict->setObject(CCString::create("http://www.sharesdk.cn"),"redirect_uri");
  75. C2DXShareSDK::setPlatformConfig(C2DXPlatTypeTencentWeibo,tcConfigDict);
  76. //微信朋友别忘在info.plist中注册http://open.weixin.qq.com/移动端上必须要装微信客户端,并且已连接互联网。
  77. CCDictionary*wcConfigDict=CCDictionary::create();
  78. wcConfigDict->setObject(CCString::create("去官网申请"),"app_id");
  79. wcConfigDict->setObject(CCString::create("去官网申请"),"app_secret");
  80. wcConfigDict->setObject(CCString::create("http://www.sharesdk.cn"),"redirect_uri");
  81. C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiTimeline,wcConfigDict);
  82. }
  83. //**********************************************************************************************//


6.在info.plist文件添加一项用于客户端回调的URL Scheme。如图:


7.打开“AppController.mm”文件修改如下:

  1. //
  2. //ShareSDKAppController.mm
  3. //ShareSDK
  4. //
  5. //CreatedbyXiangZion14-6-18.
  6. //Copyright__MyCompanyName__2014年.Allrightsreserved.
  7. //
  8. #import<UIKit/UIKit.h>
  9. #import"AppController.h"
  10. #import"cocos2d.h"
  11. #import"EAGLView.h"
  12. #import"AppDelegate.h"
  13. #import"RootViewController.h"
  14. //*******************************************shareSDK*******************************************//
  15. #import<ShareSDK/ShareSDK.h>
  16. #import"WXApi.h"//微信
  17. #import"WeiboApi.h"//腾讯微博
  18. //*********************************************************************************************//
  19. @implementationAppController
  20. @synthesizewindow;
  21. @synthesizeviewController;
  22. #pragmamark-
  23. #pragmamarkApplicationlifecycle
  24. //cocos2dapplicationinstance
  25. staticAppDelegates_sharedApplication;
  26. -(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
  27. //*******************************************shareSDK*******************************************//
  28. //导入微信类型
  29. [ShareSDKimportWeChatClass:[WXApiclass]];
  30. //导入腾讯微博类型
  31. [ShareSDKimportTencentWeiboClass:[WeiboApiclass]];
  32. //*********************************************************************************************//
  33. //Overridepointforcustomizationafterapplicationlaunch.
  34. //Addtheviewcontroller'sviewtothewindowanddisplay.
  35. window=[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
  36. EAGLView*__glView=[EAGLViewviewWithFrame:[windowbounds]
  37. pixelFormat:kEAGLColorFormatRGBA8
  38. depthFormat:GL_DEPTH_COMPONENT16
  39. preserveBackbuffer:NO
  40. sharegroup:nil
  41. multiSampling:NO
  42. numberOfSamples:0];
  43. //UseRootViewControllermanageEAGLView
  44. viewController=[[RootViewControlleralloc]initWithNibName:nilbundle:nil];
  45. viewController.wantsFullScreenLayout=YES;
  46. viewController.view=__glView;
  47. //SetRootViewControllertowindow
  48. if([[UIDevicecurrentDevice].systemVersionfloatValue]<6.0)
  49. {
  50. //warning:addSubViewdoesn'tworkoniOS6
  51. [windowaddSubview:viewController.view];
  52. }
  53. else
  54. {
  55. //usethismethodonios6
  56. [windowsetRootViewController:viewController];
  57. }
  58. [windowmakeKeyAndVisible];
  59. [[UIApplicationsharedApplication]setStatusBarHidden:YES];
  60. cocos2d::CCApplication::sharedApplication()->run();
  61. returnYES;
  62. }
  63. -(void)applicationWillResignActive:(UIApplication*)application{
  64. /*
  65. Sentwhentheapplicationisabouttomovefromactivetoinactivestate.Thiscanoccurforcertaintypesoftemporaryinterruptions(suchasanincomingphonecallorSMSmessage)orwhentheuserquitstheapplicationanditbeginsthetransitiontothebackgroundstate.
  66. UsethismethodtopauSEOngoingtasks,disabletimers,andthrottledownOpenGLESframerates.Gamesshouldusethismethodtopausethegame.
  67. */
  68. cocos2d::CCDirector::sharedDirector()->pause();
  69. }
  70. -(void)applicationDidBecomeActive:(UIApplication*)application{
  71. /*
  72. Restartanytasksthatwerepaused(ornotyetstarted)whiletheapplicationwasinactive.IftheapplicationwasprevIoUslyinthebackground,optionallyrefreshtheuserinterface.
  73. */
  74. cocos2d::CCDirector::sharedDirector()->resume();
  75. }
  76. -(void)applicationDidEnterBackground:(UIApplication*)application{
  77. /*
  78. Usethismethodtoreleasesharedresources,saveuserdata,invalidatetimers,andstoreenoughapplicationstateinformationtorestoreyourapplicationtoitscurrentstateincaseitisterminatedlater.
  79. Ifyourapplicationsupportsbackgroundexecution,calledinsteadofapplicationWillTerminate:whentheuserquits.
  80. */
  81. cocos2d::CCApplication::sharedApplication()->applicationDidEnterBackground();
  82. }
  83. -(void)applicationWillEnterForeground:(UIApplication*)application{
  84. /*
  85. Calledaspartoftransitionfromthebackgroundtotheinactivestate:hereyoucanundomanyofthechangesmadeonenteringthebackground.
  86. */
  87. cocos2d::CCApplication::sharedApplication()->applicationWillEnterForeground();
  88. }
  89. -(void)applicationWillTerminate:(UIApplication*)application{
  90. /*
  91. Calledwhentheapplicationisabouttoterminate.
  92. SeealsoapplicationDidEnterBackground:.
  93. */
  94. }
  95. #pragmamark-
  96. #pragmamarkMemorymanagement
  97. -(void)applicationDidReceiveMemoryWarning:(UIApplication*)application{
  98. /*
  99. Freeupasmuchmemoryaspossiblebypurgingcacheddataobjectsthatcanberecreated(orreloadedfromdisk)later.
  100. */
  101. cocos2d::CCDirector::sharedDirector()->purgeCachedData();
  102. }
  103. -(void)dealloc{
  104. [superdealloc];
  105. }
  106. //*******************************************shareSDK*******************************************//
  107. -(BOOL)application:(UIApplication*)applicationhandleOpenURL:(NSURL*)url
  108. {
  109. return[ShareSDKhandleOpenURL:urlsourceApplication:nilannotation:nilwxDelegate:self];
  110. }
  111. -(BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplicationannotation:(id)annotation
  112. {
  113. return[ShareSDKhandleOpenURL:urlsourceApplication:sourceApplicationannotation:annotationwxDelegate:self];
  114. }
  115. //*********************************************************************************************//
  116. @end

8.在HelloWorldScene.cpp中调用测试,代码如下:

  1. <spanstyle="color:rgb(62,67,73);">#include"HelloWorldScene.h"
  2. #include"SimpleAudioEngine.h"
  3. //*******************************************shareSDK*******************************************//
  4. #include"C2DXShareSDK.h"
  5. usingnamespacecn::sharesdk;
  6. //*********************************************************************************************//
  7. usingnamespacecocos2d;
  8. usingnamespaceCocosDenshion;
  9. CCScene*HelloWorld::scene()
  10. {
  11. CCScene*scene=CCScene::create();
  12. HelloWorld*layer=HelloWorld::create();
  13. scene->addChild(layer);
  14. returnscene;
  15. }
  16. boolHelloWorld::init()
  17. {
  18. if(!CCLayer::init())
  19. {
  20. returnfalse;
  21. }
  22. CCSizesize=CCDirector::sharedDirector()->getWinSize();
  23. CCMenuItemLabel*shareMenuItem=CCMenuItemLabel::create(CCLabelTTF::create("分享社交平台","Arial",60),this,menu_selector(HelloWorld::shareMenuItemClick));
  24. shareMenuItem->setPosition(ccp(size.width/2,size.height/2));
  25. CCMenu*shareMenu=CCMenu::create(shareMenuItem,NULL);
  26. shareMenu->setPosition(CCPointZero);
  27. this->addChild(shareMenu);
  28. returntrue;
  29. }
  30. //*******************************************shareSDK*******************************************//
  31. voidshareResultHandler(C2DXResponseStatestate,C2DXPlatTypeplatType,CCDictionary*shareInfo,CCDictionary*error)
  32. {
  33. switch(state){
  34. caseC2DXResponseStateCancel:
  35. CCLog("取消");
  36. break;
  37. caseC2DXResponseStateSuccess:
  38. CCLog("分享成功");
  39. break;
  40. caseC2DXResponseStateFail:
  41. CCLog("分享失败");
  42. break;
  43. default:
  44. break;
  45. }
  46. }
  47. voidHelloWorld::shareMenuItemClick(CCObject*pSender)
  48. {
  49. //构造分享内容结构对于新浪微博,腾讯微博而言是把content内容分享了上去,对于微信而言是分享了一个url链接
  50. CCDictionary*content=CCDictionary::create();
  51. content->setObject(CCString::create("ShareSDK-中国最大的App内分享服务提供商"),"title");
  52. content->setObject(CCString::create("ShareSDK是一种社会化分享组件,为iOS、Android、WP8的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。http://sharesdk.cn"),"content");
  53. content->setObject(CCString::create("http://sharesdk.cn"),"url");
  54. content->setObject(CCString::create("http://img0.bdstatic.com/img/image/shouye/systsy-11927417755.jpg"),"image");
  55. content->setObject(CCString::createWithFormat("%d",C2DXContentTypeNews),"type");
  56. C2DXShareSDK::showShareMenu(NULL,content,CCPointMake(100,100),C2DXMenuArrowDirectionLeft,shareResultHandler);
  57. }
  58. //***********************************************************************************************//</span><spanstyle="color:#ff0000;">
  59. </span>

补充

上面代码分享图片是来自网络的图片,可是如果我们要使用项目中本地的图片呢?一句代码搞定!Icon.png在项目Resources目录下,代码如下:

  1. stringimagePath=CCFileUtils::sharedFileUtils()->fullPathForFilename("Icon.png");
  2. content->setObject(CCString::create(imagePath.c_str()),"image");

9.删除不需要的平台库文件,从项目中彻底删除。库文件ShareSDK 下的ConnectionExtend 目录下:

删除文件目录:


删除文件目录:


10.用真机进行测试,结果成功!






到此IOS端结束。


Android端:

1.首先把ShareSDK For COCOS2D-X -> proj.android ->assetsShareSDK.xml拷贝到iOS项目Resources资源目录下,然后把ios项目编译到android,不会的同学请移步到:http://www.jb51.cc/article/p-unwlqvwn-nk.html

ShareSDK.xml里面配置的信息是应用到各个分享平台的注册信息,此文件作用于Android平台。

编译好的Android目录结构:


用Eclipse打开proj.android项目。如图:

此时项目不能正常运行起来,因为用到的一些库还没有导入,继续下面操作。

2. 把ShareSDK For COCOS2D-X ->proj.android ->libs目录下你所需要的架包复制到你的项目里。

因为我们只实现 新浪微博 腾讯微博 微信朋友圈 三个平台的分享动能,所以我们要复制这三个平台的jar包到相应目录下。此外还需要libPluginProtocol.jar mframework.jar ShareSDK-Core-2.3.8.jar 这三个jar包。如图:


3. 把ShareSDK For COCOS2D-X-> proj.android ->res->drawable-xhdpi下的资源复制到你项目的drawable-xhdpi下。

4.ShareSDK For COCOS2D-X->proj.android->res->values目录下的oks_string.xml、ssdk_string.xml复制到你的项目里的values目录下。如图:


5.ShareSDK For COCOS2D-X -> proj.android里的AndroidManifest.xml里的<activity android:name="cn.sharesdk.framework.ShareSDKUIShell" />的属性和<user-permission>都复制到你的项目里的AndroidManifes.xml里,如果需要集成微信分享还需要设置微信的回调activity。

AndroidManifest.xml代码如下:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="org.cocos2dx.sharesdk"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <!--shareSDK-->
  7. <uses-permissionandroid:name="android.permission.GET_TASKS"/>
  8. <uses-permissionandroid:name="android.permission.INTERNET"/>
  9. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
  10. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  11. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>
  12. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  13. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
  14. <uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/>
  15. <uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>
  16. <supports-screens
  17. android:largeScreens="true"
  18. android:smallScreens="true"
  19. android:anyDensity="true"
  20. android:resizeable="true"
  21. android:normalScreens="true"/>
  22. <!---->
  23. <uses-sdkandroid:minSdkVersion="8"/>
  24. <uses-featureandroid:glEsVersion="0x00020000"/>
  25. <applicationandroid:label="@string/app_name"
  26. android:icon="@drawable/icon">
  27. <activityandroid:name=".ShareSDK"
  28. android:label="@string/app_name"
  29. android:screenOrientation="landscape"
  30. android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
  31. android:configChanges="orientation">
  32. <intent-filter>
  33. <actionandroid:name="android.intent.action.MAIN"/>
  34. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  35. </intent-filter>
  36. </activity>
  37. <!--shareSDK-->
  38. <activity
  39. android:name="cn.sharesdk.framework.ShareSDKUIShell"
  40. android:configChanges="keyboardHidden|orientation|screenSize"
  41. android:theme="@android:style/Theme.Translucent.NoTitleBar"
  42. android:windowSoftInputMode="stateHidden|adjustResize">
  43. </activity>
  44. <activity
  45. android:name=".wxapi.WXEntryActivity"
  46. android:theme="@android:style/Theme.Translucent.NoTitleBar"
  47. android:configChanges="keyboardHidden|orientation|screenSize"
  48. android:exported="true"
  49. android:screenOrientation="portrait"/>
  50. <!---->
  51. </application>
  52. <supports-screensandroid:largeScreens="true"
  53. android:smallScreens="true"
  54. android:anyDensity="true"
  55. android:normalScreens="true"/>
  56. </manifest>

6.把ShareSDK For COCOS2D-X -> proj.android -> src下的整个文件cn拷贝到你项目下的src下,其中删除hellocpp文件夹。如图:



@H_228_3403@

7.把ShareSDK For COCOS2D-X -> proj.android -> src -> cn -> sharesdk -> hellocpp 下的wxapi文件夹拷贝到你项目proj.android -> src -> org -> cocos2dx -> sharesdk 下。如图:


8.在主activity里的onCreate方法添加ShareSDKUtils.prepare()方法

  1. packageorg.cocos2dx.sharesdk;
  2. importorg.cocos2dx.lib.Cocos2dxActivity;
  3. importcn.sharesdk.ShareSDKUtils;
  4. importandroid.os.Bundle;
  5. publicclassShareSDKextendsCocos2dxActivity{
  6. protectedvoidonCreate(BundlesavedInstanceState){
  7. super.onCreate(savedInstanceState);
  8. ShareSDKUtils.prepare();
  9. }
  10. static{
  11. System.loadLibrary("game");
  12. }
  13. }

9.修改项目assets下的ShareSDK.xml文件。只注册我们所需要的平台信息。

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <DevInfor>
  3. <!--
  4. 说明:
  5. 1、表格中的第一项
  6. <ShareSDK
  7. AppKey="api20"/>
  8. 是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey
  9. 2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:
  10. <SinaWeibo
  11. Id="1"
  12. SortId="1"
  13. AppKey="568898243"
  14. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
  15. RedirectUrl="http://www.sharesdk.cn"
  16. Enable="true"/>
  17. 其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大
  18. 越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息
  19. Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
  20. Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包
  21. 已经添加到应用中,平台实例依然不可获取
  22. 各个平台注册应用信息的地址如下:
  23. 新浪微博http://open.weibo.com
  24. 腾讯微博http://dev.t.qq.com
  25. QQ空间http://connect.qq.com/intro/login/
  26. 微信好友http://open.weixin.qq.com
  27. Facebookhttps://developers.facebook.com
  28. Twitterhttps://dev.twitter.com
  29. 人人网http://dev.renren.com
  30. 开心网http://open.kaixin001.com
  31. 搜狐微博http://open.t.sohu.com
  32. 网易微博http://open.t.163.com
  33. 豆瓣http://developers.douban.com
  34. 有道云笔记http://note.youdao.com/open/developguide.html#app
  35. 印象笔记https://dev.evernote.com/
  36. Linkedinhttps://www.linkedin.com/secure/developer?newapp=
  37. FourSquarehttps://developer.foursquare.com/
  38. 搜狐随身看https://open.sohu.com/
  39. Flickrhttp://www.flickr.com/services/
  40. Pinteresthttp://developers.pinterest.com/
  41. Tumblrhttp://www.tumblr.com/developers
  42. DropBoxhttps://www.dropBox.com/developers
  43. Instagramhttp://instagram.com/developer#
  44. VKontaktehttp://vk.com/dev
  45. -->
  46. <ShareSDK
  47. AppKey="200fe4a3ccb0"/><!--修改成你在sharesdk后台注册的应用的appkey"-->
  48. <!--ShareByAppClient标识是否使用微博客户端分享,默认是false-->
  49. <SinaWeibo
  50. Id="1"
  51. SortId="1"
  52. AppKey="568898243"
  53. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
  54. RedirectUrl="http://www.sharesdk.cn"
  55. ShareByAppClient="true"
  56. Enable="true"/>
  57. <TencentWeibo
  58. Id="2"
  59. SortId="2"
  60. AppKey="801307650"
  61. AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
  62. RedirectUri="http://www.sharesdk.cn"
  63. ShareByAppClient="true"
  64. Enable="true"/>
  65. <!--
  66. Wechat微信和WechatMoments微信朋友圈的appid是一样的;
  67. 注意:开发者不能用我们这两个平台的appid,否则分享不了
  68. 微信测试的时候,微信测试需要先签名打包出apk,
  69. sample测试微信,要先签名打包,keystore在sample项目中,密码123456
  70. BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
  71. 审核的应用也可以执行分享,但是仅限于分享文字图片,不能分享其他类型,
  72. 默认值为false。此外,微信收藏不支持此字段。
  73. -->
  74. <WechatMoments
  75. Id="5"
  76. SortId="5"
  77. AppId="wx51d9341a618ffc7c"
  78. BypassApproval="true"
  79. ShareByAppClient="true"
  80. Enable="true"/>
  81. </DevInfor>


10.用真机进行测试,结果成功!



备注一:微信、易信的注册和签名

对于微信和易信两个客户端(共五个平台)却还不行。因为这两个客户端的开放平台要求android第三方开发者需要提供自己项目的包名和签名,否则其客户端将拒绝第三方应用的分享操作。

apk签名请参考:http://wiki.sharesdk.cn/Android_快速集成指南

补充1:

QQ好友分享报错:尚未配置QQ好友分享URL Scheme:QQ05FB8B52,无法进行分享

这是因为在info.plist文件中配置有问题。

解决添加一项用于QQ客户端回调的URL Scheme,其格式为:"QQ” AppId16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52注意:转换后的字母要大写)

如图:

猜你在找的Cocos2d-x相关文章