// 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: 振动 function webAppComm() { this.data = null; this.langList = [ { 'lang1': 'Events Rule', 'lang2': 'Refresh', 'lang3': 'Customer Service', 'lang4': 'Compartir', 'lang5': 'Event Zone', 'lang6': 'Close Page', 'lang7': 'DEWs', 'lang8': 'GEMs' }, //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) { 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: 跳转新人主播引导 "url": url, //41 42时传入礼物id。 "hideTitle": isHide // 1隐藏头部,0 不隐藏, 默认为0 } } 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.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); } //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.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) { let obj = { "cid": 39, "data": { "channelId": cid, "agentUid": uid, "lang": lang, "bindType": type } } 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); } //接收客戶端的消息 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();