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{ //... //other code //... public static native int onIAPCallback(int select); //... //other code //... }
在JAVA项目中,你就当这个函数是一个普通的静态函数来调用就可以了。
2、打开jni下面的main.cpp,照着里面的那些函数的样子,写上
jint Java_com_ooxx_mygame_MyActivity_onIAPCallback(JNIEnv* env, jobject thiz,jint select) { //call your cpp code }
C++调用JAVA
1、在JAVA项目中,声明一个普通的静态函数,比如 (假设包名是 com.ooxx.mygame)
class MyActivity{ //other code //... public static void onBuySomething(int itemID){ //do what you wanna } //other code //... }
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和函数调用就可以咯。
收工~~
作者:麒麟子
出处:http://www.cnblogs.com/qilinzi/
蛮牛专栏:麒麟子
简介:麒麟子,编程15年,科技创始人,技术作家。
09年进入游戏行业,16年创立成都幼麟科技有限公司。十年从业经验练就了游戏全栈技能,目前专注于手机游戏领域。
版权声明:本文版权归作者和博客园共有,欢迎转载。转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号