首页 > 代码库 > cocos2dx平台对接(Amazon IAP,Chartboost,Email)

cocos2dx平台对接(Amazon IAP,Chartboost,Email)

主要目的是备忘,如果有幸能帮上其他朋友,那最好了

我的游戏使用的是cocos2dx 2.2.5,当然,使用2.1.x ~ 2.2.5版本都是可以的,没有什么变动。

一、Java调用C++

1、在JAVA项目中,声明一个带“native”的静态函数,比如 (假设包名是 com.ooxx.mygame

class MyActivity{

public static native int onIAPCallback(int select);

}

在JAVA项目中,你就当这个函数是一个普通的静态函数来调用就可以了。

2、打开jni下面的main.cpp,照着里面的那些函数的样子,写上

jint Java_com_ooxx_mygame_MyActivity_onIAPCallback(JNIEnv*  env, jobject thiz,jint select)

{

//调用你的C++代码

}

 

二、C++调用JAVA

1、在JAVA项目中,声明一个普通的静态函数,比如 (假设包名是 com.ooxx.mygame

class MyActivity{

public static void onBuySomething(int itemID){

//做你想做的事

}

}

 

2、在C++项目中,调用这个函数

//包含JniHelper.h

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#endif

//调用JAVA中的静态函数

#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, "com/ooxx/mygame/MyActivity", "onBuySomething", "(I)V"))
    {
        t.env->CallStaticVoidMethod(t.classID, t.methodID,itemID);
        t.env->DeleteLocalRef(t.classID);
    }
#endif //

 

这里附上AndroidJNI说明 请走这里  足以解答你的疑惑

 

三、点击某个按钮,打开玩家机器上的邮件,可以拿来做好友邀请,游戏反馈等

public static void sendEmail(String sendTo,String subject,String body){
    Intent email = new Intent(android.content.Intent.ACTION_SEND);
    email.setType("plain/text");
    String[] emailReciever = new String[]{sendTo};
    email.putExtra(android.content.Intent.EXTRA_EMAIL, emailReciever);
    email.putExtra(android.content.Intent.EXTRA_SUBJECT,subject);
    email.putExtra(android.content.Intent.EXTRA_TEXT, body);
    GameActivity.Self.startActivity(Intent.createChooser(email, "Choose Email Client"));
}

 

四、打开Amazon商店

public static void onOpenInMarketClient(String id){
    Intent intent = new Intent(Intent.ACTION_DEFAULT);
    Uri content_url = Uri.parse("amzn://apps/android?asin="+id);  
    intent.setData(content_url);
    GameActivity.Self.startActivity(intent);
}

注意:大部分ANDROID市场是使用 market://apps/android?id= 来做前缀。但Amazon很蛋疼。  上面的代码可以正确打开玩家手机上的Amazon商店

至于asin码如何而来,请走这里

 

五、Amazon IAP支付

直接下载Amazon IAP来改就可以了,不需要做太多工作

 

六、Chartboost

比Amazon还简单,下载SDK,有一个Sample,把代码弄进来,改改ID和函数调用就可以咯。

 

收工~~

cocos2dx平台对接(Amazon IAP,Chartboost,Email)