WebApp快捷打包
ZJ 广告
转到模块插件

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

JS-SDK 引用方式:

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

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

♦ 如需使用开屏广告,请在插件配置开屏广告位ID。

setListener 设置监听器

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


jsBridge.zj.setListener(function(event, data) {
    switch (event) {
        //激励视频 jsBridge.zj.rewardVideo(...)
        case "RewardVideo": {
            switch (data.action) {
                //广告请求成功
                case "onZjAdLoaded": {
                    break;
                }
                //视频素材缓存成功,可在此回调后进行广告展示
                case "onZjAdVideoCached": {
                    break;
                }
                //激励视频广告页面展示
                case "onZjAdShow": {
                    break;
                }
                //广告展示出错
                case "onZjAdShowError": {
                    break;
                }
                //激励视频广告被点击
                case "onZjAdClick": {
                    break;
                }
                //激励视频播放完毕
                case "onZjAdVideoComplete": {
                    break;
                }
                //激励视频触发激励(观看视频大于一定时长或者视频播放完毕)
                //可以在此回调中发放奖励
                case "onZjAdReward": {
                    jsBridge.toast("奖励已达成!");
                    break;
                }
                //激励视频广告被关闭
                case "onZjAdClose": {
                    break;
                }
                //广告流程出错
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
        //插屏 jsBridge.zj.interstitial(...)
        case "Interstitial": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoaded": {
                    break;
                }
                //广告展示
                case "onZjAdShow": {
                    break;
                }
                //广告点击
                case "onZjAdClicked": {
                    break;
                }
                //广告关闭
                case "onZjAdClosed": {
                    break;
                }
                //广告错误
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
        //全屏视频 jsBridge.zj.fullScreenVideo(...)
        case "FullScreenVideo": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoaded": {
                    break;
                }
                //广告展示
                case "onZjAdShow": {
                    break;
                }
                //广告点击
                case "onZjAdClicked": {
                    break;
                }
                //广告关闭
                case "onZjAdClosed": {
                    break;
                }
                //广告错误
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
        //短视频 jsBridge.zj.contentVideo(...)
        case "ContentVideo": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoadSuccess": {
                    break;
                }
                //加载失败
                case "onZjAdLoadError": {
                    break;
                }
                //展示成功
                case "onZjAdShowSuccess": {
                    break;
                }
                //展示失败
                case "onZjAdShowError": {
                    break;
                }
            }
            break;
        }
        //横幅 jsBridge.zj.banner(...)
        case "Banner": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoaded": {
                    break;
                }
                //广告展示
                case "onZjAdShow": {
                    break;
                }
                //广告点击
                case "onZjAdClicked": {
                    break;
                }
                //广告关闭
                case "onZjAdClosed": {
                    break;
                }
                //广告错误
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
        //H5内容 jsBridge.zj.h5(...)
        case "H5": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoad": {
                    break;
                }
                //页面关闭
                case "onZjAdClose": {
                    break;
                }
                //交互事件
                case "onZjAdEvent": {
                    break;
                }
                //错误
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
        //任务 jsBridge.zj.task(...)
        case "Task": {
            switch (data.action) {
                //加载成功
                case "onZjAdLoaded": {
                    break;
                }
                //错误
                case "onZjAdError": {
                    break;
                }
            }
            break;
        }
    }

    //此函数仅用于显示回调参数在本 DEMO 页面上
    showResult({
        event: event,
        data : data
    });
});

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

/**
回调参数说明:
event - 事件代码,字符串类型
data  - 事件数据,JSON 对象
**/

removeListener 移除监听器

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

媒体

getMedia 获取当前初始化的媒体信息

//仅支持 Android
//获取当前初始化的媒体信息
jsBridge.zj.getMedia(function(succ, res) {
  /* res: {
    mediaId    : "",  //媒体ID
    splashPosId: "",  //开屏广告ID
    initSuccess: true,//是否已初始化成功 
  }
  */
  alert(JSON.stringify(res));
});

setMedia 设置下次启动进程时的初始化媒体信息

mediaId:

splashPosId:

//仅支持 Android
//设置下次启动进程时的初始化媒体信息
jsBridge.zj.setMedia({
  //媒体ID,如果留空则使用插件配置里面填写的媒体ID
  mediaId: "{{setMedia.mediaId}}",
  //开屏广告位ID,如果 mediaId 留空则会忽略此参数
  splashPosId: "{{setMedia.splashPosId}}"
}, function(succ, res) {
  if (succ) {
    alert("已设置,请重启进程。");
  } else {
    alert(JSON.stringify(res));
  }
});

业务接口

rewardVideo 激励视频

posId:

//激励视频,监听 event 为 RewardVideo
jsBridge.zj.rewardVideo({
  //必须,字符串类型,激励视频广告位ID
  posId       : "{{rewardVideo.posId}}",
  //用户标识,一般为用户账号ID,以便在处理服务器通知时给此用户发放奖励
  userId      : "user123",
  //附加信息
  extra       : "任意字符串"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

interstitial 插屏

posId:

//插屏,监听 event 为 Interstitial
jsBridge.zj.interstitial({
  //必须,字符串类型,插屏广告位ID
  posId: "{{interstitial.posId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

fullScreenVideo 全屏视频

posId:

//全屏视频,监听 event 为 FullScreenVideo
jsBridge.zj.fullScreenVideo({
  //必须,字符串类型,全屏视频广告位ID
  posId: "{{fullScreenVideo.posId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

contentVideo 短视频内容

posId:

//短视频内容,监听 event 为 ContentVideo
jsBridge.zj.contentVideo({
  //字符串类型,短视频内容广告ID
  posId: "{{contentVideo.posId}}"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 展示 Banner

posId:

num:

width:

height:

marginTop:

marginBottom:

marginStart:

marginEnd:

//横幅Banner,监听 event 为 Banner
jsBridge.zj.banner({
  //字符串类型,Banner广告位ID
  posId: "{{banner.posId}}",
  //数量
  num: {{banner.num}},
  //期望宽度px,0 则满屏宽度
  width: {{banner.width}},
  //期望高度px,0 则自动高度
  height: {{banner.height}},
  //顶边距px
  marginTop: {{banner.marginTop}},
  //底边距px
  marginBottom: {{banner.marginBottom}},
  //左边距(RTL环境时为右边距)px
  marginStart: {{banner.marginStart}},
  //右边距(RTL环境时为左边距)px
  marginEnd: {{banner.marginEnd}},
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

banner 移除 Banner

//移除横幅,监听 event 为 Banner
jsBridge.zj.banner({
  remove: true
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

h5 游戏、积分等

posId:

//H5内容页,监听 event 为 H5
jsBridge.zj.h5({
  //必须,字符串类型,广告位ID
  posId: "{{h5.posId}}",
  //必须,用户信息
  user : {
    //用户ID
    userID      : "13800138000",
    //用户名
    userName    : "张三",
    //用户头像URL
    userAvatar  : "https://scpic.chinaz.net/Files/pic/icons128/8027/d1.png",
    //用户积分
    userIntegral: 123,
    //可选,附加信息
    ext         : ""
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

task 任务墙

posId:

page:

userId:

title:

darkTheme:

//仅支持 Android 平台
//任务墙,监听 event 为 Task
jsBridge.zj.task({
  //必须,字符串类型,广告位ID
  posId : "{{task.posId}}",
  //必须、字符串类型,可选值为:
  //cpa CPA任务页
  //cpl CPL任务页
  //history 任务记录页
  page  : "{{task.page}}",
  //用户ID
  userId: "{{task.userId}}",
  //标题
  title : "{{task.title}}",
  //是否显示为深色主题
  darkTheme: {{task.darkTheme}}
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

监听回调数据: