C++ 库
参考 C++ 库指南将 Tapjoy 集成到 Cocos2d-x 或其他原生 C++ 游戏项目中。
阅读时间2 分钟最后更新于 4 个月前
Unity Offerwall 在使用 Android NDK 和 C++ 的开发环境(例如 Cocos2d-x)中提供了一个 C++ API。
Tapjoy Android SDK 提供的 C++ API 与 Tapjoy iOS SDK 的 C++ API 兼容。
NDK 模块
Offerwall SDK 中包含一个提供 C++ 头文件和库的 NDK 模块。请添加 Tapjoy NDK 模块的路径作为 NDK_MODULE_PATH。
ndk-build NDK_MODULE_PATH=../../TapjoySDK_Android/Library/modules
Cocos2dx
向 添加用冒号 (:) 分隔的 :
proj.android/build_native.shNDK_MODULE_PATH# proj.android/build_native.sh...if [[ "$buildexternalsfromsource" ]]; then echo "Building external dependencies from source" "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source:../../TapjoySDK_Android/Library/modules"else echo "Using prebuilt externals" "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt:../../TapjoySDK_Android/Library/modules"fi
使用以下模块之一:
静态库模块
将应用程序库链接到静态库模块。
添加 fiverocks_static 模块:
在应用项目中,将 tapjoy_static 模块添加到构建 Tapjoy API 集成源代码的 Android.mk 文件中。
make ... include $(CLEAR_VARS) ... LOCAL_STATIC_LIBRARIES := tapjoy_static ... include $(BUILD_SHARED_LIBRARY) ... $(call import-module,tapjoy) ...
提供 JavaVM:
tapjoy_staticJNI_OnLoadTapjoy::setJavaVM#include "TapjoyCpp.h" // Tapjoy C++ API ... jint JNI_OnLoad(JavaVM *vm, void *reserved) { ... JniHelper::setJavaVM(vm); tapjoy::Tapjoy::setJavaVM(vm); ... }
共享库模块
还可以使用共享库模块。此模块不需要 JavaVM。
添加 模块:
tapjoy_shared在应用项目中,将 模块添加到构建 Tapjoy API 集成源代码的 Android.mk 文件中。
tapjoy_sharedmake...include $(CLEAR_VARS)...LOCAL_SHARED_LIBRARIES := tapjoy_shared...include $(BUILD_SHARED_LIBRARY)...$(call import-module,tapjoy)...
解决共享库模块的依赖问题:
在加载使用 Tapjoy 库的应用程序库之前,调用 :
Tapjoy.loadSharedLibrary()import com.tapjoy.Tapjoy; static { Tapjoy.loadSharedLibrary(); System.loadLibrary("YourAppLibrary"); }
C++ API
使用 头文件:
TapjoyCpp.h#include "Tapjoy/TapjoyCpp.h" // Tapjoy C++ APIusing namespace tapjoy; Tapjoy::trackEvent("some event");
隐私
如需查看完整详细信息,请点击此处。
API
TJPrivacyPolicyHandle policyHandle;policyHandle = TJPrivacyPolicy::getPrivacyPolicy();TJPrivacyPolicy::subjectToGDPR(policyHandle,true);TJPrivacyPolicy::setUserConsent(policyHandle, "1″);TJPrivacyPolicy::setUSPrivacy(policyHandle, "1YNY");TJPrivacyPolicy::belowConsentAge(policyHandle, true);