WebApp快捷打包
TopOn
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241118.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

事件监听

setListener 设置监听器

• 如需处理接口调用事件,请设置此监听器;

jsBridge.topOn.setListener(function(event, res) {
    switch (event) {
        //广告加载状态(所有接口都有的公共回调)
        //请参考 ATAdLoadingDelegate代理方法
        case "ad": {
            switch (res.action) {
                //开始加载
                case "startLoading": {
                    break;
                }
                //加载完成
                case "finishLoading": {
                    break;
                }
                //加载失败
                case "failToLoad": {
                    break;
                }
                //加载广告源成功
                case "finishLoadingADSource": {
                    break;
                }
                //加载广告源失败
                case "failToLoadADSource": {
                    break;
                }
                //开始出价
                case "startBiddingADSource": {
                    break;
                }
                //出价成功
                case "finishBiddingADSource": {
                    break;
                }
                //出价失败
                case "failBiddingADSource": {
                    break;
                }
            }
            break;
        }
        //激励视频 jsBridge.topOn.reward(...)
        //请参考 ATRewardedVideoDelegate代理方法
        case "reward": {
            switch (res.action) {
                //开始播放
                case "startPlaying": {
                    break;
                }
                //结束播放
                case "endPlaying": {
                    break;
                }
                //播放失败
                case "failToPlay": {
                    break;
                }
                //激励达成
                case "rewardSuccess": {
                    jsBridge.toast("奖励已达成!");
                    break;
                }
                //点击
                case "click": {
                    break;
                }
                //关闭
                case "close": {
                    break;
                }
                case "deepLinkOrJump": {
                    break;
                }
                case "againStartPlaying": {
                    break;
                }
                case "againEndPlaying": {
                    break;
                }
                case "againFailToPlay": {
                    break;
                }
                case "againClick": {
                    break;
                }
                case "againRewardSuccess": {
                    break;
                }
            }
            break;
        }
        //插屏广告 jsBridge.topOn.interstitial(...)
        //请参考 ATInterstitialDelegate代理方法
        case "interstitial": {
            switch (res.action) {
                //展示
                case "show": {
                    break;
                }
                //展示失败
                case "failedToShow": {
                    break;
                }
                //播放开始
                case "startPlaying": {
                    break;
                }
                //播放结束
                case "endPlaying": {
                    break;
                }
                //播放失败
                case "failToPlay": {
                    break;
                }
                //点击
                case "click": {
                    break;
                }
                //关闭
                case "close": {
                    break;
                }
                case "deepLinkOrJump": {
                    break;
                }
                case "LPClose": {
                    break;
                }
            }
            break;
        }
        //横幅广告 jsBridge.topOn.banner(...)
        //请参考 ATBannerDelegate代理方法
        case "banner": {
            switch (res.action) {
                //展示
                case "show": {
                    break;
                }
                //自动刷新
                case "autoRefresh": {
                    break;
                }
                //自动刷新失败
                case "failToAutoRefresh": {
                    break;
                }
                //点击
                case "click": {
                    break;
                }
                //关闭
                case "close": {
                    break;
                }
                case "deepLinkOrJump": {
                    break;
                }
                case "LPClose": {
                    break;
                }
            }
            break;
        }
    }
    //此函数仅用于显示回调参数在本 DEMO 页面上
    showResult({
        event: event,
        res  : res
    });

/**
回调参数 res 数据结构
{
  action: string, 动作名称
  data: {
      adId : string, 广告位ID
      error: undefined || string,失败时的错误信息
      extra: undefined || object,附加信息
  }
}
**/

});

//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

removeListener 移除监听器

//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.topOn.removeListener();

广告

reward 激励视频

adId:

sceneId:

show:

//激励视频,setListener 的监听回调 event 为 reward
jsBridge.topOn.reward({
  //广告位ID
  adId: "{{reward.adId}}",
  //场景ID
  sceneId: "{{reward.sceneId}}",
  //加载或展示广告
  //false 加载广告(不展示)
  //true  展示广告(需加载完成)
  show: {{reward.show}},
  //可选,广告加载扩展参数,任意键值对
  extra: {
    key1: "hello",
    key2: "world"
  }
}, function(success, res) {
  if (!success) {
    if (res.errorCode == 2) {
      alert("not ready 广告未加载完成");
    } else {
      alert(JSON.stringify(res));
    }
  }
});

interstitial 插屏

adId:

sceneId:

show:

//激励视频,setListener 的监听回调 event 为 reward
jsBridge.topOn.interstitial({
  //广告位ID
  adId: "{{interstitial.adId}}",
  //场景ID
  sceneId: "{{interstitial.sceneId}}",
  //加载或展示广告
  //false 加载广告(不展示)
  //true  展示广告(需加载完成)
  show: {{interstitial.show}},
  //可选,广告加载扩展参数,任意键值对
  extra: {
    key1: "hello",
    key2: "world"
  }
}, function(success, res) {
  if (!success) {
    if (res.errorCode == 2) {
      alert("not ready 广告未加载完成");
    } else {
      alert(JSON.stringify(res));
    }
  }
});

banner 横幅 - 顶边距

adId:

top:

sceneId:

show:

//横幅,setListener 的监听回调 event 为 banner
jsBridge.topOn.banner({
  //字符串类型,广告平台上申请的代码位id
  adId: "{{banner.adId}}",
  //场景ID
  sceneId: "{{banner.sceneId}}",
  //加载或展示广告
  //false 加载广告(不展示)
  //true  展示广告(需加载完成)
  show: {{banner.show}},
  //数字类型,到顶部的距离
  top: {{banner.top}},
  //可选,广告加载扩展参数,任意键值对
  extra: {
    key1: "hello",
    key2: "world"
  }
}, function(success, res) {
  if (!success) {
    if (res.errorCode == 2) {
      alert("not ready 广告未加载完成");
    } else {
      alert(JSON.stringify(res));
    }
  }
});

banner 横幅 - 底边距

adId:

bottom:

//横幅,setListener 的监听回调 event 为 Banner
jsBridge.topOn.banner({
  adId: "{{banner.adId}}",
  //场景ID
  sceneId: "{{banner.userId}}",
  //加载或展示广告
  //false 加载广告(不展示)
  //true  展示广告(需加载完成)
  show: {{banner.show}},
  //数字类型,到底部的距离
  bottom: {{banner.bottom}}
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 横幅 - 移除广告

//横幅
jsBridge.topOn.banner({
  remove: true
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

监听回调数据: