Cocos2d-x做爲一款優秀的跨平臺遊戲引擎,已經被愈來愈多的開發者使用,而在遊戲中使用分享組件可以有效的提供用戶粘性,經過分享迴流來提升APP安裝量,可是目前市面上可以在Cocos2d-x環境下使用的分享插件並很少,開發者們只能本身對原生分享SDK進行封裝來實現,前一段時間友盟推出Cocos2d-x分享組件,我測試了一下,感受仍是比較方便的。ios
集成準備:c++
首先我簡單介紹一下組件壓縮包的組成git
Cocos2dx
實現Cocos2d-x中跨平臺分享功能,需拷貝到您項目的Classes文件夾中;
Platforms
原生的Android和iOS社會化組件SDK,須要您將庫和資源拷貝到對應平臺的項目中;
doc
組件的集成文檔;
Umeng_Cocos2dx_Demo_V1.0
Android部分的demo文件,能夠安裝在手機上看一下簡單的分享效果和樣式github
Cocos2d-x雖然是一個跨平臺的引擎,可是對於Android和IOS平臺來講,具體的集成方式仍是有必定的區別,這裏分別介紹Android和IOS平臺集成中不一樣的地方,而後再集中介紹跨平臺通用的部分。sql
Android平臺集成步驟:segmentfault
步驟一:微信
下載Cocos2d-x組件(下載地址) 而且將jar包添加到build path 路徑下,將res資源文件夾加入到你工程對應資源文件下。將Platforms/Android/controller目錄下的com文件夾拷貝到您的Cocos2d-x項目Android平臺的src目錄下,而且在jni/Android.mk中的LOCAL_SRC_FILES下添加以下配置 (注意格式,不然會編譯出錯) :app
../../Classes/Cocos2dx/Android/CCUMSocialController.cpp \ ../../Classes/Cocos2dx/ShareButton/UMShareButton.cpp \ ../../Classes/Cocos2dx/Common/CCUMSocialSDK.cpp
步驟二:測試
在Cocos2dxActivity子類的onCreate方法下添加以下代碼,用來完成初始化步驟ui
// this爲Cocos2dxActivity類型, 參數2爲描述符,可隨意修改. CCUMSocialController.initSocialSDK(this, "com.umeng.social.share");
步驟三:
在代碼中覆寫Cocos2dxActivity子類的onActivityResult方法,用來實現回調方法。在onActivityResult添加以下代碼 :
// 受權回調 CCUMSocialController.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
iOS平臺集成步驟:
步驟一:
解壓SDK壓縮包,將Platforms/iOS文件夾和Cocos2dx文件夾拖入工程目錄,並刪除Cocos2dx/Android文件夾,添加後應該是這個效果:
步驟二:
添加系統須要的framework
Security.framework //用於系統加密處理 libiconv.dylib //QQ互聯的庫文件 SystemConfiguration.framework //QQ互聯須要的framework CoreGraphics.framework //QQ互聯須要的framework Social.framework //分享組件須要的framework,若是不使用twitter則不須要 libsqlite3.dylib //QQ互聯須要的framework libstdc++.dylib //C++的庫文件 CoreTelephony.framework //QQ互聯須要的framework libz.dylib //QQ互聯須要的framework Accounts.framework //系統須要的framework,若是不使用twitter則不須要
步驟三:
實現系統的回調方法,在Xcode工程中的ios文件夾下的AppController.mm文件中加入下面的代碼:
#import "UMSocial.h" - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [UMSocialSnsService handleOpenURL:url]; }
完成了上述準備工做以後,就能夠開始正式的分享步驟了,友盟提供了多種分享樣式,有精力的開發者可使用底層接口,能夠徹底自由定製分享界面和樣式,不過相信大部分開發者們使用第三方插件的初衷都是爲了節省精力,因此這裏就只介紹使用默認分享界面的方法,有更多需求的開發者們能夠本身探索自定義界面接口部分。
步驟一:加入系統須要的頭文件
// 受權回調 #include "Cocos2dx/Common/CCUMSocialSDK.h" #include "Cocos2dx/ShareButton/UMShareButton.h" // 使用友盟命令空間 USING_NS_UM_SOCIAL; // ...... 代碼省略 // HelloWorld爲cocos2d::CCLayer的子類 bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } }
步驟二:分享按鈕的建立
// 建立分享按鈕, 參數1爲按鈕正常狀況下的圖片, 參數2爲按鈕選中時的圖片,參數3爲友盟appkey, 參數4爲分享回調 UMShareButton *shareButton = UMShareButton::create("shareNormal.png","shareSelected.png", "你的友盟appkey", share_selector(shareCallback)) ;
步驟三:設置分享平臺及內容
// 顯示在友盟分享面板上的平臺 vector* platforms = new vector(); platforms->push_back(SINA); platforms->push_back(RENREN) ; platforms->push_back(DOUBAN) ; platforms->push_back(QZONE) ; platforms->push_back(QQ) ; // 設置友盟分享面板上顯示的平臺 shareButton->setPlatforms(platforms); // 設置文本分享內容 shareButton->setShareContent("umeng social Cocos2d-x sdk.") ; // 設置要分享的圖片, 圖片支持本地圖片和url圖片, 可是url圖片必須以http://或者https://開頭 shareButton->setShareImage("/sdcard/header.jpeg") ; // 設置按鈕的位置 shareButton->setPosition(ccp(150, 180)); // 而後開發者須要將該按鈕添加到遊戲場景中 CCMenu* pMenu = CCMenu::create(shareButton, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); // ********************** 設置平臺信息 *************************** // CCUMSocialSDK *sdk = shareButton->getSocialSDK(); // sdk->setQQAppIdAndAppKey("設置QQ的app id", "appkey"); // sdk->setWeiXinAppId("設置微信和朋友圈的app id"); // sdk->setYiXinAppKey("設置易信和易信朋友圈的app id"); // sdk->setLaiwangAppInfo("設置來往和來往動態的app id", // "設置來往和來往動態的app key", "個人應用名"); // sdk->setFacebookAppId("你的facebook appid"); // 設置用戶點擊一條圖文分享時用戶跳轉到的目標頁面, 通常爲app主頁或者下載頁面 // sdk->setTargetUrl("http://www.umeng.com/social"); // 打開或者關閉log // sdk->setLogEnable(true) ; // ********************** END ***************************
集成到這一步就完成了,若是沒有異常,應該會出現下面的界面,這說明你已經成功實現了集成工做。
組件下載傳送門:http://dev.umeng.com/social/cocos2d-x/sdk-download
GitHub傳送門:http://github.com/umeng/umeng-social-for-cocos2d-x