主要目的是备忘,如果有幸能帮上其他朋友,那最好了
我的游戏使用的是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)
原文:http://www.cnblogs.com/geniusalex/p/4021359.html