Game Analytics Cocos2dx
平台 SDK 由封装层
和 Native SDK
两部分构成,目前GitHub
上提供了封装层代码,需要从 TalkingData官网 官网 下载最新版的 Android
和 iOS
平台 Native SDK
,组合使用。
-
下载本项目(封装层)到本地;
-
访问 TalkingData官网 下载最新版的 Android 和 iOS 平台 Game Analytics SDK( Native SDK)
- 方法1:选择 Cocos2d 平台进行功能定制;
- 方法2:分别选择 Android 和 iOS 平台进行功能定制,请确保两个平台功能项一致;
-
将下载的最新版
Native SDK
引入到您的工程中。- Android 平台
将最新的
.jar
文件复制到/libs
目录下 - iOS
将最新的
.a
文件复制到xcode
项目的iOS
目录下
- Android 平台
将最新的
-
按
Native SDK
功能选项对封装层代码进行必要的删减,详见“注意事项”第2条; -
将
Cococs SDK
集成您需要统计的工程中,并按 集成文档 进行必要配置和功能调用。
- 分别选择 Android 和 iOS 平台进行功能定制时,请确保两个平台功能项一致。
- 如果申请 Native SDK 时只选择了部分功能,则需要在本项目中删除未选择功能对应的封装层代码。
a) 未选择自定义事件
功能则删除以下3部分
删除 `TalkingDataGameAnalytics/android/TDCCTalkingDataGA.cpp` 文件中如下代码:
void TDCCTalkingDataGA::onEvent(const char* eventId, EventParamMap* map) {
if (NULL == eventId || strlen(eventId) == 0) {
return;
}
TDGAJniMethodInfo t;
if (TDGAJniHelper::getStaticMethodInfo(t
, gClass_TalkingDtatGA
, "onEvent"
, "(Ljava/lang/String;Ljava/util/Map;)V")) {
jobject jparamMap = createJavaMapObject(t.env, map);
jstring jeventId = t.env->NewStringUTF(eventId);
t.env->CallStaticVoidMethod(gClass_TalkingDtatGA, t.methodID, jeventId, jparamMap);
t.env->DeleteLocalRef(jeventId);
t.env->DeleteLocalRef(jparamMap);
}
}
删除 `TalkingDataGameAnalytics/ios/TDCCTalkingDataGA.mm` 文件中如下代码:
void TDCCTalkingDataGA::onEvent(const char* eventId, EventParamMap* map) {
if (NULL == eventId || strlen(eventId) == 0) {
return;
}
NSString* pId = [NSString stringWithUTF8String:eventId];
if (NULL == map) {
[TalkingDataGA onEvent:pId eventData:NULL];
} else {
NSMutableDictionary* dict = [NSMutableDictionary dictionary];
EventParamMap::iterator it;
for (it = map->begin(); it != map->end(); it++) {
std::string key = it->first;
std::string value = it->second;
NSString* pKey = [NSString stringWithUTF8String:key.c_str()];
NSString* pValue = [NSString stringWithUTF8String:value.c_str()];
[dict setObject:pValue forKey:pKey];
}
[TalkingDataGA onEvent:pId eventData:dict];
}
}
+ (void)onEvent:(NSString *)eventId eventData:(NSDictionary *)eventData;
删除 `TalkingDataGameAnalytics/include/TDCCTalkingDataGA.h` 文件中如下代码:
static void onEvent(const char* eventId, EventParamMap* map = NULL);