Awesome
linc_chartboost
Haxe/hxcpp @:native bindings for Chartboost
Prepare
Android
Include chartboost_delegate.jar
Make sure you are using Java 1.7. (you can use the command javac -version
to check the version and use jenv
to handle multiple Java versions on your machine if needed). Build lib/java/build.hxml
then drag the output chartboost_delegate.jar
into your Android Studio project and add it as library. This little jar redirects all the chartboost delegate calls to Haxe through JNI.
Follow the SDK doc
Set up your android project following the SDK doc.
Also, set the chartboost delegate right after Chartboost.onCreate(this);
.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Chartboost.startWithAppId(this, "your-app-id", "your-app-signature");
Chartboost.onCreate(this);
// chartboost.ChartboostDelegate is from chartboost_delegate.jar
Chartboost.setDelegate(new chartboost.ChartboostDelegate());
}
/* ... other overrides */
iOS
Follow the SDK doc
Set up your XCode project following the SDK doc.
Prepare a copy of Chartboost.framework
In order to help hxcpp compile, put a copy of Chartboost.framework under linc_chartboost/lib
Haxe
// note that on android, the appId and appSignature here is not used
// because they are initialized in Java (See prepare section).
// But the parameters are kept here just for cross-platform consistency
Chartboost.startWithAppId("your-app-id", "your-app-signature", {
didCacheRewardedVideo: function(location:String) trace("didCacheRewardedVideo", location),
didCompleteRewardedVideo: function(location:String, reward:Int) trace("didCompleteRewardedVideo", location, reward),
});
Chartboost.cacheRewardedVideo('Default');
trace(Chartboost.hasRewardedVideo('Default'));
Chartboost.showRewardedVideo('Default');
Note
On android it requires SDL because it uses SDL_AndroidGetJNIEnv()
to fetch
the Java VM environment for all the JNI stuffs. However, I believe it can be
easily replaced by other equivalent functions if you don't use SDL.