****************本文是Lua编写的游戏接入多盟SDK*******************

<<<<应用中加入广告课按照帮助文档上一步一步来就行了>>>>


1.需要联网才可以看到测试接入广告效果(不知道为啥,反正没网看不到测试效果)
2.帮助文档上的-ObjC这个不要加了.直接跳过
3.导入多盟的SDK包,然后除了要加入多盟广告帮助文档PDF上一些库外,还要加入一些包,否则会有7个错误.
我是加了四个后7个错误就没了.如果加入四个还错,可粘贴错误信息到百度,一般都是少加了库.
炫耀加入的包为:MessageUI.framework 、CoreTelephony.framework、CoreLocation.framework、AdSupport.framework


4.在RootViewController中。因为Lua和OC的交互需要用Luaoc这个方法。所以,需要把RootViewController.cpp改成混编的.mm后缀,在.h中引入#import "DMAdView.h"
实现代理即可,但不要声明变量


5.在.mm文件里写一个静态的方法(Luaoc只调静态的方法)

.mm里添加Lua和OC交互的包

#include "CCLuaBridge.h"
#include "CCLuaEngine.h"


6.加入如下代码即可。其实都是帮助文档上的,直接复制粘贴

</pre><pre name="code" class="cpp"><pre name="code" class="objc">static int handlerID=0;

+(void)registerScriptHandler:(NSDictionary*)dic
{
    
//添加广告
    RootViewController* VC=(RootViewController*)[[UIApplication sharedApplication].keyWindow rootViewController];
    DMAdView *_dmAdView = [[DMAdView alloc]initWithPublisherId:@"56OJwm0ouN2p//GkKX" placementId:@"16TLudivApqE2NUv3r65ncws"];
    // 设置⼲⼴广告视图的位置 宽与⾼高设置为 0 即可 该⼲⼴广告视图默认是横竖屏⾃自适应 但需要在旋转时调⽤用 orien- tationChanged ⽅方法
    // Set the frame of advertisement view
    _dmAdView.frame = CGRectMake(0, 20, FLEXIBLE_SIZE.width,FLEXIBLE_SIZE.height);
    _dmAdView.delegate = VC;
    // 设置 Delegate
    _dmAdView.rootViewController = VC;
    // 设置 RootViewController
    [VC.view addSubview:_dmAdView];// 将⼲⼴广告视图添加到⽗父视图中
    [_dmAdView loadAd]; // 开始加载⼲⼴广告
    

//Lua调OC
        handlerID = [[dic objectForKey:@"listener"]intValue];
        //压入需要调用的方法id(假设方法为XG)
        LuaBridge::pushLuaFunctionById(handlerID);
        //获取lua栈
        LuaStack * stack =LuaBridge::getStack();
        //将需要通过方法XG传递给lua的参数压入lua栈
        stack->pushString([[NSString stringWithFormat:@"Log"] UTF8String]);
        //根据压入的方法id调用方法XG,并把XG方法参数传递给lua代码
        stack->executeFunction(1);
    
        LuaBridge::releaseLuaFunctionById(handlerID);
}

// 成功加载⼲⼴广告后,回调该⽅方法
- (void)dmAdViewSuccessToLoadAd:(DMAdView *)adView
{
    NSLog(@"成功加载⼲⼴广告后,回调该⽅方法");
}
// 加载⼲⼴广告失败后,回调该⽅方法
- (void)dmAdViewFailToLoadAd:(DMAdView *)adView withError:(NSError *)error
{
    NSLog(@"加载⼲⼴广告失败后,回调该⽅方法");
}
// 当将要呈现出 Modal View 时,回调该⽅方法。如打开内置浏览器。
- (void)dmWillPresentModalViewFromAd:(DMAdView *)adView
{
    NSLog(@"将要呈现出 Modal View 时,回调该⽅方法");
}
// 当呈现的 Modal View 被关闭后,回调该⽅方法。如内置浏览器被关闭。
- (void)dmDidDismissModalViewFromAd:(DMAdView *)adView
{
    NSLog(@"当呈现的 Modal View 被关闭后,回调该⽅方法");
}
// 当因⽤用户的操作(如点击下载类⼲⼴广告,需要跳转到Store),需要离开当前应⽤用时,回调该⽅方法
- (void)dmApplicationWillEnterBackgroundFromAd:(DMAdView *)adView
{
    NSLog(@"当因⽤用户的操作(如点击下载类⼲⼴广告,需要跳转到Store,回调该⽅方法");
}


 

7.在lua里的主函数里调Luaoc,很简单一句代码就行

luaoc.callStaticMethod("RootViewController", "registerScriptHandler",
    {listener = function()
      print("Lua中成功加载广告了")
    end}


8.运行结果



9.控制台输出


OK,以上就是全部的了。。。

注:本文的SDK包在多盟注册账号后,会给你2个测试的账号ID。以及帮助文档


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值