Android Cocos 2 d-xゲーム統合友盟社会化コンポーネント共有機能
5363 ワード
Cocos 2 d-xの概要
Cocos 2 d-xはマルチプラットフォームをサポートする2 Dオープンソースゲームエンジンで、C++を使用して開発され、OpenGL ESに基づいてWOPhone、iOS 4.1、Android 2.1およびそれ以上のバージョン、WindowsXP&Windows 7、Windows Phone 8をサポートしています.Cocos 2 d-Xの発展の重点は、Cocos 2 dのプラットフォーム間で使用されるAPIがCocos 2 d-iPhoneと完全に互換性があることです.公式住所:http://www.cocos2d-x.org/
本文
最近、開発者が友盟社会化コンポーネントSDKを統合するのを手伝う過程で、Cocos 2 d-xゲームが統合過程で調子が悪いことを発見し、Android Cocos 2 d-xゲーム統合友盟社会化共有コンポーネントに関する文章を整理し、本稿に従って統合した.簡単にゲームの中で微博(新浪微博、微信、QQ空間、人人網などのプラットフォームを含む)などの機能を共有することができます.本人のレベルが限られているため、他の開発者のより良い統合を助けるために、何か間違いがあったり、より良い方法があることを指摘してほしい.
友盟社会化コンポーネントはActivityに依存する必要があるため、Cocos 2 d-xゲームのActivity(Cocos 2 d Activityから統合)で呼び出す必要があります.手順は次のとおりです.
前提:友盟社会化コンポーネントAndroid SDKのjarファイル、resリソース、および対応するAndroidManifestを追加する.xml構成、友盟社会化コンポーネントSDKオンラインドキュメントを参照する.
ステップ1.ゲームActivityで静的メソッドを定義します.次の例を示します.
プロジェクトディレクトリは次のとおりです.
図1
ステップ2、jni層においてAndroid中のUmengGameActivityを呼び出すopenShareBoard方法を実現する.例えばここではopenUmengShareJniと名付けられ、ヘッダファイルは「yourjni.h」、実装ファイルはYourJni.cpp.
ステップ3.Cocos 2 d-xのUmengGameScene(CCLayerから派生するクラスで、あなたの対応するクラスに置き換える必要がある)にボタンを宣言し、このボタンをクリックすると、友盟の共有プラットフォーム選択パネルを開く.(ここではincludeステップ2でjniメソッドopenUmengShareJniのヘッダファイルを定義する必要があります)
前述の共有ボタンをクリックすると、図2に示すパネルが表示され、統合に成功しました.
図2
友盟社会化コンポーネントの概要
友盟社会化コンポーネントは国内初のモバイル応用にソーシャル機能と社会化統計分析を統合するツールである.応用に迅速に社会化の分かち合い、登録、評論、好きな機能を備えさせ、リアルタイムで全面的な社会化データ統計分析サービスを提供する.公式住所:http://www.umeng.com/component_social .
Cocos 2 d-xはマルチプラットフォームをサポートする2 Dオープンソースゲームエンジンで、C++を使用して開発され、OpenGL ESに基づいてWOPhone、iOS 4.1、Android 2.1およびそれ以上のバージョン、WindowsXP&Windows 7、Windows Phone 8をサポートしています.Cocos 2 d-Xの発展の重点は、Cocos 2 dのプラットフォーム間で使用されるAPIがCocos 2 d-iPhoneと完全に互換性があることです.公式住所:http://www.cocos2d-x.org/
本文
最近、開発者が友盟社会化コンポーネントSDKを統合するのを手伝う過程で、Cocos 2 d-xゲームが統合過程で調子が悪いことを発見し、Android Cocos 2 d-xゲーム統合友盟社会化共有コンポーネントに関する文章を整理し、本稿に従って統合した.簡単にゲームの中で微博(新浪微博、微信、QQ空間、人人網などのプラットフォームを含む)などの機能を共有することができます.本人のレベルが限られているため、他の開発者のより良い統合を助けるために、何か間違いがあったり、より良い方法があることを指摘してほしい.
友盟社会化コンポーネントはActivityに依存する必要があるため、Cocos 2 d-xゲームのActivity(Cocos 2 d Activityから統合)で呼び出す必要があります.手順は次のとおりです.
前提:友盟社会化コンポーネントAndroid SDKのjarファイル、resリソース、および対応するAndroidManifestを追加する.xml構成、友盟社会化コンポーネントSDKオンラインドキュメントを参照する.
ステップ1.ゲームActivityで静的メソッドを定義します.次の例を示します.
package com.umeng.game ;
......
public class UmengGameActivity extends Cocos2dxActivity {
/**
* Handler, openShare , openShare UI
*/
private static Handler mHandler = null;
/**
* Activity ,
*/
private static Activity mActivity = null;
/**
* Social SDK , SDK Controller
*/
private static UMSocialService mController = UMServiceFactory.getUMSocialService(
"com.umeng.cocos2dx", RequestType.SOCIAL);
/**
* onCreate
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = this;
}
/**
* cocos2d-x c++ , .so umenggame。 , .so
*/
static {
System.loadLibrary("umenggame");
}
/**
* @Title: openShareBoard
* @Description:
* openShare ,
* @throws
*/
public static void openShareBoard() {
mHandler = new Handler(Looper.getMainLooper());
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mActivity != null) {
/**
* 、QQ 、 Handler, SSO
*
* : SSO com.sina.sso src ,
* libs、res .
*/
mController.getConfig().setSsoHandler(new SinaSsoHandler());
mController.getConfig().setSsoHandler(new QZoneSsoHandler(mActivity));
mController.getConfig().setSsoHandler(new TencentWBSsoHandler());
//
mController.openShare(mActivity, false);
}
}
}, 100);
}
}
プロジェクトディレクトリは次のとおりです.
図1
ステップ2、jni層においてAndroid中のUmengGameActivityを呼び出すopenShareBoard方法を実現する.例えばここではopenUmengShareJniと名付けられ、ヘッダファイルは「yourjni.h」、実装ファイルはYourJni.cpp.
…...
//
void YourJni::openUmengShareJni()
{
JniMethodInfo methodInfo ;
// UmengGameActivity openShareBoard
bool isHave = JniHelper::getStaticMethodinfo( methodInfo,
“com/umeng/game/UmengGameActivity”, “openShareBoard”, “()V”) ;
if ( isHave )
{
// UmengGameActivity umeng
methodInfo.env->CallStaticVoidMethod( methodInfo .classID, methodInfo.methodID );
}
}
…...
ステップ3.Cocos 2 d-xのUmengGameScene(CCLayerから派生するクラスで、あなたの対応するクラスに置き換える必要がある)にボタンを宣言し、このボタンをクリックすると、友盟の共有プラットフォーム選択パネルを開く.(ここではincludeステップ2でjniメソッドopenUmengShareJniのヘッダファイルを定義する必要があります)
…...
include “yourjni.h”
…...
bool UmengGameScene::init()
{
…...
…...
/**
*
* 1 :
* 2 :
* 3 :
* 4 :
*/
CCMenuItemImage *umengShareBtn = CCMenuItemImage::create( "start_normal.png",
"start_pressed.png", this, menu_selector(AppDelegate::openUmengShare));
//
umengShareBtn->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));
//
CCMenu *menu = CCMenu::menuWithItems(umengShareBtn, NULL);
menu->setPosition(CCPointZero);
//
this->addChild(menu,1);
…...
…...
return true ;
}
//
void UmengGameScene::openUmengShare()
{
// jni
openUmengShareJni();
}
前述の共有ボタンをクリックすると、図2に示すパネルが表示され、統合に成功しました.
図2
友盟社会化コンポーネントの概要
友盟社会化コンポーネントは国内初のモバイル応用にソーシャル機能と社会化統計分析を統合するツールである.応用に迅速に社会化の分かち合い、登録、評論、好きな機能を備えさせ、リアルタイムで全面的な社会化データ統計分析サービスを提供する.公式住所:http://www.umeng.com/component_social .