如何使用友盟 Cocos2d-x 分享組件實現 Android/iOS 分享功能

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

相關文章
相關標籤/搜索