添加 SDK
小程序小游戏支持自定义基线 cp_change_56100909.6。
安装组件和依赖
在 podfile 中新增以下组件。
mPaaS_pod "mPaaS_Game"
mPaaS_pod "mPaaS_Canvas"初始化 mPaaS
参考 mPaaS 接入文档接入方式介绍 实现初始化操作。
启动游戏
启动参数:xriver
[MPNebulaAdapterInterface startTinyAppWithId:@"appId" params:@{@"xriver":@(YES)}];账号授权
客户端注入 my.getAuthCode() 能力
参考 自定义 JSAPI 文档注册自定义 JSAPI。
客户端注入 my.getAuthCode() 能力,直接返回 openId。
#import <AriverNebulaPoseidon/NebulaPoseidon.h>
@interface MPJsApiHandler4GetAuthCode : PSDJsApiHandler
@end
@implementation MPJsApiHandler4GetAuthCode
- (void)handler:(NSDictionary *)data context:(PSDContext *)context callback:(PSDJsApiResponseCallbackBlock)callback
{
// 从App服务端获取authCode/openId
NSString *authCode = @"";
NSString *openId = @"";
NSMutableDictionary *params = NSMutableDictionary.dictionary;
params[@"authCode"] = authCode;
params[@"openId"] = openId;
//回调参数给小程序层
if (callback) {
callback(params);
}
}
广告
初始化时注入广告的小程序 API。
注册 onResize、createBannerAd、createInterstitialAd、createRewardedAd、loadAd、hideAd、destroyAd JSAPI,实现以上 API 时只需要按照以下方式注册后直接回调成功即可。小游戏 cp 按照支付宝规范调用了以上 API,兼容即可。
具体实现如下:
@interface MPJsApiHandler4AdHandler : PSDJsApiHandler
@end
@implementation MPJsApiHandler4AdHandler
- (void)handler:(NSDictionary *)data context:(PSDContext *)context callback:(PSDJsApiResponseCallbackBlock)callback
{
if (callback) {
// 回调成功
callback(@{@"success":@true});
}
}注册 showAd,该 JSAPI 为真正展示广告的 API,这里实现显示广告即可。
重要
广告奖励下发时参考代码主动通知小游戏。
入参:adUnitId, 获取到值后通知奖励下发时需要使用。
@interface MPJsApiHandler4ShowAd : PSDJsApiHandler
@end
@implementation MPJsApiHandler4ShowAd
- (void)handler:(NSDictionary *)data context:(PSDContext *)context callback:(PSDJsApiResponseCallbackBlock)callback
{
if (callback) {
// showAd success
callback(@{@"success":@true});
// showAd 失败
callback(@{@"error":61201,@"errorMessage":@"xxx"});
}
// 广告奖励成功下发后主动通知:
H5WebViewController *vc = context.currentViewController;
// adUnitId从data中读,key:adUnitId
[vc callHandler:@"ON_AD_VIEW_CLOSE" data:@{@"adUnitId":adUnitId ? :@"",@"closeEventId":@"",@"isEnded":@YES} responseCallback:^(id responseData) {
}];
}该文章对您有帮助吗?