敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,威尼斯人888-5845vip威尼斯电子游戏。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
♦ js api 详细说明及vpn连接流程请参考 的同名函数
事件监听
• 如需接口调用事件,请设置此监听器;
//示例
var login = function(captcha) {
jsbridge.topvpn.loginvone({
m_ilogintype: 2,
m_iauthtype : 1,
m_straccount : "账号",
m_strloginpasswd: "密码",
m_strextracode : captcha //验证码
}, function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 get_servercfg 监听事件
}
});
};
jsbridge.topvpn.setlistener(function(event, data) {
switch (event) {
case "get_servercfg": { //============= 取得服务器端配置
if (data.success) {
if (data.captchatype != "off") {
//需要验证码,向服务器请求验证码图片
jsbridge.topvpn.requestcaptcha(function(succ, data) {
if (!succ) {
alert("请求验证码图片失败\n" json.stringify(data));
}
});
} else {
//登录
login("");
}
} else {
alert("get_servercfg 失败: " json.stringify(data));
}
break;
}
case "get_captcha": { //=============取得验证码图片
if (data.success) {
//把 data.base64_image 显示在网页上,让用户读取输入图片上的验证码
//登录
login("验证码");
} else {
alert("get_captcha 失败: " json.stringify(data));
}
break;
}
case "login_system": { //=============登录事件
if (data.success) {
//获取用户授权的资源
jsbridge.topvpn.requestvpnresinfo(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 get_resource 监听事件
}
});
} else {
alert("login_system 失败: " json.stringify(data));
}
break;
}
case "get_resource": { //=============获取用户授权的资源
if (data.success) {
//启动vpn服务
jsbridge.topvpn.startservice(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 start_service 监听事件
}
});
} else {
alert("get_resource 失败: " json.stringify(data));
}
break;
}
case "start_service": { //=============启动vpn服务
if (data.success) {
//启动vpn服务
alert("vpn 服务启动成功: " json.stringify(data));
} else {
alert("start_service 失败: " json.stringify(data));
}
break;
}
//case "....": { //其他事件
// }
};
//json方式显示监听回调参数
showresult({
event: event,
data : data
});
});
//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrolltop: $('#view').offset().top }, 500);
/**
回调参数说明:
event - 事件代码,字符串类型
data - 事件数据,json 对象
**/
//移除监听器,不会再收到回调通知 //在需要时可重新调用 setlistener jsbridge.topvpn.removelistener();
业务接口
//设置配置信息后触发 get_servercfg 监听事件时返回服务器配置信息
jsbridge.topvpn.setconfiginfo({
//是否自动重连
m_blautoreconnect: true,
//重试次数
m_iretrycount: 10,
//超时时间(秒)
m_itimeout: 5,
//vpn 地址
m_strvpnip: "222.223.187.10",
//vpn 端口
m_iserverport: 8443
}, function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 get_servercfg 监听事件
}
});
//需先调用 setconfiginfo,在 get_servercfg 监听事件中判断成功获取服务器配置信息后才能调用此登录接口。
jsbridge.topvpn.loginvone({
//登录方式:
//方式1.用户名口令
m_ilogintype: 2,
m_iauthtype : 1,
//方式2.国际(rsa)软证书
//m_ilogintype: 4,
//m_iauthtype : 2,
//m_iprotocoltype: 4,
//方式3.国际(rsa)硬证书
//m_ilogintype: 4,
//m_iauthtype : 4,
//m_iprotocoltype : 4,
//m_strpackagename: "app的包名,com.example.vpn",
//方式4.国密(sm)硬证书
//m_ilogintype: 4,
//m_iauthtype : 4,
//m_iprotocoltype : 2,
//m_strpackagename: "app的包名,com.example.vpn",
//方式5.外部认证
//m_ilogintype: 16,
//m_iauthtype : 1,
//m_iprotocoltype : 1, //1 静态密码, 8 动态密码, 16 token认证
//方式6.生物指纹认证
//m_ilogintype: 64,
//m_iauthtype : 128,
//m_byarrreserveddata_base64 : "", //生物指纹数据的 base64 编码
//口令方式时提供
m_straccount : "账号",
m_strloginpasswd: "密码",
m_strextracode : "验证码",
//证书方式时提供
m_strcer_base64: "", //p12证书文件的 base64 编码
m_strcerpasswd : "证书密码"
}, function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 login_system 监听事件
}
});
jsbridge.topvpn.requestvpnresinfo(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 get_resource 监听事件
}
});
jsbridge.topvpn.startservice(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 start_service 监听事件
}
});
jsbridge.topvpn.closeservice(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 close_service 监听事件
}
});
jsbridge.topvpn.logoutvone(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 logout_system 监听事件
}
});
jsbridge.topvpn.requestcaptcha(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 get_captcha 监听事件
//返回 base64_image jpg 图片,请自行显示在 ui 上
}
});
jsbridge.topvpn.modifypassword({
oldpassword: "旧密码",
newpassword: "新密码"
}, function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
//请处理 modify_password 监听事件
}
});
//此接口无监听事件
jsbridge.topvpn.getstatus(function(succ, data) {
if (!succ) {
alert("失败\n" json.stringify(data));
} else {
alert(json.stringify(data));
}
});
监听回调数据: