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文件夹。如图:



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注意:转换后的字母要大写)

如图:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


    本文实践自 RayWenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@163.com微信公众号:HopToad 欢迎转载,转载标注出处:http://blog.csdn.netotbaron/article/details/424343991.  软件准备 下载地址:http://cn.cocos2d-x.org/download 2.  简介2.1         引用C
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从Cocos2D-x官网上下载,进入网页http://www.cocos2d-x.org/download,点击Cocos2d-x以下的Download  v3.0,保存到自定义的文件夹2:从python官网上下载。进入网页https://www.python.org/downloads/,我当前下载的是3.4.0(当前最新
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发引擎,易学易用,支持多种智能移动平台。官网地址:http://cocos2d-x.org/当前版本:2.0    有很多的学习资料,在这里我只做为自己的笔记记录下来,错误之处还请指出。在VisualStudio2008平台的编译:1.下载当前稳
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《最强大脑》娱乐节目。将2048改造成一款挑战玩家对数字记忆的小游戏。邮箱:appdevzw@163.com微信公众号:HopToadAPK下载地址:http://download.csdn.net/detailotbaron/8446223源码下载地址:http://download.csdn.net/
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试以QtCreatorIDE来进行CMake构建。Cocos2d-x3.X地址:https://github.com/cocos2d/cocos2d-x1.打开QtCreator,菜单栏→"打开文件或项目...",打开cocos2d-x目录下的CMakeLists.txt文件;2.弹出CMake向导,如下图所示:设置
 下载地址:链接:https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ提取码:p1pb下载完成后,解压进入build目录使用vs2013打开工程设置平台工具集,打开设置界面设置: 点击开始编译等待编译结束编译成功在build文件下会出现一个新文件夹Debug.win32,里面就是编译
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net前言上次用象棋演示了cocos2dx的基本用法,但是对cocos2dx并没有作深入的讨论,这次以超级马里奥的源代码为线索,我们一起来学习超级马里奥的实
1. 圆形音量button事实上作者的本意应该是叫做“电位计button”。可是我觉得它和我们的圆形音量button非常像,所以就这么叫它吧~先看效果:好了,不多解释,本篇到此为止。(旁白: 噗。就这样结束了?)啊才怪~我们来看看代码:[cpp] viewplaincopyprint?CCContro
原文链接:http://www.cnblogs.com/physwf/archive/2013/04/26/3043912.html为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。在上一节中我们建
2019独角兽企业重金招聘Python工程师标准>>>cocos2d2.0之后加入了一种九宫格的实现,主要作用是用来拉伸图片,这样的好处在于保留图片四个角不变形的同时,对图片中间部分进行拉伸,来满足一些控件的自适应(PS: 比如包括按钮,对话框,最直观的形象就是ios里的短信气泡了),这就要求图
原文链接:http://www.cnblogs.com/linji/p/3599478.html1.环境和工具准备Win7VS2010/2012,至于2008v2版本之后似乎就不支持了。 2.安装pythonv.2.0版本之前是用vs模板创建工程的,到vs2.2之后就改用python创建了。到python官网下载版本2.7.5的,然后
环境:ubuntu14.04adt-bundle-linux-x86_64android-ndk-r9d-linux-x86_64cocos2d-x-3.0正式版apache-ant1.9.3python2.7(ubuntu自带)加入环境变量exportANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdkexportPATH=${PATH}:/$ANDROID_SDK_ROOTools/export
1开发背景游戏程序设计涉及了学科中的各个方面,鉴于目的在于学习与进步,本游戏《FlappyBird》采用了两个不同的开发方式来开发本款游戏,一类直接采用win32底层API来实现,另一类采用当前火热的cocos2d-x游戏引擎来开发本游戏。2需求分析2.1数据分析本项目要开发的是一款游
原文链接:http://www.cnblogs.com/linji/p/3599912.html//纯色色块控件(锚点默认左下角)CCLayerColor*ccc=CCLayerColor::create(ccc4(255,0,0,128),200,100);//渐变色块控件CCLayerGradient*ccc=CCLayerGradient::create(ccc4(255,0,0,
原文链接:http://www.cnblogs.com/linji/p/3599488.html//载入一张图片CCSprite*leftDoor=CCSprite::create("loading/door.png");leftDoor->setAnchorPoint(ccp(1,0.5));//设置锚点为右边中心点leftDoor->setPosition(ccp(240,160));/
为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院关老师的Cocos2d-x课程之一可以送智捷课堂编写图书一本(专题可以送3本)。一、Cocos2d-x课程列表:1、Cocos2d-x入门与提高视频教程__Part22、Cocos2d-x数据持久化与网络通信__Part33、Cocos2d-x架构设计与性能优化内存优
Spawn让多个action同时执行。Spawn有多种不同的create方法,最终都调用了createWithTwoActions(FiniteTimeAction*action1,FiniteTimeAction*action2)方法。createWithTwoActions调用initWithTwoActions方法:对两个action变量初始化:_one=action1;_two=action2;如果两个a
需要环境:php,luajit.昨天在cygwin上安装php和luajit环境,这真特么是一个坑。建议不要用虚拟环境安装打包环境,否则可能会出现各种莫名问题。折腾了一下午,最终将环境转向linux。其中,luajit的安装脚本已经在quick-cocos2d-x-develop/bin/中,直接luajit_install.sh即可。我的lin
v3.0相对v2.2来说,最引人注意的。应该是对触摸层级的优化。和lambda回调函数的引入(嗯嗯,不枉我改了那么多类名。话说,每次cocos2dx大更新。总要改掉一堆类名函数名)。这些特性应该有不少人研究了,所以今天说点跟图片有关的东西。v3.0在载入图片方面也有了非常大改变,仅仅只是