敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
事件监听
• 如需接口调用事件,请设置此监听器;
jsbridge.tosin.setlistener(function(event, data) {
switch (event) {
//开屏广告 jsbridge.tosin.splash(...)
case "splash": {
switch (data.action) {
//加载成功
case "onloadsuccess": {
//data.data.ecpm: number
//data.data.orderno: string
break;
}
//加载失败
case "onloadfail": {
break;
}
//展示成功
case "onshow": {
break;
}
//展示失败
case "onshowfail": {
break;
}
//曝光
case "onexposure": {
break;
}
//关闭
case "ondismiss": {
break;
}
//点击
case "onclicked": {
break;
}
}
break;
}
//激励视频 jsbridge.tosin.reward(...)
case "reward": {
switch (data.action) {
//加载成功
case "onloadsuccess": {
//data.data.ecpm: number
//data.data.orderno: string
break;
}
//加载失败
case "onloadfail": {
break;
}
//展示成功
case "onadshow": {
break;
}
//展示失败
case "onadshowerror": {
break;
}
//曝光
case "onexposure": {
break;
}
//关闭
case "onadclose": {
break;
}
//点击
case "onadclick": {
break;
}
//播放完成
case "onvideocomplete": {
break;
}
//发放奖励
case "onrewardverify": {
jsbridge.toast('激励达成')
break;
}
}
break;
}
//插全屏 jsbridge.tosin.interstitial(...)
case "interstitial": {
switch (data.action) {
//加载成功
case "onloadsuccess": {
//data.data.ecpm: number
//data.data.orderno: string
break;
}
//加载失败
case "onloadfail": {
break;
}
//展示成功
case "onshow": {
break;
}
//展示失败
case "onshowerror": {
break;
}
//关闭
case "onadclose": {
break;
}
//点击
case "onadclick": {
break;
}
//曝光
case "onexposure": {
break;
}
}
break;
}
//banner jsbridge.tosin.banner(...)
case "banner": {
switch (data.action) {
//加载成功
case "onloadsuccess": {
//data.data.ecpm: number
//data.data.orderno: string
break;
}
//加载失败
case "onloadfail": {
break;
}
//展示成功
case "onadshow": {
break;
}
//展示失败
case "onadshowerror": {
break;
}
//关闭
case "onadclose": {
break;
}
//点击
case "onadclick": {
break;
}
}
break;
}
}
//此函数仅用于显示回调参数在本 demo 页面上
showresult({
event: event,
data: data
});
});
//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrolltop: $('#view').offset().top }, 500);
/**
回调参数说明:
event - 事件代码,字符串
data - 事件数据,json 对象
**/
//移除监听器,不会再收到回调通知 //在需要时可重新调用 setlistener jsbridge.tosin.removelistener();
媒体
//获取当前初始化的媒体信息
jsbridge.tosin.getmedia(function(success, res) {
/* res: {
appid: string, //媒体应用 id
splashcodeid: string, //开屏广告id
debug: boolean, //是否调试模式
personalad: boolean, //是否启用个性化推荐
initsuccess: boolean, //sdk 是否初始化成功
initerrmsg: string //sdk 初始化失败时的错误描述
}
*/
alert(json.stringify(res));
});
appid:
splashcodeid:
//设置下次启动进程时(冷启动 app)的初始化媒体信息
jsbridge.tosin.setmedia({
//媒体应用 id,一串数字,0 则使用打包平台配置的媒体应用 id,null 则保持不变
appid: "{{setmedia.appid}}",
//开屏广告位 id,如果不为空则打开 app 时自动展示开屏广告
splashcodeid: "{{setmedia.splashcodeid}}",
//是否启用调试模式
debug: {{setmedia.debug}},
//是否启用个性化推荐
personalad: {{setmedia.personalad}}
}, function(success, res) {
if (success) {
alert("已设置,请重启进程。");
} else {
alert(json.stringify(res));
}
});
隐私控制
jsbridge.tosin.getcustomcontroller(function(success, res) {
//res 说明见 setcustomcontroller 接口
alert(json.stringify(res));
});
canreadlocation:
canusephonestate:
canuseandroidid:
canusemacaddress:
canuseoaid:
cangetinstallpackages:
canusepermissionrecordaudio:
canusewifistate:
canusewriteexternal:
//设置后请重启进程(冷启动 app)生效
jsbridge.tosin.setcustomcontroller({
//是否可以读取设备位置信息
canreadlocation: {{setcustomcontroller.canreadlocation}},
//是否可以获取设备imei等信息
canusephonestate: {{setcustomcontroller.canusephonestate}},
//是否可以读取设备 android id
canuseandroidid: {{setcustomcontroller.canuseandroidid}},
//是否可以读取设备 mac address
canusemacaddress: {{setcustomcontroller.canusemacaddress}},
//是否可以读取设备 oaid
canuseoaid: {{setcustomcontroller.canuseoaid}},
//是否可以读取设备安装包信息
cangetinstallpackages: {{setcustomcontroller.cangetinstallpackages}},
//是否可以使用设备录音
canusepermissionrecordaudio: {{setcustomcontroller.canusepermissionrecordaudio}},
//是否可以使用设备 access_wifi_state
canusewifistate: {{setcustomcontroller.canusewifistate}},
//是否可以写入外部存储
canusewriteexternal: {{setcustomcontroller.canusewriteexternal}}
}, function(success, res) {
if (success) {
alert("已设置,请重启进程。");
} else {
alert(json.stringify(res));
}
});
展示广告
codeid:
timeout:
//开屏广告
//如果在打包插件上配置了开屏广告位 id 则无需调用此接口,启动 app 时会自动调用展示开屏广告。
jsbridge.tosin.splash({
//开屏广告位 id
codeid: "{{splash.codeid}}",
//加载广告超时时间(毫秒)
timeout: {{splash.timeout}}
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
codeid:
userid:
extradata:
//激励视频
jsbridge.tosin.reward({
//广告位 id
codeid: "{{reward.codeid}}",
//用户id,一般用于激励视频回调
userid: "{{reward.userid}}",
//任意自定义数据,一般用于激励视频回调
extradata: "{{reward.extradata}}"
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
codeid:
jsbridge.tosin.interstitial({
//广告位 id
codeid: "{{interstitial.codeid}}"
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
codeid:
//横幅广告,实际上时浮在web页面上的一块区域
jsbridge.tosin.banner({
//广告位 id
codeid: "{{banner.codeid}}",
//到顶部间距
top: 20,
//宽度
width: 320,
//高度
height: 100
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
codeid:
jsbridge.tosin.banner({
//广告位 id
codeid: "{{banner.codeid}}",
//到底部的间距
bottom: 20,
//宽度
width: 320,
//高度
height: 100
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
jsbridge.tosin.banner({
remove: true
}, function(succ, res) {
if (!succ) {
alert(json.stringify(res));
}
});
监听回调数据: