Commit 74e2c26f by kaisa

feat:更新

parent ce61d6b3
Showing with 894 additions and 881 deletions
// 2:跳转到WebViewFragment
// 3:分享
// 4:客服
// 5:跳轉到外部瀏覽器
// 6:打开兑换宝石页面
// 7:绑定手机
// 8:跳转微信绑定页面
// 9:是否分享或帮助
// 10:判断某个app是否存在
// 11:网页标题 (棄用)
// 13:半屏网页声音开启关闭:
// 12:跳转逻辑
// 13:关闭声音
// 14:关闭网页
// 15:通用viepager標題
// 16:成功转让黄金萤火虫
// 17:关闭半屏网页,打开自己的礼物面板
// 18: 打開購買VIP
// 19:打開購買守護彈窗
// 20:播放座驾预览
// 23:自動添加直播間聊天消息
// 24:获取网页图片下标
// 25:点击web
// 26:是否显示客服入口
// 27:直接唤起 苹果支付 和 google支付:(萤火虫6000版本新增)
// 28:判断是否在外部可以关闭webview
// 29:webview上面的图标 (旧)
// 30:注销账号后退出
// 31:弹出WEB弹窗
// 32:webview上面的图标 (新)
// 33:打开更多功能面板
// 34:修改标题
// 35:打开游戏
// 36:播放動畫
// 37: web页面加载完毕时通知客户端
// 38: 打开签到提醒
// 39: 告知客户端渠道信息
// 40: 跳转任务界面
// 41: 修改webview底色
// 42: 振动
// 47: 直播奖励小窗抖动
// 48: 弹出用户行为规范弹窗
// 49: base64格式图片保存到相册
// 50: 网页在直播间唤起输入框并且粘贴文本到输入框
// 51:通知安卓客户端活动窗口宽高
// 52:通知ios客户端返回home键高度
// 53:直播间跳转全屏任务中心页面
function webAppComm() {
this.data = null;
this.langList = [
// 简中
{
'lang1': '活动规则',
'lang2': '刷新',
'lang3': '客服咨询',
'lang4': '推荐朋友',
'lang5': '活动专区',
'lang6': '关闭页面',
'lang7': '露水',
'lang8': '宝石'
},
//1英文
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//2繁体
{
'lang1': '活動規則',
'lang2': '刷新',
'lang3': '客服咨詢',
'lang4': '推薦朋友',
'lang5': '活動專區',
'lang6': '關閉頁面',
'lang7': '露水',
'lang8': '寶石'
},
//3泰语
{
'lang1': 'กฎกติกากิจกรรม',
'lang2': 'รีเฟรช',
'lang3': 'บริการลูกค้า',
'lang4': 'แชร์',
'lang5': 'โซนกิจกรรม',
'lang6': 'ปิดหน้านี้',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//4日语
{
'lang1': 'イベントルール',
'lang2': '更新する',
'lang3': 'カスタマーサービス',
'lang4': '共有',
'lang5': 'イベントゾーン',
'lang6': 'ページを閉じる',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//5印尼
{
'lang1': 'Aturan acara',
'lang2': 'Segarkan',
'lang3': 'Layanan Pelanggan',
'lang4': 'Bagikan',
'lang5': 'Zona Acara',
'lang6': 'Tutup halaman',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//6
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//7阿拉伯
{
'lang1': 'قواعد الحدث',
'lang2': 'تحديث',
'lang3': 'خدمة العملاء',
'lang4': 'مشاركة',
'lang5': 'منطقة الفعاليات',
'lang6': 'إغلاق الصفحة',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//8越南
{
'lang1': 'Quy tắc sự kiện',
'lang2': 'Làm mới',
'lang3': 'Dịch vụ khách hàng',
'lang4': 'Chia sẻ',
'lang5': 'Khu vực sự kiện',
'lang6': 'Đóng trang',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//9韩文
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//10西班牙
{
'lang1': 'Reglas del evento',
'lang2': 'Actualizar',
'lang3': 'Servicio al Cliente',
'lang4': 'Share',
'lang5': 'Zona de Eventos',
'lang6': 'Cerrar página',
'lang7': 'DEWs',
'lang8': 'GEMs'
}
];
this.urlData = this.url_get_params(location.href);
this.langType = this.urlData.lang;
this.needRefresh = false;
}
//分享
webAppComm.prototype.goShare = function (shareContent, shareType) {
let mShare = shareType || { //1图片 2文字 3网页
"wechat": 3,
"wechat_moment": 3,
"facebook": 3,
"line": 3,
"link": 3,
"whatsApp": 3,
"twitter": 3
}
let obj = {
"cid": 3,
"reqCode": new Date().getTime(),
"data": {
"shareContent": shareContent,
"shareType": mShare
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2)
}
//客服
webAppComm.prototype.goCustomerService = function () {
let obj = {
"cid": 4,
"reqCode": new Date().getTime(),
"data": {
"msg": "Hi,請問有什麼可以幫到您?",
"customerLayer": 1,
"uid": 1000,
"face": 'https://app.ixiulive.com/static/images/yhx.png',
"nickname": "客服",
"title": "客服",
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2)
}
//跳转外部浏览器
webAppComm.prototype.goExternalWeb = function (h5Url) {
let obj = {
"cid": 5,
"reqCode": new Date().getTime(),
"data": {
"url": h5Url,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开兑换宝石页面
webAppComm.prototype.goExchangeGem = function () {
let obj = {
"cid": 6,
"reqCode": new Date().getTime(),
"data": {
"msg": '打开兑换寶石'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//绑定手机
webAppComm.prototype.goBindPhone = function () {
let obj2 = {
"cid": 7,
"reqCode": new Date().getTime(),
"data": {
msg: '点击跳转绑定手机页面',
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj);
}
//绑定微信
webAppComm.prototype.goBindWechat = function () {
let obj2 = {
"cid": 8,
"reqCode": new Date().getTime(),
"data": {
msg: '跳转微信绑定页面'
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj)
}
//弹出帮助
webAppComm.prototype.needHelp = function () {
let obj = {
"cid": 9,
"reqCode": new Date().getTime(),
"data": {
msg: '是否分享或帮助',
shareType: 1,
helpType: 0,
}
}
let obj2 = JSON.stringify(obj)
webAppCollaboration(obj2)
}
//确认是否有该APP
webAppComm.prototype.ifHasApp = function (type) { //1微信 2line 3facebook 4Twitter 5WhatsApp 6微博 7QQ
let obj2 = {
"cid": 10,
"reqCode": new Date().getTime(),
"data": {
msg: '點擊確認有沒有這個APP',
type: type
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj)
}
//跳转
webAppComm.prototype.goOthers = function (jumptype, url = '', isHide, gid, topicId = '') {
let arr = { 16: '去儲值', 18: '跳轉到座駕', 3: '跳轉集合功能', 13: 'VIP中心', 26: '设置' };
let obj = {
"cid": 12,
"reqCode": new Date().getTime(),
"data": {
"msg": arr[jumptype],
"jumptype": jumptype, //16: 去储值 18: 跳转到座驾 3:跳转集合功能 28:跳转直播间 29:空间 26:设置 40:半屏宝石储值 41:礼物列表 42:背包列表 // 43: 跳转新人主播引导 // 11:跳转主播空间 2:跳转到另一个网页 47: 跳转贴文
"url": url, //41 42时传入礼物id。
"topicId": topicId, // 贴文id
"hideTitle": isHide, // 1隐藏头部,0 不隐藏, 默认为0
"gid": gid, // 礼物列表类别
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//关闭网页
webAppComm.prototype.closeWebView = function (callback) {
callback && callback();
let obj = {
"cid": 14,
"reqCode": new Date().getTime(),
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开多网页面板
webAppComm.prototype.openRecords = function (urls, type) {
let obj = {
"cid": 15,
"reqCode": new Date().getTime(),
"data": {
"urls": [
{
"url": $url + '/Nesting/recording/gem.html' + window.location.search,
"title": langList[langType].dew18,
"rightBtnImageURL": '',
"rightBtnClickURL": ''
},
{
"url": $url + '/Nesting/recording/dew.html' + window.location.search,
"title": langList[langType].dewExchangeTitle3,
"rightBtnImageURL": '',
"rightBtnClickURL": ''
}
],
"select": type,
"titleColor": "",
"titleSelectedColor": "",
"titleBackground": '',
}
}
let obj2 = JSON.stringify(obj);
appCollaboration(obj2);
}
//隐藏客户端顶部
webAppComm.prototype.hideTopBar = function () {
let obj = {
"cid": 21,
"reqCode": new Date().getTime(),
"data": {
"msg": "web关闭网页方法加载完成向客户端通知",
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//自動添加直播間聊天消息
webAppComm.prototype.addLiveMsg = function (content) {
let obj = {
"cid": 23,
"reqCode": new Date().getTime(),
"data": {
"msg": "H5调起消息输入框",
"closeType": 1,
"content": content,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//唤起谷歌、苹果支付
webAppComm.prototype.oriCharge = function (data) {
let obj = {
"cid": 27,
"reqCode": new Date().getTime(),
"data": {
"msg": "直接唤起 苹果支付 和 google支付",
"pid": data.pid,
"packageid": data.packageid,
"chargeInfo": data.info,
"succeedAlert": data.alert
}
}
let obj2 = JSON.stringify(obj);
console.log(obj2)
webAppCollaboration(obj2);
}
// 31: 打开半屏网页
webAppComm.prototype.openHalfWeb = function (param) {
let obj = {
"cid": 31,
"data": {
popupType: param.type, //popupType 1全屏2半屏3浮动屏(默认居中)
heightR: param.height, //heightR 弹窗高度 单位vw 安卓不允许 传小数;
widthR: param.width, //widthR 弹窗宽度vw
clickBlank: param.clickBlank, //clickBlank 点击区域外是否关闭 0不关闭 1关闭
url: param.url, //url 需要打开的url (默认拼接uid token roomid等参数)
// top: param.top || '', //top 距离顶部位置 单位vw
// left: param.left || '', //left 距离左边位置
// bottom: param.bottom || '', //bottom 距离底部位置
// right: param.right || '', //right 距离右边位置
isThrough: param.isThrough, //isThrough 是否可穿透 0不可穿透 1可穿透 默认为0
afterReady: param.afterReady, // afterReady 是否加载完成后再显示。 0否 1是。 默认为0,
needMounted: param.needMounted, //ios专用 0不独立 1独立。 默认是0.
allowScroll: param.allowScroll, //是否允许直播间滑动 0不允许 1允许 默认为1.
}
}
if (param.top || param.top === 0) {
obj.data.top = param.top;
}
if (param.left || param.left === 0) {
obj.data.left = param.left;
}
if (param.bottom || param.bottom === 0) {
obj.data.bottom = param.bottom;
}
if (param.right || param.right === 0) {
obj.data.right = param.right;
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 28:判断是否可以在外部关闭webview
// closeType 0:点击区域外关闭 1:点击区域外不关闭
webAppComm.prototype.closeOutSideWebView = function (closeType) {
let obj = {
"cid": 28,
"reqCode": new Date().getTime(),
"data": {
"msg": "判断是否外部关闭webview",
"closeType ": closeType,
}
}
let obj2 = JSON.stringify(obj);
console.log(obj2)
webAppCollaboration(obj2);
}
//webview右上角的icon
webAppComm.prototype.showIcons = function (infos) {
let obj = {
"cid": 32, //新的右上角展示
"data": {
"msg": "h5网页右上角显示图标",
"info": infos,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开更多功能面板
webAppComm.prototype.openExtra = function (infos) {
let obj = {
"cid": 33, //打开额外功能面板
"data": {
"msg": '打开额外功能面板',
"info": infos
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
webAppComm.prototype.changeTitle = function (param) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": param.type, //1 图片 2文本。
"imgTxt": param.text,
"imgUrl": param.url, //1
"style": {
//图片
"width": param.w, //1
"height": param.h, //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle1 = function () {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 1, //1 图片 2文本。
"imgUrl": 'https://app.ixiulive.com/static/app/img/title.png?v=20230425', //1
"style": {
//图片
"width": '161', //1
"height": '70', //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle2 = function () {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 2, //1 图片 2文本。
"imgTxt": $("title").text(),//2
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle3 = function (imgUrl, param) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 1, //1 图片 2文本。
"imgUrl": imgUrl,
"style": {
//图片
"width": param.width, //1
"height": param.height, //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 修改网页标题
webAppComm.prototype.changeTitle4 = function (title) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 2, //1 图片 2文本。
"imgTxt": title,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//刷新网页
webAppComm.prototype.refreshWeb = function (callback) {
callback && callback();
if (this.needRefresh) {
location.reload();
}
}
// 35:打开游戏
webAppComm.prototype.goGame = function (mData) {
let obj = {
"cid": 35,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 36:播放動畫
webAppComm.prototype.playAnimate = function (mData) {
let obj = {
"cid": 36,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 37:web加载完毕
webAppComm.prototype.domReady = function (mData) {
let obj = {
"cid": 37,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 38:web打开/关闭签到提醒
webAppComm.prototype.openSignRemind = function () {
let obj = {
"cid": 38,
"data": {
"msg": '打开签到提醒'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 39: 告知客户端渠道信息和uid
webAppComm.prototype.sendBindInfos = function (cid, uid, lang, type, origin) {
let obj = {
"cid": 39,
"data": {
"channelId": cid,
"agentUid": uid,
"lang": lang,
"bindType": type,
"origin": origin
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 40: 跳转任务界面
webAppComm.prototype.jumpToTask = function (type) {
let obj = {
"cid": 40,
"data": {
"taskType": type // 1:新手任务 2:每日任务 3:主播任务 4:奖励领取
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//41: 修改webview的背景底色
webAppComm.prototype.setBackground = function (color, color2) {
let obj = {
"cid": 41,
"data": {
"background": color, // # color值为HEX色值 例:#FFFFFF,
"AHEX": color2 // # color2值为AHEX色值 例:#FFFFFFFF,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//42: 手机振动
webAppComm.prototype.toVibrate = function (duration) {
let obj = {
"cid": 42,
"data": {
"duration": duration // # duration为振动的秒数
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//43: 修改webview宽高
webAppComm.prototype.setRatio = function (type, wr, hr, position, unit) {
let obj = {
"cid": 43,
"data": {
"type": type, //1活动框架 2游戏框架。
"width": wr, // #单位为vw 默认值为-1 未传或传-1时,则不修改宽度
"height": hr, //单位为vw 默认值为-1 未传或传-1时,则不修改高度
"position": position, // 1右贴边 2左贴边 默认右贴边。
"unit": unit, //单位 默认1 vw 2 pt
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//44: 调起第三方并获取OpenId(7570版本以上
webAppComm.prototype.vertify = function (type, callBackName) {
let obj = {
"cid": 44,
"data": {
"type": type, //1:QQ 2:微信 3:微博 4:Google 5:Twitter 6:FaceBook 8:line 9:appleId
"callBackName": callBackName,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//45: 与客户端同步H5客服聊天消息
webAppComm.prototype.syncChatHis = function (type, content, timeStr) {
let obj = {
"cid": 45, //客服聊天用,与客户端同步本地发送信息
"data": {
"type": type, //1文字 2图片
"content": content,
"time": timeStr //发送聊天时间戳
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//46: 将图片存入相册
webAppComm.prototype.savePhoto = function (imgUrl) {
let obj = {
"cid": 46, //将图片存入相册
"data": {
'imgUrl': imgUrl //照片地址
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//47: 通知客户端直播奖励小窗抖动
webAppComm.prototype.liveShakes = function () {
let obj = {
"cid": 47,
"data": {
"msg": '窗口抖动'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 48:弹出用户行为规范弹窗
webAppComm.prototype.userBehaviorSpecification = function (type) {
let obj = {
"cid": 48,
"reqCode": new Date().getTime(),
"data": {
'type': type
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 49: base64格式图片保存到相册
webAppComm.prototype.saveImgToAlbum = function (imgUrl) {
let obj = {
"cid": 49,
"data": {
'base64Url': imgUrl //照片地址
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 50: 网页在直播间唤起输入框并且粘贴文本到输入框
webAppComm.prototype.evokeIptPasteText = function (text, closeType) {
let obj = {
"cid": 50,
"data": {
'content': text, //文本内容
'closeType': closeType //0:关闭输入框 1:不关闭输入框
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 51: 通知安卓客户端活动窗口宽高
webAppComm.prototype.setWidthHeigth = function (type, wr, hr, position, unit) {
let obj = {
"cid": 51,
"data": {
"type": type, //1活动框架 2游戏框架。
"width": wr, // #单位为vw 默认值为-1 未传或传-1时,则不修改宽度
"height": hr, //单位为vw 默认值为-1 未传或传-1时,则不修改高度
"position": position, // 1右贴边 2左贴边 默认右贴边。
"unit": unit, //单位 默认1 vw 2 pt
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 52:通知ios客户端返回home键高度
webAppComm.prototype.setHomeHeight = function () {
let obj = {
"cid": 52,
"data": {
"msg": '返回home键高度'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 53:直播间跳转全屏任务中心页面
webAppComm.prototype.jumpToTaskCenter = function (type) {
let obj = {
"cid": 53,
"data": {
"taskType": type // 1:新手任务 2:每日任务 3:主播任务 4:奖励领取
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 54:添加系统日历提醒
webAppComm.prototype.calendarReminders = function (title, content, time, tipContent) {
let obj = {
"cid": 54,
"data": {
"title": title,
"content": content,
"time": time, //时间戳
"type": 1, // 1:只提醒一次 2:每周都提醒一次
"durationTime": 10,//持续时间
"reminderTime": 5,//提前多久提醒
"tipContent": tipContent // 添加日历提示内容
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//接收客戶端的消息
webAppComm.prototype.reMsgFromApp = function (callback) {
callback && callback();
}
webAppComm.prototype.url_get_params = function (url_path) {
let url = url_path;
let theRequest = new Object();
if (url.indexOf("?") != -1) {
let str = url.substr(url.indexOf("?") + 1);
strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
function webAppCollaboration(msg) {
let sUserAgent = navigator.userAgent.toLowerCase();
let bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
let bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
let bIsMidp = sUserAgent.match(/midp/i) == "midp";
let bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
let bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
let bIsAndroid = sUserAgent.match(/android/i) == "android";
let bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
let bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
}
else if (bIsAndroid) {
window.yazhai.appCollaboration(msg);
} else if (bIsIphoneOs || bIsIpad) {
window.webkit.messageHandlers.appCollaboration.postMessage(msg);
}
}
window.$firefly = new webAppComm();
// 2:跳转到WebViewFragment
// 3:分享
// 4:客服
// 5:跳轉到外部瀏覽器
// 6:打开兑换宝石页面
// 7:绑定手机
// 8:跳转微信绑定页面
// 9:是否分享或帮助
// 10:判断某个app是否存在
// 11:网页标题 (棄用)
// 13:半屏网页声音开启关闭:
// 12:跳转逻辑
// 13:关闭声音
// 14:关闭网页
// 15:通用viepager標題
// 16:成功转让黄金萤火虫
// 17:关闭半屏网页,打开自己的礼物面板
// 18: 打開購買VIP
// 19:打開購買守護彈窗
// 20:播放座驾预览
// 23:自動添加直播間聊天消息
// 24:获取网页图片下标
// 25:点击web
// 26:是否显示客服入口
// 27:直接唤起 苹果支付 和 google支付:(萤火虫6000版本新增)
// 28:判断是否在外部可以关闭webview
// 29:webview上面的图标 (旧)
// 30:注销账号后退出
// 31:弹出WEB弹窗
// 32:webview上面的图标 (新)
// 33:打开更多功能面板
// 34:修改标题
// 35:打开游戏
// 36:播放動畫
// 37: web页面加载完毕时通知客户端
// 38: 打开签到提醒
// 39: 告知客户端渠道信息
// 40: 跳转任务界面
// 41: 修改webview底色
// 42: 振动
// 47: 直播奖励小窗抖动
// 48: 弹出用户行为规范弹窗
// 49: base64格式图片保存到相册
// 50: 网页在直播间唤起输入框并且粘贴文本到输入框
// 51:通知安卓客户端活动窗口宽高
// 52:通知ios客户端返回home键高度
// 53:直播间跳转全屏任务中心页面
function webAppComm() {
this.data = null;
this.langList = [
// 简中
{
'lang1': '活动规则',
'lang2': '刷新',
'lang3': '客服咨询',
'lang4': '推荐朋友',
'lang5': '活动专区',
'lang6': '关闭页面',
'lang7': '露水',
'lang8': '宝石'
},
//1英文
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//2繁体
{
'lang1': '活動規則',
'lang2': '刷新',
'lang3': '客服咨詢',
'lang4': '推薦朋友',
'lang5': '活動專區',
'lang6': '關閉頁面',
'lang7': '露水',
'lang8': '寶石'
},
//3泰语
{
'lang1': 'กฎกติกากิจกรรม',
'lang2': 'รีเฟรช',
'lang3': 'บริการลูกค้า',
'lang4': 'แชร์',
'lang5': 'โซนกิจกรรม',
'lang6': 'ปิดหน้านี้',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//4日语
{
'lang1': 'イベントルール',
'lang2': '更新する',
'lang3': 'カスタマーサービス',
'lang4': '共有',
'lang5': 'イベントゾーン',
'lang6': 'ページを閉じる',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//5印尼
{
'lang1': 'Aturan acara',
'lang2': 'Segarkan',
'lang3': 'Layanan Pelanggan',
'lang4': 'Bagikan',
'lang5': 'Zona Acara',
'lang6': 'Tutup halaman',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//6
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//7阿拉伯
{
'lang1': 'قواعد الحدث',
'lang2': 'تحديث',
'lang3': 'خدمة العملاء',
'lang4': 'مشاركة',
'lang5': 'منطقة الفعاليات',
'lang6': 'إغلاق الصفحة',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//8越南
{
'lang1': 'Quy tắc sự kiện',
'lang2': 'Làm mới',
'lang3': 'Dịch vụ khách hàng',
'lang4': 'Chia sẻ',
'lang5': 'Khu vực sự kiện',
'lang6': 'Đóng trang',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//9韩文
{
'lang1': 'Events Rule',
'lang2': 'Refresh',
'lang3': 'Customer Service',
'lang4': 'Compartir',
'lang5': 'Event Zone',
'lang6': 'Close Page',
'lang7': 'DEWs',
'lang8': 'GEMs'
},
//10西班牙
{
'lang1': 'Reglas del evento',
'lang2': 'Actualizar',
'lang3': 'Servicio al Cliente',
'lang4': 'Share',
'lang5': 'Zona de Eventos',
'lang6': 'Cerrar página',
'lang7': 'DEWs',
'lang8': 'GEMs'
}
];
this.urlData = this.url_get_params(location.href);
this.langType = this.urlData.lang;
this.needRefresh = false;
}
//分享
webAppComm.prototype.goShare = function (shareContent, shareType) {
let mShare = shareType || { //1图片 2文字 3网页
"wechat": 3,
"wechat_moment": 3,
"facebook": 3,
"line": 3,
"link": 3,
"whatsApp": 3,
"twitter": 3
}
let obj = {
"cid": 3,
"reqCode": new Date().getTime(),
"data": {
"shareContent": shareContent,
"shareType": mShare
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2)
}
//客服
webAppComm.prototype.goCustomerService = function () {
let obj = {
"cid": 4,
"reqCode": new Date().getTime(),
"data": {
"msg": "Hi,請問有什麼可以幫到您?",
"customerLayer": 1,
"uid": 1000,
"face": 'https://app.ixiulive.com/static/images/yhx.png',
"nickname": "客服",
"title": "客服",
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2)
}
//跳转外部浏览器
webAppComm.prototype.goExternalWeb = function (h5Url) {
let obj = {
"cid": 5,
"reqCode": new Date().getTime(),
"data": {
"url": h5Url,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开兑换宝石页面
webAppComm.prototype.goExchangeGem = function () {
let obj = {
"cid": 6,
"reqCode": new Date().getTime(),
"data": {
"msg": '打开兑换寶石'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//绑定手机
webAppComm.prototype.goBindPhone = function () {
let obj2 = {
"cid": 7,
"reqCode": new Date().getTime(),
"data": {
msg: '点击跳转绑定手机页面',
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj);
}
//绑定微信
webAppComm.prototype.goBindWechat = function () {
let obj2 = {
"cid": 8,
"reqCode": new Date().getTime(),
"data": {
msg: '跳转微信绑定页面'
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj)
}
//弹出帮助
webAppComm.prototype.needHelp = function () {
let obj = {
"cid": 9,
"reqCode": new Date().getTime(),
"data": {
msg: '是否分享或帮助',
shareType: 1,
helpType: 0,
}
}
let obj2 = JSON.stringify(obj)
webAppCollaboration(obj2)
}
//确认是否有该APP
webAppComm.prototype.ifHasApp = function (type) { //1微信 2line 3facebook 4Twitter 5WhatsApp 6微博 7QQ
let obj2 = {
"cid": 10,
"reqCode": new Date().getTime(),
"data": {
msg: '點擊確認有沒有這個APP',
type: type
}
}
let obj = JSON.stringify(obj2);
webAppCollaboration(obj)
}
//跳转
webAppComm.prototype.goOthers = function (jumptype, url = '', isHide, gid, topicId = '') {
let arr = { 16: '去儲值', 18: '跳轉到座駕', 3: '跳轉集合功能', 13: 'VIP中心', 26: '设置' };
let obj = {
"cid": 12,
"reqCode": new Date().getTime(),
"data": {
"msg": arr[jumptype],
"jumptype": jumptype, //16: 去储值 18: 跳转到座驾 3:跳转集合功能 28:跳转直播间 29:空间 26:设置 40:半屏宝石储值 41:礼物列表 42:背包列表 // 43: 跳转新人主播引导 // 11:跳转主播空间 2:跳转到另一个网页 47: 跳转贴文
"url": url, //41 42时传入礼物id。
"topicId": topicId, // 贴文id
"hideTitle": isHide, // 1隐藏头部,0 不隐藏, 默认为0
"gid": gid, // 礼物列表类别
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//关闭网页
webAppComm.prototype.closeWebView = function (callback) {
callback && callback();
let obj = {
"cid": 14,
"reqCode": new Date().getTime(),
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开多网页面板
webAppComm.prototype.openRecords = function (urls, type) {
let obj = {
"cid": 15,
"reqCode": new Date().getTime(),
"data": {
"urls": [
{
"url": $url + '/Nesting/recording/gem.html' + window.location.search,
"title": langList[langType].dew18,
"rightBtnImageURL": '',
"rightBtnClickURL": ''
},
{
"url": $url + '/Nesting/recording/dew.html' + window.location.search,
"title": langList[langType].dewExchangeTitle3,
"rightBtnImageURL": '',
"rightBtnClickURL": ''
}
],
"select": type,
"titleColor": "",
"titleSelectedColor": "",
"titleBackground": '',
}
}
let obj2 = JSON.stringify(obj);
appCollaboration(obj2);
}
//隐藏客户端顶部
webAppComm.prototype.hideTopBar = function () {
let obj = {
"cid": 21,
"reqCode": new Date().getTime(),
"data": {
"msg": "web关闭网页方法加载完成向客户端通知",
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//自動添加直播間聊天消息
webAppComm.prototype.addLiveMsg = function (content) {
let obj = {
"cid": 23,
"reqCode": new Date().getTime(),
"data": {
"msg": "H5调起消息输入框",
"closeType": 1,
"content": content,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//唤起谷歌、苹果支付
webAppComm.prototype.oriCharge = function (data) {
let obj = {
"cid": 27,
"reqCode": new Date().getTime(),
"data": {
"msg": "直接唤起 苹果支付 和 google支付",
"pid": data.pid,
"packageid": data.packageid,
"chargeInfo": data.info,
"succeedAlert": data.alert
}
}
let obj2 = JSON.stringify(obj);
console.log(obj2)
webAppCollaboration(obj2);
}
// 31: 打开半屏网页
webAppComm.prototype.openHalfWeb = function (param) {
let obj = {
"cid": 31,
"data": {
popupType: param.type, //popupType 1全屏2半屏3浮动屏(默认居中)
heightR: param.height, //heightR 弹窗高度 单位vw 安卓不允许 传小数;
widthR: param.width, //widthR 弹窗宽度vw
clickBlank: param.clickBlank, //clickBlank 点击区域外是否关闭 0不关闭 1关闭
url: param.url, //url 需要打开的url (默认拼接uid token roomid等参数)
// top: param.top || '', //top 距离顶部位置 单位vw
// left: param.left || '', //left 距离左边位置
// bottom: param.bottom || '', //bottom 距离底部位置
// right: param.right || '', //right 距离右边位置
isThrough: param.isThrough, //isThrough 是否可穿透 0不可穿透 1可穿透 默认为0
afterReady: param.afterReady, // afterReady 是否加载完成后再显示。 0否 1是。 默认为0,
needMounted: param.needMounted, //ios专用 0不独立 1独立。 默认是0.
allowScroll: param.allowScroll, //是否允许直播间滑动 0不允许 1允许 默认为1.
}
}
if (param.top || param.top === 0) {
obj.data.top = param.top;
}
if (param.left || param.left === 0) {
obj.data.left = param.left;
}
if (param.bottom || param.bottom === 0) {
obj.data.bottom = param.bottom;
}
if (param.right || param.right === 0) {
obj.data.right = param.right;
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 28:判断是否可以在外部关闭webview
// closeType 0:点击区域外关闭 1:点击区域外不关闭
webAppComm.prototype.closeOutSideWebView = function (closeType) {
let obj = {
"cid": 28,
"reqCode": new Date().getTime(),
"data": {
"msg": "判断是否外部关闭webview",
"closeType ": closeType,
}
}
let obj2 = JSON.stringify(obj);
console.log(obj2)
webAppCollaboration(obj2);
}
//webview右上角的icon
webAppComm.prototype.showIcons = function (infos) {
let obj = {
"cid": 32, //新的右上角展示
"data": {
"msg": "h5网页右上角显示图标",
"info": infos,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//打开更多功能面板
webAppComm.prototype.openExtra = function (infos) {
let obj = {
"cid": 33, //打开额外功能面板
"data": {
"msg": '打开额外功能面板',
"info": infos
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
webAppComm.prototype.changeTitle = function (param) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": param.type, //1 图片 2文本。
"imgTxt": param.text,
"imgUrl": param.url, //1
"style": {
//图片
"width": param.w, //1
"height": param.h, //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle1 = function () {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 1, //1 图片 2文本。
"imgUrl": 'https://app.ixiulive.com/static/app/img/title.png?v=20230425', //1
"style": {
//图片
"width": '161', //1
"height": '70', //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle2 = function () {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 2, //1 图片 2文本。
"imgTxt": $("title").text(),//2
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//修改网页标题
webAppComm.prototype.changeTitle3 = function (imgUrl, param) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 1, //1 图片 2文本。
"imgUrl": imgUrl,
"style": {
//图片
"width": param.width, //1
"height": param.height, //1
}
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 修改网页标题
webAppComm.prototype.changeTitle4 = function (title) {
let obj = {
"cid": 34, //修改网页title 居中显示。
"data": {
"type": 2, //1 图片 2文本。
"imgTxt": title,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//刷新网页
webAppComm.prototype.refreshWeb = function (callback) {
callback && callback();
if (this.needRefresh) {
location.reload();
}
}
// 35:打开游戏
webAppComm.prototype.goGame = function (mData) {
let obj = {
"cid": 35,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 36:播放動畫
webAppComm.prototype.playAnimate = function (mData) {
let obj = {
"cid": 36,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 37:web加载完毕
webAppComm.prototype.domReady = function (mData) {
let obj = {
"cid": 37,
"data": mData
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 38:web打开/关闭签到提醒
webAppComm.prototype.openSignRemind = function () {
let obj = {
"cid": 38,
"data": {
"msg": '打开签到提醒'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 39: 告知客户端渠道信息和uid
webAppComm.prototype.sendBindInfos = function (cid, uid, lang, type, origin) {
let obj = {
"cid": 39,
"data": {
"channelId": cid,
"agentUid": uid,
"lang": lang,
"bindType": type,
"origin": origin
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 40: 跳转任务界面
webAppComm.prototype.jumpToTask = function (type) {
let obj = {
"cid": 40,
"data": {
"taskType": type // 1:新手任务 2:每日任务 3:主播任务 4:奖励领取
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//41: 修改webview的背景底色
webAppComm.prototype.setBackground = function (color, color2) {
let obj = {
"cid": 41,
"data": {
"background": color, // # color值为HEX色值 例:#FFFFFF,
"AHEX": color2 // # color2值为AHEX色值 例:#FFFFFFFF,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//42: 手机振动
webAppComm.prototype.toVibrate = function (duration) {
let obj = {
"cid": 42,
"data": {
"duration": duration // # duration为振动的秒数
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//43: 修改webview宽高
webAppComm.prototype.setRatio = function (type, wr, hr, position, unit) {
let obj = {
"cid": 43,
"data": {
"type": type, //1活动框架 2游戏框架。
"width": wr, // #单位为vw 默认值为-1 未传或传-1时,则不修改宽度
"height": hr, //单位为vw 默认值为-1 未传或传-1时,则不修改高度
"position": position, // 1右贴边 2左贴边 默认右贴边。
"unit": unit, //单位 默认1 vw 2 pt
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//44: 调起第三方并获取OpenId(7570版本以上
webAppComm.prototype.vertify = function (type, callBackName) {
let obj = {
"cid": 44,
"data": {
"type": type, //1:QQ 2:微信 3:微博 4:Google 5:Twitter 6:FaceBook 8:line 9:appleId
"callBackName": callBackName,
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//45: 与客户端同步H5客服聊天消息
webAppComm.prototype.syncChatHis = function (type, content, timeStr) {
let obj = {
"cid": 45, //客服聊天用,与客户端同步本地发送信息
"data": {
"type": type, //1文字 2图片
"content": content,
"time": timeStr //发送聊天时间戳
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//46: 将图片存入相册
webAppComm.prototype.savePhoto = function (imgUrl) {
let obj = {
"cid": 46, //将图片存入相册
"data": {
'imgUrl': imgUrl //照片地址
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//47: 通知客户端直播奖励小窗抖动
webAppComm.prototype.liveShakes = function () {
let obj = {
"cid": 47,
"data": {
"msg": '窗口抖动'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 48:弹出用户行为规范弹窗
webAppComm.prototype.userBehaviorSpecification = function (type) {
let obj = {
"cid": 48,
"reqCode": new Date().getTime(),
"data": {
'type': type
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 49: base64格式图片保存到相册
webAppComm.prototype.saveImgToAlbum = function (imgUrl) {
let obj = {
"cid": 49,
"data": {
'base64Url': imgUrl //照片地址
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 50: 网页在直播间唤起输入框并且粘贴文本到输入框
webAppComm.prototype.evokeIptPasteText = function (text, closeType) {
let obj = {
"cid": 50,
"data": {
'content': text, //文本内容
'closeType': closeType //0:关闭输入框 1:不关闭输入框
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 51: 通知安卓客户端活动窗口宽高
webAppComm.prototype.setWidthHeigth = function (type, wr, hr, position, unit) {
let obj = {
"cid": 51,
"data": {
"type": type, //1活动框架 2游戏框架。
"width": wr, // #单位为vw 默认值为-1 未传或传-1时,则不修改宽度
"height": hr, //单位为vw 默认值为-1 未传或传-1时,则不修改高度
"position": position, // 1右贴边 2左贴边 默认右贴边。
"unit": unit, //单位 默认1 vw 2 pt
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 52:通知ios客户端返回home键高度
webAppComm.prototype.setHomeHeight = function () {
let obj = {
"cid": 52,
"data": {
"msg": '返回home键高度'
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 53:直播间跳转全屏任务中心页面
webAppComm.prototype.jumpToTaskCenter = function (type) {
let obj = {
"cid": 53,
"data": {
"taskType": type // 1:新手任务 2:每日任务 3:主播任务 4:奖励领取
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 54:添加系统日历提醒
webAppComm.prototype.calendarReminders = function (title, content, time, tipContent) {
let obj = {
"cid": 54,
"data": {
"title": title,
"content": content,
"time": time, //时间戳
"type": 1, // 1:只提醒一次 2:每周都提醒一次
"durationTime": 10,//持续时间
"reminderTime": 5,//提前多久提醒
"tipContent": tipContent // 添加日历提示内容
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
// 70: 跳转全屏任务界面
webAppComm.prototype.jumpToAllPageTask = function (type) {
let obj = {
"cid": 70,
"data": {
"taskType": type // 1:新手任务 2:每日任务 3:主播任务 4:奖励领取
}
}
let obj2 = JSON.stringify(obj);
webAppCollaboration(obj2);
}
//接收客戶端的消息
webAppComm.prototype.reMsgFromApp = function (callback) {
callback && callback();
}
webAppComm.prototype.url_get_params = function (url_path) {
let url = url_path;
let theRequest = new Object();
if (url.indexOf("?") != -1) {
let str = url.substr(url.indexOf("?") + 1);
strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
function webAppCollaboration(msg) {
let sUserAgent = navigator.userAgent.toLowerCase();
let bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
let bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
let bIsMidp = sUserAgent.match(/midp/i) == "midp";
let bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
let bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
let bIsAndroid = sUserAgent.match(/android/i) == "android";
let bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
let bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
}
else if (bIsAndroid) {
window.yazhai.appCollaboration(msg);
} else if (bIsIphoneOs || bIsIpad) {
window.webkit.messageHandlers.appCollaboration.postMessage(msg);
}
}
window.$firefly = new webAppComm();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment