泰生活更新CDN和泰生活IOS方法返回

泰生活用于填充cdn更新内容和泰生活IOS方法返回

// ==UserScript==
// @name         泰生活更新CDN和泰生活IOS方法返回
// @namespace    http://tampermonkey.net/
// @version      0.1.17
// @description  泰生活用于填充cdn更新内容和泰生活IOS方法返回
// @author       zhangxx138
// @icon              data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAABpElEQVR4nO3Vv2uUQRDG8c/ebSMWqay0trATAxrUSi1S2AiWFoJYpNCgoBjURsHWJKeNRfAvsDgFixQqKdPZ2ViEiCJYBOQu8f1hEXO59713j7MUfLZ6d2a/O8vMO0OzDnin9Ku2Mjvuaw07xgSAYEVXe2indMhj92zpKJLnBhF8MDeye9hn6zbN70eRiqCw02Bra3up8BBLu1FEBxsBucXqW4csz0ULe4jorSCMuPU89boRELDMHiI6Y8V65bbCUTccc70RkaOwKLOg0IkyXa9qTjOu2LAs6NZuD86hrdTyxRNTkUqqdhXlHrngGRVEZsMpJwex9DxIZSHYclesIb65LCoHgIs66UJq6btDBZHZrPh8V6YBOX66LbOkTGckBYimBW2FVTNeuOZNyrFJ236Yl4NSy5SbVm1PDvhodqgyMledTdRlAtDzqfL9tfkwUtyaRkv9LwFj9B/w7wPycXOhqlJ0yZHKPChMi5MCiM47XhsopbVJAUHfrYbmN/EToN+02eLPfz9OYyZhFJzW1Jn3lTsxaKQjCkp52jy45r1ZvSbTb9M0d4PBozGZAAAAAElFTkSuQmCC
// @run-at       document-start
// @match        https://console.cloud.tencent.com/*
// @match        https://medicaluat.mobile.taikang.com/*
// @match        https://tklifetest.mobile.taikang.com/*
// @match        https://dentalgmall500.taikang.com/*
// @match        https://dentalmbybo500.taikang.com/*
// @match        https://pointsit500.taikang.com/*

// @match        https://tlifehealth.taikang.com/*
// @match        https://operation.mobile.taikang.com/*
// @match        https://operation.taikang.com/*
// @match        https://tklife.mobile.taikang.com/*
// @match        https://tshmall.wanyuhengtong.com/*
// @match        https://point.taikang.com/*
// @match        http://localhost/*
// @match        https://localhost/*
// @grant        none
// @license MIT
// ==/UserScript==


(function () {
    'use strict';

    // 刷新CDN
    if (location.hostname == 'console.cloud.tencent.com') {
        var id1 = 'cdn-my-test1'
        var id2 = 'cdn-my-test2'
        var $dom = document.createElement('div');
        $dom.id = id1;
        $dom.innerText = '健康cdn';
        document.body.appendChild($dom);
        var $dom2 = document.createElement('div');
        $dom2.id = id2;
        $dom2.innerText = '首页cdn';
        document.body.appendChild($dom2);
        var style = document.createElement('style');

        style.type = 'text/css';

        style.textContent = `
          #cdn-my-test1{
            position: fixed;
            right: 20px;
            bottom: 120px;
            z-index: 9999;
            width: 60px;
            height: 60px;
            line-height: 60px;
            border-radius: 50%;
            font-size: 12px;
            border: 1px solid #f00;
            text-align: center;
            color: #000;
            background-color: #ccc;
          }
          #cdn-my-test2{
            position: fixed;
            right: 20px;
            bottom: 40px;
            z-index: 9999;
            width: 60px;
            height: 60px;
            line-height: 60px;
            border-radius: 50%;
            font-size: 12px;
            border: 1px solid #f00;
            text-align: center;
            color: #000;
            background-color: #ccc;
          }
        `;
        function changeFn (str) {
            var list = document.getElementsByClassName('app-cdn-textarea')
            for (let i = 0; i < list.length; i++) {
                list[i].value = str
                var keyDownEvent = new KeyboardEvent('keydown', {
                    'keyCode': 13,
                    'bubbles': true,
                    'cancelable': true
                });
                list[i].dispatchEvent(keyDownEvent);
            }
        }
        document.getElementsByTagName('HEAD').item(0).appendChild(style);
        setTimeout(() => {
            var myTimer = setInterval(() => {
                var $dom = document.querySelector('.app-cdn-textarea');
                if ($dom) {

                    clearInterval(myTimer);
                    document.getElementById(id1).style.cssText =
                        'background-color: #fff;cursor: pointer;';
                    document.getElementById(id1).addEventListener('click', function (e) {
                        changeFn(`https://tlifehealth.taikang.com`)
                    });
                    document.getElementById(id2).style.cssText =
                        'background-color: #fff;cursor: pointer;';
                    document.getElementById(id2).addEventListener('click', function (e) {
                        changeFn(`https://tklife.mobile.taikang.com
https://operation.mobile.taikang.com`);
                    });
                }
            }, 500);
        }, 1000);
    }

    if (['localhost', 'medicaluat.mobile.taikang.com', 'tklifetest.mobile.taikang.com', 'dentalgmall500.taikang.com', 'dentalmbybo500.taikang.com', 'pointsit500.taikang.com', 'tlifehealth.taikang.com', 'operation.mobile.taikang.com', 'operation.taikang.com', 'tklife.mobile.taikang.com', 'tshmall.wanyuhengtong.com', 'point.taikang.com'].includes(location.hostname)) {
        var ua = navigator.userAgent.toLowerCase()
        if (
            !/TSH-iOS/i.test(ua)) { // 泰生活 ios) 
            return false;
        }
        // 保险的页面,会取本地的缓存
        localStorage.clear();
        sessionStorage.clear();

        var token = null;

        window.webkit = {
            messageHandlers: {
                NativeFunction: {
                    postMessage: async (paramsStr) => {

                        const obj = JSON.parse(paramsStr)
                        console.log('调用原生IOS的方法参数:', obj)
                        /**
                        callback: "setNavigationBarColor2"
                        command: "setNavigationBarColor"
                        parameter: {backgroundColor: '#FFFFFF'}
                         * 
                        */
                        var callbackData = {
                            data: '',
                            code: '0'
                        }
                        //解析各种方法 
                        // 不用回调的方法(纯设置原生的方法,返回啥都行的)
                        if (['hideNavAction', 'setNavigationBarColor', 'closePage', 'closePageAction', 'gobackAction', 'startRealName', 'setPopGestureForIOS', 'setWebViewBounces', 'MiniProgramAPM', 'backOrClose', 'changeDisplayMode', 'onPageStart', 'onAppEnterForeground', 'onBackPressed', 'onAppEnterBackground', 'onShow', 'showNavRightButtonAction', 'changeStatusBarTransparent', 'showNavAction', 'showsVerticalScrollIndicator'].includes(obj.command)) {
                            callbackData.data = true
                        }
                        // 自定义返回结果的
                        if (['startBusinessDetailPage', 'startHealthMianfeiwenzhen', 'openNativePage', 'startVipRightsKehujingli', 'startVipRightsTijianyuyue', 'startVipRightsACTijianyuyue', 'wealthEquityDetail', 'toChooseCity', 'miniOCRBaseUrl', 'newImageSelector', 'startBaseInformationPage', 'startBusinessProgress', 'startPolicySchedulePage', 'dismissPageAction', 'newChangePersonTelephone', 'downloadUpdateApp', 'changeAddress', 'faceLivenessRecognitionService', 'faceRecognitionService', 'insuranceFaceVerification', 'insuranceFaceMultipleIdentificationVerification', 'startRecommendManager', 'commonShortLink', 'openSpeechInput', 'compressImage', 'showNativeInputLayout', 'hideNativeInputLayout', 'onVoiceInputClickKeyBoard', 'onVoiceInputClickKeyEmoji', 'onVoiceInputClickKeyPLus', 'onShowVoiceAnimatorArea', 'onHideVoiceAnimatorArea', 'onReceiveVoiceInputData', 'startUpLoadTask', 'systemNotificationPopupNew', 'startPrivateDataUnlock', 'startUpLoadTask'].includes(obj.command)) {
                            var otherStr = window.prompt("暂不支持" + obj.command + ",自定义的返回结果:", '{"code":"0","data":true}');
                            callbackData = JSON.parse(otherStr)
                        }
                        // 需要回调的方法
                        // 登录
                        if (obj.command == 'loginService' || obj.command == 'loginServiceV2') {
                            token = token ? token : 'Bearer ' + await getToken()
                            callbackData.data = '已登录'
                            callbackData.token = token
                        }

                        // 获取token
                        if (obj.command == 'userJWTService') {
                            token = token ? token : 'Bearer ' + await getToken()
                            callbackData.data = {
                                token: token
                            }
                            // callbackData.token = token
                        }

                        // 获取设备信息
                        if (obj.command == 'deviceInfoService') {
                            callbackData.data = {
                                "mobileType": "iPhone13,2",
                                "deviceId": "E7CFD549-DE69-4E65-97E7-78AD39FC2C1A",
                                "systemVersion": "16.4.1",
                                "mobileBrand": "iPhone",
                                "appVersion": "6.32.0",
                                "terminalType": "IOS"
                            }
                        }
                        // 获取设备信息
                        if (obj.command == 'getSystemInfo') {
                            callbackData.data = { "safeArea": { "right": "0.0", "height": "763.0", "top": "47.0", "width": "390.0", "left": "0.0", "bottom": "34.0" }, "version": "6.32.0", "system": "iOS 16.4.1", "inHera": true, "windowHeight": "844.0", "deviceId": "E7CFD549-DE69-4E65-97E7-78AD39FC2C1A", "pixelRatio": "3.0", "screenHeight": "844.0", "SDKVersion": "2.6.0", "language": "zh_CN", "platform": "iOS", "windowWidth": "390.0", "model": "iPhone 12", "screenWidth": "390.0" }
                        }
                        // 关闭当前页面
                        if (['closePageAction', 'closePage'].includes(obj.command)) {
                            window.close()
                        }
                        // 返回上一个页面
                        if (['backOrClose', 'gobackAction'].includes(obj.command)) {
                            window.go(-1)
                        }
                        // 实名
                        if (obj.command == 'startRealName') {
                            alert('实名需要到   真实的原生页面才能实现')
                            callbackData.data = true
                        }
                        // 调用原生拍照功能
                        if (obj.command == 'routerService') {
                            alert('调用原生测气血   真实的原生页面才能实现')
                            callbackData.data = true
                        }
                        // 进入系统设置的泰生活通知设置页
                        if (obj.command == 'openMessageSettings') {
                            alert('模拟进入系统设置的泰生活通知设置页 成功')
                            callbackData.data = true
                        }
                        // 通过跳转h5调取原生支付
                        if (obj.command == 'pushH5pay') {
                            alert('通过跳转h5调取原生支付   真实的原生页面才能实现')
                            callbackData.data = true
                        }
                        //打开新页面
                        if (obj.command == 'startWebPage') {
                            callbackData.data = true
                            window.open(obj.parameter.url)
                        }
                        //查看pdf
                        if (obj.command == 'showPDF') {
                            callbackData.data = true
                            window.open(obj.parameter.url)
                        }
                        // 下载
                        if (obj.command == 'downloadHealthFile') {
                            callbackData.data = true
                            alert('模拟downloadHealthFile下载完成')
                        }
                        // 下载pdf
                        if (obj.command == 'downloadHealthFileV2') {
                            callbackData.data = true
                            alert('模拟downloadHealthFileV2下载完成')
                        }
                        // 处理原生url:startAppPage
                        if (obj.command == 'startAppPage') {
                            callbackData.data = true
                            alert('模拟 startAppPage 完成')
                        }
                        // 处理原生URL:startHome
                        if (obj.command == 'startHome') {
                            callbackData.data = true
                            alert('模拟 startHome 完成')
                        }
                        // 扫码
                        if (obj.command == 'QRCodeScanService' || obj.command == 'scanService') {
                            var QRCodeScanServiceStr = window.prompt("返回获取视频自动播放设置:", ' {"result": "https://www.baidu.com","code":"0"}');
                            callbackData = JSON.parse(QRCodeScanServiceStr)
                        }
                        // 选择图片
                        if (obj.command == 'chooseImage' || obj.command == 'toCamera' || obj.command == 'toPhotoAlbum') {
                            callbackData = { "data": { "localIds": ["tfile://tmp_3AE31B0E957CA6965E2AC7C395579A74.jpeg"], "localFiles": [{ "size": 1045078, "type": "image/jpeg", "orientation": "right", "width": 3024, "height": 4032, "localId": "tfile://tmp_3AE31B0E957CA6965E2AC7C395579A74.jpeg" }] }, "code": 0 }
                        }
                        // 选择PDF
                        if (obj.command == 'chooseFilePDF' || obj.command == 'healthAddPDFFile') {
                            callbackData = { "data": { "fileSize": 38975, "fileName": "pdf小.pdf", "state": "success", "filePath": "tfile://tmp_A290B1C31DB887A3D7E21C4830C2CBBF.pdf" }, "code": 0 }
                        }
                        // 上传返回
                        if (obj.command == 'uploadFile') {
                            // pdf 链接
                            if (obj.parameter.filePath.indexOf('pdf') > -1) {
                                var pdfCallBack = window.prompt("上传的结果,默认直接点确认:", '{ "data": { "code": "2000", "status": null, "data": { "limitFileUrl": "https://cloudhospital.taikang.com/cloudhospital/storage/file/get?fileId=Sm12cit2c1MrTnV3V0NoTllqSEFSU1E3T0UxeG8wNFp3eHdhUTVqeFF5Rmg0VUtObFd4bDROL3AvVlJiQXNGVw==@TL", "fileId": "3486e4b2db944db281c9fdba705f9c78", "fileUrl": "https://cloudhospital.taikang.com/cloudhospital/storage/file/get?fileId=3486e4b2db944db281c9fdba705f9c78", "fileRepoEntity": { "suffix": "pdf", "storageCode": "common", "format": null, "limitFileUrl": null, "size": "38.06KB", "storageChannel": "qingStor", "type": "image", "storageKey": "3272d97e-d36e-49c7-92b6-2c55465a726b", "name": "ecd9faa74cdd406cbaf08f32cbd83783.pdf", "fileUrl": null }, "fileRepo": { "suffix": "pdf", "storageCode": "common", "id": "3486e4b2db944db281c9fdba705f9c78", "size": "38.06KB", "storageChannel": "qingStor", "storageKey": "3272d97e-d36e-49c7-92b6-2c55465a726b", "type": "image", "createTime": 1733109323000, "name": "ecd9faa74cdd406cbaf08f32cbd83783.pdf" } }, "msg": "success" }, "statusCode": 0 }');
                                callbackData = JSON.parse(pdfCallBack)
                            } else {
                                // 图片 链接
                                var picCallBack = window.prompt("上传的结果,默认直接点确认", '{ "data": { "code": "2000", "status": null, "data": { "limitFileUrl": "https://cloudhospital.taikang.com/cloudhospital/storage/file/get?fileId=RlBOMFNnVFFmU1JOR3Ywd0RVWFlsZjB0cjNSVnRkcVNRaXJrS2FweElvRTFyOXllTmx0OFRvQ3pvRTZ3Ulg2Sw==@TL", "fileId": "6cd9b92d5c9f4315be8a706e648dd35d", "fileUrl": "https://cloudhospital.taikang.com/cloudhospital/storage/file/get?fileId=6cd9b92d5c9f4315be8a706e648dd35d", "fileRepoEntity": { "suffix": "jpeg", "storageCode": "common", "format": null, "limitFileUrl": null, "size": "1020.58KB", "storageChannel": "qingStor", "type": "image", "storageKey": "272caff4-e30c-4795-b6b5-f784c75f58e2", "name": "76a3b65335dd42b7a323b5507681d7cc.jpeg", "fileUrl": null }, "fileRepo": { "suffix": "jpeg", "storageCode": "common", "id": "6cd9b92d5c9f4315be8a706e648dd35d", "size": "1020.58KB", "storageChannel": "qingStor", "storageKey": "272caff4-e30c-4795-b6b5-f784c75f58e2", "type": "image", "createTime": 1733108862000, "name": "76a3b65335dd42b7a323b5507681d7cc.jpeg" } }, "msg": "success" }, "statusCode": 0 }');
                                callbackData = JSON.parse(picCallBack)
                            }

                        }
                        // 保存base64到本地
                        if (obj.command == 'saveBitmapToLocal') {
                            alert('模拟下载完成')
                            callbackData.data = true
                        }
                        // 保存图片
                        if (obj.command == 'saveImageToPhotosAlbum') {
                            alert('模拟下载完成')
                            callbackData.data = true
                        }
                        // 打开小应用
                        if (obj.command == 'startV2MiniProgram') {
                            alert('模拟打开小应用- startV2MiniProgram 成功')
                            callbackData.data = true
                        }
                        // 打电话
                        if (obj.command == 'makePhoneCall') {
                            alert('模拟打电话-makePhoneCall 成功')
                            callbackData.data = true
                        }
                        // 打开视频房间 
                        if (obj.command == 'startVideoRoom') {
                            alert('模拟打开视频房间-startVideoRoom 成功')
                            callbackData.data = true
                        }
                        // 分享
                        if (obj.command == 'onMenuShare') {
                            alert('模拟onMenuShare - 分享 成功')
                            callbackData.data = true
                        }
                        // 弹窗
                        if (obj.command == 'showModal') {
                            alert('模拟showModal - 弹窗 成功')
                            callbackData.data = true
                        }
                        // IMuploadfile 发送选取的图片到IM聊天中
                        if (obj.command == 'IMuploadfile') {
                            var IMuploadfileCallBack = window.prompt('IMuploadfile的回调', '{"code":0,"data":{"result": "success"}}')
                            callbackData = JSON.parse(IMuploadfileCallBack)
                        }
                        // checkAppAuthor 获取原生权限接口 
                        if (obj.command == 'checkAppAuthor' || obj.command == 'openAppSomeAuthors') {
                            var auths = obj.parameter.auths || obj.parameter.nativeParams.auths || []
                            let authsObj = {}
                            auths.forEach(element => {
                                authsObj[element] = true
                            });
                            callbackData.data = authsObj
                        }
                        //  定位
                        if (obj.command == 'getLocation' || obj.command == 'GPSService') {
                            var locationStr = window.prompt("定位信息返回,默认直接点确认:", '{"result":"1","data":{"district":"洪山区","city":"武汉市","longitude":"114.498154","formattedAddress":"湖北省武汉市洪山区花城北路靠近花山生态湿地公园","country":"中国","latitude":"30.561561","province":"湖北省"}}');
                            callbackData = JSON.parse(locationStr)
                        }
                        //  血氧
                        if (obj.command == 'bloodDetect') {
                            var bloodDetectStr = window.prompt("返回血氧,默认直接点确认:", '{"oxygen":90 ,"bpm": 80}');
                            callbackData = JSON.parse(bloodDetectStr)
                        }
                        // 朗读
                        if (obj.command == 'readText') {
                            alert('模拟 readText - 朗读 成功')
                            callbackData.data = true
                        }
                        // 终止朗读
                        if (obj.command == 'stopReadText') {
                            alert('模拟 stopReadText - 终止朗读 成功')
                            callbackData.data = true
                        }
                        // 在线问诊评价弹窗,参数写死的,去千语评价
                        if (obj.command == 'showRatingAlert') {
                            alert('模拟 showRatingAlert 在线问诊评价弹窗,参数写死的,去千语评价  成功')
                            callbackData.data = true
                        }
                        // 是否登录 token
                        if (obj.command == 'isUserLogin') {
                            callbackData.data = { result: token ? 1 : 0 }
                        }
                        // 设置缓存数据
                        if (obj.command == 'setStorage') {
                            callbackData.data = window.setStorage(obj.parameter.key, obj.parameter.data)
                        }
                        // 获取缓存数据
                        if (obj.command == 'getStorage') {
                            callbackData.data = window.getStorage(obj.parameter.key)
                        }
                        // 返回app配置的服务器地址和运营平台地址
                        if (obj.command == 'getServerUrl') {
                            var getServerUrlStr = window.prompt("返回app配置的服务器地址和运营平台地址,默认直接点确认:", '{"data":{"errMsg":"getServerUrl:ok","serverUrl":"http://tklifetest.mobile.taikang.com/","operationUrl":"https://medicaluat.mobile.taikang.com/active/"},"code":"0"}');
                            callbackData = JSON.parse(getServerUrlStr)
                        }
                        // 返回网络连接类型
                        if (obj.command == 'getNetworkType') {
                            var getNetworkTypeStr = window.prompt("返回app配置的服务器地址和运营平台地址,默认直接点确认:", '{"networkType":"mobile"}');
                            callbackData = JSON.parse(getNetworkTypeStr)
                        }
                        // OCR验证
                        if (obj.command == 'miniOCRService') {
                            var miniOCRServiceStr = window.prompt("返回aOCR验证-miniOCRService:", '{"startTime":"2019-10-08","endTime":"2039-10-08","imageInfo":{"type":"jpeg","filePath":"tfile://tmp_C519xxxxxxxxxx","company":"北京公安局","base64Str":"xxxxxxxxxxxxxxxxxxxxx"}}');
                            callbackData = JSON.parse(miniOCRServiceStr)
                        }
                        // 跳转特殊容器
                        if (obj.command == 'openSpecialWebviewV2' || obj.command == 'openSpecialWebview') {
                            alert('模拟 openSpecialWebviewV2 跳转特殊容器  成功')
                            callbackData.data = true
                        }
                        // toTKdoctor
                        if (obj.command == 'toTKdoctor') {
                            alert('模拟 toTKdoctor  成功')
                            callbackData.data = true
                        }

                        // startIMVoice
                        if (obj.command == 'startIMVoice') {
                            alert('模拟 startIMVoice  成功')
                            callbackData.data = true
                        }

                        // insertCalendar
                        if (obj.command == 'insertCalendar') {
                            alert('模拟 insertCalendar  成功')
                            callbackData.data = true
                        }
                        // 暂停、恢复语音合成(文字转语音)
                        if (obj.command == 'pauseReadText' || obj.command == 'resumeReadText') {
                            alert('模拟 pauseReadText || resumeReadText 暂停、恢复语音合成(文字转语音)  成功')
                            callbackData.data = true
                        }
                        // mapServiceNew 跳转地图详情页面
                        if (obj.command == 'mapServiceNew') {
                            alert('模拟 mapServiceNew 跳转地图详情页面  成功')
                            callbackData.data = true
                        }
                        // 分享微信小程序
                        if (obj.command == 'shareWXMiniProgramService') {
                            alert('模拟 shareWXMiniProgramService 分享微信小程序  成功')
                            callbackData.data = true
                        }
                        // 分享URL 卡片独立交互
                        if (obj.command == 'directShareUrl') {
                            alert('模拟 directShareUrl 分享URL 卡片独立交互  成功')
                            callbackData.data = true
                        }
                        // 微信分享纯文本
                        if (obj.command == 'shareTextToWXService' || obj.command == 'shareTextToWXServiceV2') {
                            alert('模拟 shareTextToWXService 微信分享纯文本  成功')
                            callbackData.data = true
                        }
                        // 分享图片
                        if (obj.command == 'directShareImg') {
                            alert('模拟 directShareImg 分享图片  成功')
                            callbackData.data = true
                        }
                        // 退出登录
                        if (obj.command == 'loginOutService') {
                            alert('模拟 loginOutService 退出登录  成功')
                            callbackData.data = true
                        }
                        // 分享(调起分享面板)
                        if (obj.command == 'shareAction') {
                            alert('模拟 shareAction 分享(调起分享面板)  成功')
                            callbackData.data = true
                        }

                        // 跳转手机设置
                        if (obj.command == 'openAppAuthorV2' || obj.command == 'openAppAuthor') {
                            alert('模拟 openAppAuthorV2 跳转手机设置  成功')
                            callbackData.data = true
                        }
                        // 查询周边Okase
                        if (obj.command == 'scanDrugBox' || obj.command == 'scanDrugBoxV2') {
                            var scanDrugBoxStr = window.prompt("返回查询周边Okase:", '{"code":"0","data":"HEXString"}');
                            callbackData = JSON.parse(scanDrugBoxStr)
                        }
                        // 操作cgm血糖仪
                        if (obj.command == 'cgmAction' || obj.command == 'cgmActionV2') {
                            var cgmActionStr = window.prompt("返回操作cgm血糖仪:", '{"code":"0","data":""}');
                            callbackData = JSON.parse(cgmActionStr)
                        }
                        // 获取用户手机号
                        if (obj.command == 'getUserMobile' || obj.command == 'getUserMobileV2') {
                            var getUserMobileStr = window.prompt("返回获取用户手机号:", '{"countryCode":"86","userMobile":"189****7976"}');
                            callbackData = JSON.parse(getUserMobileStr)
                        }
                        // 获取用户姓名
                        if (obj.command == 'userNameService' || obj.command == 'userNameServiceV2') {
                            var userNameServiceStr = window.prompt("返回获取用户姓名:", '{"userName":"张先生"}');
                            callbackData = JSON.parse(userNameServiceStr)
                        }

                        // 获取用户今日步数
                        if (obj.command == 'getTodayRunData' || obj.command == 'getTodayRunDataV2') {
                            var currentDate = formatDate(new Date(), 'yyyy-MM-dd'); 
                            var getTodayRunDataStr = window.prompt("返回获取用户今日步数:", `{"step":2133,"date": "${currentDate}"}`);
                            callbackData = JSON.parse(getTodayRunDataStr)
                        }
                        // 获取用户人脸数据
                        if (obj.command == 'faceDetectService' || obj.command == 'faceDetectServiceV2') {
                            var faceDetectServiceStr = window.prompt("返回获取用户人脸数据:", ' {"detectCode": 1}');
                            callbackData = JSON.parse(faceDetectServiceStr)
                        }
                        // 获取视频自动播放设置
                        if (obj.command == 'getVideoAutoPlay') {
                            var getVideoAutoPlayStr = window.prompt("返回获取视频自动播放设置:", ' {"status": "1","code":"0"}');
                            callbackData = JSON.parse(getVideoAutoPlayStr)
                        }
                        // 获取通知开关状态
                        if (obj.command == 'getNotificationsEnabled') {
                            var getNotificationsEnabledStr = window.prompt("返回获取通知开关状态:", ' {"enabled": "1","code":"0"}');
                            callbackData = JSON.parse(getNotificationsEnabledStr)
                        }
                        // 保存pdf到手机相册
                        if (obj.command == 'downloadPDF') {
                            var downloadPDFStr = window.prompt("返回保存pdf到手机相册:", ' {"result": "success","code":"0"}');
                            callbackData = JSON.parse(downloadPDFStr)
                        }
                        // 开启消息提醒弹窗
                        if (obj.command == 'userPushAlertAction') {
                            var userPushAlertActionStr = window.prompt("返回开启消息提醒弹窗:", ' { "event": "showOpenNotificationDialog", "status": "ok" }');
                            callbackData = JSON.parse(userPushAlertActionStr)
                        }
                        // 获取设备指纹
                        if (obj.command == 'getDeviceSecurityToken') {
                            var getDeviceSecurityTokenStr = window.prompt("返回获取设备指纹:", '{"data":{"securityToken":"6WOyEy6Hhq2BQo/4Xv69WKgQhd/d5I7QdNNdUQfwxMbRXiiB0TI0hKwqEF5hWJihsCn0GF2MrdQx9zl8UeQVPh+KoOdzZe1ZRvckkyop5NLc6/z7w0gclA=="},"code":0}');
                            callbackData = JSON.parse(getDeviceSecurityTokenStr)
                        }
                        // 从本地获取图片信息
                        if (obj.command == 'getChooseImageMsg') {
                            var getChooseImageMsgStr = window.prompt("返回从本地获取图片信息:", '{"data":{"localIds":["tfile://tmp_389164E761C5473131B0F81FBBAABF6A.jpeg"],"localFiles":[{"size":447599,"type":"image/jpeg","orientation":"up","width":721,"height":1280,"localId":"tfile://tmp_389164E761C5473131B0F81FBBAABF6A.jpeg"}]},"code":0}{"data":{"localIds":["tfile://tmp_389164E761C5473131B0F81FBBAABF6A.jpeg"],"localFiles":[{"size":447599,"type":"image/jpeg","orientation":"up","width":721,"height":1280,"localId":"tfile://tmp_389164E761C5473131B0F81FBBAABF6A.jpeg"}]},"code":0}');
                            callbackData = JSON.parse(getChooseImageMsgStr)
                        }
                        // 从本地获取视频信息
                        if (obj.command == 'getChooseVideoMsg') {
                            var getChooseVideoMsgStr = window.prompt("返回从本地获取视频信息:", '{"code":0,"data":{"size":5658069,"duration":5.295,"width":888,"height":1920,"localId":"tfile://tmp_AF605A10CEC96D1115FC64B3602B27D1.mp4"}}');
                            callbackData = JSON.parse(getChooseVideoMsgStr)
                        }




                        //执行回调
                        setTimeout(() => {

                            // 以下不用处理
                            if (!['getChooseImageMsg', 'getServerUrl', 'uploadFile'].includes(obj.command)) {
                                // 有些人写的项目 没有处理数据是放到 data中还是直接返回的 比如 原生有些返回{code:1, data:{name:'zs'}} 有些返回{code:1,name:'zs'} (健康这边统一方法有处理,有data返回data,没有直接返回。)  为了兼容某些没处理的项目
                                if (callbackData.data && Object.prototype.toString.call(callbackData.data) === "[object Object]") {
                                    callbackData = { ...callbackData, ...callbackData.data }
                                }
                            }

                            console.log(`%c  ${obj.command} - 模拟原生返回的值是:%o`, 'background-color:#0f0;color:#f00;font-size:20px;', callbackData)
                            var callbackJSON = JSON.stringify(callbackData)

                            if (obj.callback && window[obj.callback]) {
                                window[obj.callback](callbackJSON)
                            } else if (obj.command && window[obj.command]) {
                                window[obj.command](callbackJSON)
                            }
                        }, 200);

                    }
                }

            }
        }
        //formatDate(currentDate, 'yyyy-MM-dd HH:mm:ss');
        function formatDate (date, format) {
            if (!(date instanceof Date)) {
                if (typeof date === 'number') {
                    date = new Date(date);
                } else {
                    throw new Error('输入的参数不是有效的Date对象或时间戳');
                }
            }

            const year = date.getFullYear();
            const month = (date.getMonth() + 1).toString().padStart(2, '0');
            const day = date.getDate().toString().padStart(2, '0');
            const hours = date.getHours().toString().padStart(2, '0');
            const minutes = date.getMinutes().toString().padStart(2, '0');
            const seconds = date.getSeconds().toString().padStart(2, '0');

            return format
                .replace('yyyy', year)
                .replace('MM', month)
                .replace('dd', day)
                .replace('HH', hours)
                .replace('mm', minutes)
                .replace('ss', seconds);
        }
        // 获取token
        function getToken () {
            return new Promise((resolve, reject) => {
                // 线上直接返回即可
                if (['tlifehealth.taikang.com', 'operation.mobile.taikang.com', 'operation.taikang.com', 'tklife.mobile.taikang.com', 'tshmall.wanyuhengtong.com', 'point.taikang.com'].includes(location.hostname)) {
                    let token = '' // 这里需要自己 找后端去 日志 里拿token
                    !token && alert("没有线上token")
                    return resolve(token)
                }


                // 模拟手机号
                var mobile = window.prompt("请输入需要获取token的手机号:", "18031359654");
                // 假设你有一个JSON对象
                const jsonData = {
                    "verifyCode": "123456",
                    "mobile": mobile,
                    "deviceId": "111",
                    "deviceType": "1"
                };
                // 将JSON对象转换为字符串
                const jsonString = JSON.stringify(jsonData);
                // 使用fetch发送POST请求,包含JSON数据
                fetch('https://tklifetest.mobile.taikang.com/users/login/v2', {
                    method: 'POST', // 指定请求方法
                    headers: {
                        'Content-Type': 'application/json' // 设置请求头为JSON格式
                    },
                    body: jsonString // 将JSON字符串作为请求体
                }).then(response => {
                    if (response.ok) {
                        return response.json(); // 如果响应成功,解析JSON响应
                    }
                    throw new Error('Network response was not ok.'); // 如果响应不成功,抛出错误
                }).then(r => {
                    if (r.code == 0) {
                        resolve(r.data.token)
                    } else {
                        console.log(r)
                        reject(r)
                    }
                }).catch(error => console.error('There has been a problem with your fetch operation:', error)); // 捕获错误
            })
        }

        // 某些原生进入页面就会执行的方法
        setTimeout(() => {
            window.webviewDidFinishLoading && window.webviewDidFinishLoading()
            window.onGetCgmHistroy && window.onGetCgmHistroy()
            window.updateSeviveStatus && window.updateSeviveStatus()
            document.addEventListener("visibilitychange", function () {
                if (document.visibilityState === "visible") {
                    window.onResume && window.onResume()
                    window.onAppEnterForeground && window.onAppEnterForeground()
                } else {
                    window.onAppEnterBackground && window.onAppEnterBackground()
                }
            });
        }, 1000);
    }
})();