UNPKG

xx-common

Version:

the functions of yd common

1,251 lines 67.8 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // APP方法封装 var env_1 = require("../config/env"); var YdShare = __importStar(require("./share")); var iosBridge_1 = __importDefault(require("./iosBridge")); var nativeInt_1 = __importDefault(require("./nativeInt")); var APP = { middleFun: function () { // if (!window.tool.isYuedong()) { // window.global.toast("请打开悦动圈app进行操作"); // return // } var ag = [].slice.apply(arguments); var funName = ag.shift(); return APP[funName].apply(APP, ag); }, /** * 在外部跳转app页面,参数需要encode。http://wiki.17yund.me/doku.php?id=ios_universallink * ios最好使用vc_name! * android使用native_int * @param {*} url 跳转到网页的链接 * @param {*} from 来源 * @param {*} action 调本地界面 * @param {*} vc_name 界面类名 * @param {*} vc_params 需要带给界面的参数(json字符串) * @param {*} vc_direct_url 这种模式可以直接找ios组员给参数值 * @param {*} native_int 方式 数字 * @param {*} native_params 方式 参数 * @param {*} marketDetectUrl 下载监测链接 * @param {*} downloadPage 下载页跳转。market:跳转到应用市场,home:跳转到官网首页。ios都是跳官网,因为同时弹出app store和app体验不好 */ jumpAppPage: function (urlObj) { var url = urlObj.url, from = urlObj.from, action = urlObj.action, vc_name = urlObj.vc_name, vc_params = urlObj.vc_params, vc_direct_url = urlObj.vc_direct_url, native_int = urlObj.native_int, native_params = urlObj.native_params, marketDetectUrl = urlObj.marketDetectUrl, _a = urlObj.downloadPage, downloadPage = _a === void 0 ? "home" : _a; if (window.tool.isIosWeb()) { // 使用 universal link打开app var jumpUrl = "https://uljump.51yund.com/openApp?downloadPage=".concat(downloadPage).concat(url ? "&url_inside=" + encodeURIComponent(url) : "").concat(from ? "&from=" + encodeURIComponent(from) : "").concat(action ? "&action=" + encodeURIComponent(action) : "").concat(action === "to_local_vc" ? "&vc_open_type=push" : "").concat(vc_name ? "&vc_name=" + encodeURIComponent(vc_name) : "").concat(vc_params ? "&vc_params=" + encodeURIComponent(JSON.stringify(vc_params)) : "").concat(vc_direct_url ? "&vc_direct_url=" + encodeURIComponent(vc_direct_url) : "").concat(native_int ? "&native_int=" + encodeURIComponent(native_int) : "").concat(native_params ? "&native_params=" + encodeURIComponent(JSON.stringify(native_params)) : "").concat(marketDetectUrl ? "&marketDetectUrl=" + encodeURIComponent(JSON.stringify(marketDetectUrl)) : ""); window.location.href = jumpUrl; } else if (window.tool.isAndroidWeb()) { // 使用deeplink打开app window.location.href = "https://uljump.51yund.com/openApp?downloadPage=".concat(downloadPage).concat(url ? "&open_url=" + encodeURIComponent(url) : "").concat(from ? "&from=" + encodeURIComponent(from) : "").concat(native_int ? "&native_int=" + encodeURIComponent(native_int) : "").concat(native_params ? "&native_params=" + encodeURIComponent(JSON.stringify(native_params)) : "").concat(marketDetectUrl ? "&marketDetectUrl=" + encodeURIComponent(JSON.stringify(marketDetectUrl)) : ""); } else { // pc端打开 window.location.href = "https://www.51yund.com/?from=open_app"; } }, /****************************************************************************************** * **********客户端交互url********* * 函数名使用"yd"开始跟其他功能函数区分 * ******************************************************************************************/ //打开nativeInt 对应的页面,通过名字打开的方式 openNativeInt: function (name, parm) { if (parm === void 0) { parm = {}; } if (!window.tool.isYuedong()) return window.global.toast("亲,请在app内打开哦~"); var nativeObj = nativeInt_1.default[name]; if (!nativeObj) { return window.global.toast("请检查传入的NativeInt名字"); } var needArr = nativeObj.need; if (needArr && needArr.length > 0) { //需要传参数 for (var m = 0; m < needArr.length; m++) { var values = parm[needArr[m].key]; //目标值 if (needArr[m].require && !values) { //需要填而没有填 return window.global.toast(needArr[m].key + "为必填项,请检查"); } if (values && typeof values !== needArr[m].type) { //填了而类型不对 return window.global.toast(needArr[m].key + "类型必须为" + needArr[m].type); } } } var paramStr = ""; for (var i in parm) { paramStr += "&" + i + "=" + parm[i]; } if (window.tool.isIosWeb()) { var code = nativeObj.code || nativeObj.ios; // 这里临时注释掉,ios新方法里没有注册这个 // if(checkIosBridgeVailable()){ // iosBridgeCall('native_int_jump', Object.assign({native_int: code}, parm)) // return; // } var path = "/local_call?local_action=native_int_jump&native_int=" + code + paramStr; window.tool.iframeLocalCall(path); return; } else { var nativeInt = nativeObj.code || nativeObj.android; if (window.YDJSInterface && "jumpLocalByActionInfo" in window.YDJSInterface) { var parmObj = { native_int: nativeInt, }; if (paramStr) { parmObj.params = paramStr.slice(1); //去掉第一位的& } window.YDJSInterface.jumpLocalByActionInfo(JSON.stringify(parmObj)); return; } } window.global.toast("亲,请升级悦动圈app版本"); }, //打开nativeInt页面,通过接口返回code的方式打开 openNativeIntByCode: function (obj) { if (obj === void 0) { obj = {}; } if (!window.tool.isYuedong()) return window.global.toast("亲,请在app内打开哦~"); if (window.tool.isIosWeb()) { var path = "/local_call?local_action=native_int_jump&native_int=" + obj.native_int; if (obj.params) path += "&" + obj.params; window.tool.iframeLocalCall(path); return; } else { if (window.YDJSInterface && "jumpLocalByActionInfo" in window.YDJSInterface) { window.YDJSInterface.jumpLocalByActionInfo(JSON.stringify(obj)); return; } } window.global.toast("亲,请升级悦动圈app版本"); }, //app打开微信小程序 openMiniApp: function (originId, path, type) { //type 0:正式,1:测试,2:预览 if (window.tool.isAndroidWeb() && "jumpWxMiniProgram" in window.YDJSInterface) { window.YDJSInterface.jumpWxMiniProgram(String(originId), String(path), parseInt(type)); return; } if (window.tool.isIosWeb() && checkIosBridgeVailable()) { iosBridgeCall("open_wechat_mini_program", { user_name: originId, path: path, type: type, }); return; } window.global.toast("亲,请升级悦动圈app版本"); }, goMyFitness: function () { if (window.tool.isYuedong()) { if (window.tool.isIosWeb()) { var path = "/local_call?local_action=to_local_vc&&arg0=YDFitUserPlanViewController&arg1=push"; window.tool.iframeLocalCall(path); } else { window.YDJSInterface.jumpLocalByActionInfo("{native_int: 601}"); } } }, // 去资讯tab goInfoTab: function () { if (window.tool.isYuedong()) { if (window.tool.isIosWeb()) { window.tool.iframeLocalCall("/local_call?local_action=to_local_vc&vc_direct_url=%2FYDBaseTabBarController%2FYDCTCircleRootViewController"); return; } else if (window.YDJSInterface && "jumpLocalByActionInfo" in window.YDJSInterface) { var obj = { native_int: 503, }; window.YDJSInterface.jumpLocalByActionInfo(JSON.stringify(obj)); return; } window.global.toast("亲,请升级悦动圈app版本"); } }, setTitle: function (title) { if (!window.tool.isIosWeb() || !window.tool.isYuedong()) return; var path = "/local_call?local_action=set_vc_title&arg0=" + title; window.tool.iframeLocalCall(path); }, shareBitmap: function (obj) { var shareObj = obj.data; var cabk = obj.callback; if (!shareObj.base64Img) { window.global.toast("分享图片暂未生成!"); return; } if (window.tool.isAndroidWeb()) { var pic = shareObj.base64Img.replace(/^.*?,/, ""); if (window.YDJSInterface && "shareBase64ImgByPopupWindow" in window.YDJSInterface) { window.YDJSInterface.shareBase64ImgByPopupWindow(pic, shareObj.shareTitle, shareObj.shareContent, shareObj.shareUrl); } else { window.global.toast("请升级悦动圈app分享!"); } return; } shareObj.sharePicUrl = shareObj.base64Img; YdShare.setSimpleShare(shareObj, function () { if (cabk) { cabk(); } }); YdShare.onShare(this); }, // 获取app定位 ydGetPosition: function (cb) { if (window.tool.isYuedong()) { APP.ydGetPositionCb = cb; var version = window.tool.version; if (window.tool.isAndroidWeb()) { if (window.YDJSInterface && "requestLocation" in window.YDJSInterface) { window.YDJSInterface.requestLocation(); } } else { if (checkIosBridgeVailable()) { var cbSuccAbj = { callback: "onLocationRes" }; iosBridgeCall("request_location", cbSuccAbj); return; } var url = env_1.localPath + "/local_call?local_action=request_location&callback=onLocationRes"; window.tool.iframeLocalCall(url); } var timer_1 = setTimeout(function () { if (APP.ydGetPositionCb) { //客户端没有回调,可能是被禁止获取定位 window.tool.getBrowserPosition(cb); } timer_1 = null; }, 4000); } else { window.tool.getBrowserPosition(cb); } }, // 打开新窗口 openUrlByNewWindow: function (url) { if (!url) return; if (url.indexOf("http:") == -1 && url.indexOf("https:") == -1) { url = document.location.protocol + "//" + document.domain + url; } if (window.tool.isYuedong()) { if (window.YDJSInterface && "openWindow" in window.YDJSInterface) { window.YDJSInterface.openWindow(url); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("open_url_new_window", { arg0: url }); return; } url = encodeURIComponent(url); var path = "/local_call?local_action=open_url_new_window&arg0=" + url; window.tool.iframeLocalCall(path); return; } } window.location.href = url; }, ydVisitUserInfo: function (args) { if (!window.tool.isYuedong()) { window.global.toast("亲,请在app内打开哦~"); return; } if (window.tool.isIosWeb() && checkIosBridgeVailable()) { iosBridgeCall("personinfo", args.data); return; } window.location.href = "/local_call?local_action=personinfo&arg0=" + args.data.arg0; }, //跳转心肺复苏采集详情页 ydHeartLung: function (nativeInt, enterpriseId) { if (window.tool.isIosWeb()) { var path = "/local_call?local_action=native_int_jump&native_int=".concat(nativeInt, "&enterprise_id=").concat(enterpriseId); window.tool.iframeLocalCall(path); return; } if (window.YDJSInterface && "openLocalPageAndEnterprise" in window.YDJSInterface) { window.YDJSInterface.openLocalPageAndEnterprise(nativeInt, enterpriseId); return; } window.global.toast("亲,请升级悦动圈app版本"); }, //跳转课外体育首页 ydHome: function () { if (window.tool.isIosWeb() && checkIosBridgeVailable()) { iosBridgeCall("jump2footprint", { arg0: 0 }); return; } window.location.href = "/local_call?local_action=jumpToAppMain&arg0=0"; }, //开始走路 ydStartWalk: function () { if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("jump2footprint", { arg0: 0 }); return; } } window.location.href = "/local_call?local_action=jump2footprint&arg0=0"; }, //开始跑步-室外跑 ydStartRun: function (fromVal) { if (window.tool.isAndroidWeb()) { fromVal = fromVal || "web"; window.location.href = "/local_call?local_action=start_run&from=" + fromVal; return; } iosGoSport(0); }, //开始跑步-室内跑 ydStartRunInRoom: function (fromVal) { fromVal = fromVal || "web"; if (window.tool.isAndroidWeb()) { if (window.YDJSInterface && "startRunInRoom" in window.YDJSInterface) { window.YDJSInterface.startRunInRoom(fromVal); return; } } if (window.tool.isIosWeb() && window.tool.versionCompare(window.tool.version, "5.10.3") >= 0) { APP.openNativeInt("StartRunInRoom"); return; } window.global.toast("您暂未更新APP,无法体验此功能。请下载最新版悦动圈APP后,重新尝试。"); }, // 去徒步(android不能直接开始) ydStartHike: function (fromVal) { if (window.tool.isAndroidWeb()) { // android新版本直接开始 if (window.tool.versionCompare(window.tool.version, "3.3.4.2.0") >= 0) { fromVal = fromVal || "web"; window.location.href = "/local_call?local_action=start_hike&from=" + fromVal; return; } if (window.YDJSInterface && "startHikeSport" in window.YDJSInterface) { fromVal = fromVal || "web"; window.YDJSInterface.startHikeSport(fromVal); return; } } iosGoSport(6); }, // 去骑行 ydStartRide: function (fromVal) { if (window.tool.isAndroidWeb()) { fromVal = fromVal || "web"; window.location.href = "/local_call?local_action=sport_ride&from=" + fromVal; return; } iosGoSport(3); }, // 跳转平板撑 ydStartPlank: function (params) { var _params = Object.assign({}, { video_id: 29, page_type: 0, move_type: 2, android_ver: "3.3.2.2.2", ios_ver: "5.1.1", }, params); APP.ydStartAIMatch(_params); }, // 跳转俯卧撑 ydStartPushUps: function (params) { var _params = Object.assign({}, { video_id: 33, page_type: 0, move_type: 2, android_ver: "3.3.2.2.2", ios_ver: "5.1.1", }, params); APP.ydStartAIMatch(_params); }, // 跳转开合跳 ydStartOACJump: function (params) { var _params = Object.assign({}, { video_id: 2, page_type: 0, move_type: 1, android_ver: "3.3.2.2.2", ios_ver: "5.1.1", }, params); APP.ydStartAIMatch(_params); }, // 跳转仰卧起坐 ydStartSitUps: function (params) { var _params = Object.assign({}, { video_id: 40, page_type: 0, move_type: 2, android_ver: "3.3.2.2.2", ios_ver: "5.1.7", }, params); APP.ydStartAIMatch(_params); }, // 跳转引体向上 ydStartPullUps: function (params) { var _params = Object.assign({}, { video_id: 44, page_type: 0, move_type: 1, android_ver: "3.3.2.2.2", ios_ver: "5.1.7", }, params); APP.ydStartAIMatch(_params); }, // 跳转跳绳 ydStartJumpSkip: function (params) { var _params = Object.assign({}, { video_id: 45, page_type: 0, move_type: 1, android_ver: "3.3.2.2.2", ios_ver: "5.1.7", }, params); APP.ydStartAIMatch(_params); }, // 跳转左体侧运动 ydStartLeftSport: function (params) { var _params = Object.assign({}, { video_id: 4, page_type: 0, move_type: 1, android_ver: "3.3.2.2.2", ios_ver: "5.1.7", }, params); APP.ydStartAIMatch(_params); }, // 跳转右体侧运动 ydStartRightSport: function (params) { var _params = Object.assign({}, { video_id: 5, page_type: 0, move_type: 1, android_ver: "3.3.2.2.2", ios_ver: "5.1.7", }, params); APP.ydStartAIMatch(_params); }, // TODO 运动类型会越来越多,需要统一份配置,不做特殊函数处理 // 跳转AI运动开始界面 ydStartAIMatch: function (params) { // videoId平板撑29 俯卧撑33,开合跳 2 if (!window.tool.isYuedong()) return window.global.toast("本功能需要在悦动圈APP内使用。请下载最新版悦动圈APP后,重新尝试。"); var videoId = Number(params.video_id); // 视频ID var pageType = Number(params.page_type); // 非C端赛事类型 0,平板撑C端赛事类型 pageType=5,俯卧撑C端赛事类型pageType=6 var matchId = params.match_id ? Number(params.match_id) : 0; // C端赛事活动ID 此处不传给iOS B端传0 var mode = params.mode ? Number(params.mode) : 0; // AI运动模式 0 普通模式 2 限时模式 var limitTimes = params.limit_times && mode ? Number(params.limit_times) : 0; // 多长时间自动结束 var completeTip = params.complete_tip ? params.complete_tip : ""; // 结束后的提示 var moveType = Number(params.move_type); // 健身动作:1-竖向;2-横向 var androidVer = params.android_ver ? params.android_ver : "0"; // 所需Android版本 var iosVer = params.ios_ver ? params.ios_ver : "0"; // 所需ios版本 var difficulty = params.difficulty ? Number(params.difficulty) : 0; // 难易模式 0 普通 1 简单 (安卓新增) var groupRunId = params.groupRunId ? Number(params.groupRunId) : 0; // 广播体操id var group_id = params.group_id ? Number(params.group_id) : 0; var more_params = params.more_params ? JSON.stringify(params.more_params) : JSON.stringify({}); //其他参数的对象 // 跳转安卓的新方法 if (window.YDJSInterface && "toAICoachSingleTrainActivity" in window.YDJSInterface && window.tool.versionCompare(window.tool.version, androidVer) >= 0) { if (window.tool.versionCompare(window.tool.version, "5.9.0.2.5") >= 0) { var _params_1 = { video_id: videoId, match_id: matchId, page_type: pageType, limit_time: limitTimes, mode: mode, complete_tip: completeTip, move_type: moveType, more_params: more_params, difficulty: difficulty, group_id: group_id, }; window.YDJSInterface.toAICoachSingleTraining(JSON.stringify(_params_1)); } else if (window.tool.versionCompare(window.tool.version, "5.7.0.0.1") >= 0) { window.YDJSInterface.toAICoachSingleTrainActivity(videoId, matchId, pageType, limitTimes, moveType, difficulty, mode, groupRunId, more_params); } else { window.YDJSInterface.toAICoachSingleTrainActivity(videoId, matchId, pageType, limitTimes, moveType, difficulty, mode, groupRunId); } return; } var _params = { video_id: videoId, limit_times: limitTimes, mode: mode, complete_tip: completeTip, move_type: moveType, more_params: more_params, video_group_id: group_id, }; // 兼容iOS版本问题 if (window.tool.isIosWeb() && window.tool.versionCompare(window.tool.version, "5.8.5") == 0) { APP.openNativeInt("AIMatch", Object.assign({}, _params, { group_id: videoId })); return; } if (window.tool.isIosWeb() && window.tool.versionCompare(window.tool.version, iosVer) >= 0) { APP.openNativeInt("AIMatch", _params); return; } window.global.toast("您暂未更新APP,无法体验此功能。请下载最新版悦动圈APP后,重新尝试。"); }, /*** * 跳转运动记录封装 * name值有: * runSportRcord 跳转跑步运动记录 * ridingSportRcord 跳转骑行运动记录 * toreroSportRcord 跳转徒步运动记录 * fitnessSportRcord 跳转健身运动记录 * stepSportRcord 跳转计步运动记录 */ ydRecordMatch: function (name) { APP.openNativeInt(name); }, ydAiRecord: function () { if (window.tool.isIosWeb()) { var path = "/local_call?local_action=to_local_vc&arg0=YDAICoachHistoryRootViewController"; window.tool.iframeLocalCall(path); return; } if (window.YDJSInterface && "toAiCoachHistoryList" in window.YDJSInterface) { window.YDJSInterface.toAiCoachHistoryList(); return; } window.global.toast("亲,请升级悦动圈app版本"); }, // 跳转AI运动动作列表(可用于开始AI运动) ydGotoAICoach: function () { if (window.tool.isIosWeb()) { var path = "/local_call?local_action=native_int_jump&native_int=691"; window.tool.iframeLocalCall(path); return; } if (window.YDJSInterface && "toAICoach" in window.YDJSInterface) { window.YDJSInterface.toAICoach(); return; } if (window.tool.isYuedong()) { window.global.toast("亲,请升级悦动圈app版本"); return; } window.global.toast("亲,本功能需要在悦动圈APP内使用。请下载最新版悦动圈APP后,重新尝试。"); }, //打开话题落地页 例子:#零零落落# ydGoTheme: function (args) { var circleId = 0; if (window.tool.isAndroidWeb() && window.YDJSInterface && "goToTopicListToEditor" in window.YDJSInterface) { window.YDJSInterface.goToTopicListToEditor(parseInt(args.data.themeId), args.data.headerViewTitle, parseInt(circleId), true, true, true); return; } if (window.tool.isIosWeb()) { var themeObj = args.data; var topicIdObj = { showProgressForEditor: 1, confineTapForEditor: 1, aimCirclesForEditor: circleId, }; Object.assign(topicIdObj, themeObj); topicIdObj = JSON.stringify(topicIdObj); topicIdObj = encodeURIComponent(topicIdObj); if (checkIosBridgeVailable()) { var params = { arg0: "YDTopicViewController", arg1: 1, arg2: topicIdObj, }; iosBridgeCall("to_local_vc", params); return; } window.location.href = "/local_call?local_action=to_local_vc&arg0=YDTopicViewController&arg1=push&arg2=" + topicIdObj; return; } window.global.toast("亲,请升级悦动圈app版本"); }, //去发布动态 支持带图 ydAddImgToClentTopic: function (args) { // argsObj = { // circleId:1,//ios 话题发布到的圈子ID 带上id限制只能发到该圈子 不带可以选择用户加入的任何圈子 // //android则根据androidCanSelectCircle来判断是否可以选择圈子 androidCanSelectCircle=false的时候必须要带circleId 不然就不能发布成功啦 因为没有圈子可以选 // iosShowProgress:1,//是否显示发布动画 // base64Array:[],//base64图片数组 // urlArray:[],//url图片数组 安卓需要搭配androidPhotoIds一起使用才行 // androidPhotoIds:[],//安卓话题发布图片 urlArray数组 与photoId数组需一一对应 // androidShowProgress:true,//是否跳转进度页 // androidCanSelectTopic:true,//是否可以选择话题 // androidCanSelectCircle:true,//是否可以选择圈子 // aimTagItemObj:{themeId:"",themeTitle:""}//需要带话题发布的情况下 带上该对象 // } var argsObj = args.data; var version = window.tool.version; if (window.YDJSInterface) { var formatBase64Arr_1 = []; if (argsObj.base64Array.length > 0) { argsObj.base64Array.forEach(function (element, index) { formatBase64Arr_1[index] = element.replace(/^.*?,/, ""); }); } var themeId = parseInt(argsObj.aimTagItemObj.sub_theme_id) || 0; var themeTitle = "#" + argsObj.aimTagItemObj.tag + "#" || ""; if (formatBase64Arr_1.length > 0 || (argsObj.urlArray.length > 0 && argsObj.androidPhotoIds.length > 0)) { if ("publishPhotoDynamicToEditor" in window.YDJSInterface) { window.YDJSInterface.publishPhotoDynamicToEditor(themeId, themeTitle, parseInt(argsObj.circleId), argsObj.androidShowProgress, argsObj.androidCanSelectTopic, argsObj.androidCanSelectCircle, formatBase64Arr_1, argsObj.urlArray, argsObj.androidPhotoIds); } return; } if ("publishDynamicToEditor" in window.YDJSInterface) { window.YDJSInterface.publishDynamicToEditor(themeId, themeTitle, parseInt(argsObj.circleId), argsObj.androidShowProgress, argsObj.androidCanSelectTopic, argsObj.androidCanSelectCircle); return; } } if (window.tool.isIosWeb() && window.tool.versionCompare(version, "4.6.6") >= 0) { var imagesFromWeb = { imagesBase64Array: argsObj.base64Array, imagesURLArray: argsObj.urlArray, }; var aimTagItemObj = JSON.stringify(argsObj.aimTagItemObj); if (argsObj.base64Array.length > 0 || argsObj.urlArray.length > 0) { aimTagItemObj = JSON.parse(aimTagItemObj); } var topicIdObj = { commingSourceType: 7, showProgressVCWhenUpload: argsObj.iosShowProgress, aimTagItem: aimTagItemObj, aimCircleIds: argsObj.circleId, imagesFromWeb: imagesFromWeb, }; topicIdObj = JSON.stringify(topicIdObj); topicIdObj = encodeURIComponent(topicIdObj); if (checkIosBridgeVailable()) { var params = { arg0: "YDCircleEditorViewController", arg1: "push", arg2: topicIdObj, }; iosBridgeCall("to_local_vc", params); return; } var path = "/local_call?local_action=to_local_vc&arg0=YDCircleEditorViewController&arg1=push&arg2=" + topicIdObj; window.tool.iframeLocalCall(path); return; } window.global.toast("亲,请升级悦动圈app版本"); }, // 客户端下载base64图片 ydDownloadImgBase64: function (base64) { if (window.YDJSInterface && "saveBase64Image" in window.YDJSInterface) { window.YDJSInterface.saveBase64Image(base64); window.global.toast("图片下载中,请下拉系统菜单查看进度~"); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("download_img", { args0: base64 }); return; } var path = "/local_call?local_action=download_img&args0=" + base64; window.tool.iframeLocalCall(path); return; } window.global.toast("请升级版本后重试"); }, //客户端下载图片链接 ydDownloadImgSrc: function (picUrl) { // 下载图片后保存到相册 if (window.YDJSInterface && "downloadImageToAlbum" in window.YDJSInterface) { window.YDJSInterface.downloadImageToAlbum(picUrl); return; } // 下载图片后,但是没有保存到相册 if (window.YDJSInterface && "downloadBySystem" in window.YDJSInterface) { window.YDJSInterface.downloadBySystem(picUrl); window.global.toast("图片下载中,请下拉系统菜单查看进度~"); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("download_img", { args0: picUrl }); return; } var path = "/local_call?local_action=download_img&args0=" + picUrl; window.tool.iframeLocalCall(path); return; } window.global.toast("请升级版本后重试"); }, //web跳转客户端账号绑定 ydGoBind: function () { if (window.tool.isAndroidWeb()) { window.location.href = "/local_call?local_action=account_bind"; return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("account_bind"); return; } window.location.href = "/local_call?local_action=account_bind"; return; } window.global.toast("当前软件版本不支持跳转,请升级最新版本"); }, //web跳转客户端邀请好友 ydInviteNew: function (circleId) { if (window.tool.isAndroidWeb()) { window.location.href = "/local_call?local_action=invite_friend_circle&arg0=" + circleId; return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("invite_friend_circle", { args0: circleId }); return; } window.location.href = "/local_call?local_action=invite_friend_circle"; return; } window.global.toast("当前软件版本不支持跳转,请升级最新版本"); }, //获取设备信息 ydGetDeviceInfo: function () { var deviceInfo = {}; if (window.tool.isIosWeb()) { deviceInfo = { ver: window.tool.getCookieValue("ver"), device_id: window.tool.getCookieValue("device_id"), network_status: window.tool.getCookieValue("network_status"), language: window.tool.getCookieValue("language"), timezone: window.tool.getCookieValue("timezone"), locale: window.tool.getCookieValue("locale"), phone_type: window.tool.getCookieValue("phone_type"), os_version: window.tool.getCookieValue("os_version"), longitude: window.tool.getCookieValue("longitude"), latitude: window.tool.getCookieValue("latitude"), timestamp: window.tool.getCookieValue("timestamp"), scale: window.tool.getCookieValue("scale"), screen_width: window.tool.getCookieValue("screen_width"), screen_height: window.tool.getCookieValue("screen_height"), channel: window.tool.getCookieValue("channel"), //渠道 appstore之类的 }; } if (window.tool.isAndroidWeb() && window.YDJSInterface && "getDeviceInfo" in window.YDJSInterface) { deviceInfo = JSON.parse(window.YDJSInterface.getDeviceInfo()); } return deviceInfo; }, // 获取ios APP信息 getYodoIosInfo: function (cb) { if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("get_yodo_info", { callback: cb }); return; } window.location.href = "/local_call?local_action=get_yodo_info&callback=" + cb; return; } }, //关闭当前webView 退回客户端进web的页面 ydBackWebEntry: function (hideTip) { if (window.tool.isAndroidWeb() && "closeHeadlineRule" in window.YDJSInterface && "closeWebBrowser" in window.YDJSInterface) { window.YDJSInterface.closeWebBrowser(); window.YDJSInterface.closeHeadlineRule(); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("close_window"); return; } window.location.href = "/local_call?local_action=close_window"; return; } if (!hideTip) { window.global.toast("亲,当前版本不支持,请更新版本"); } }, //页面显示 回调方法 ydShowPage: function () { // operatePageCb('onShow'); }, ydHidePage: function () { // operatePageCb('onHide'); }, ydWillShowPage: function () { // operatePageCb('onWillShow'); }, ydWillHidePage: function () { // operatePageCb('onWillHide'); }, //打开勋章馆 ydOpenModel: function () { if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { var params = { arg0: "YDAchievementRootViewController", arg1: "push", arg2: "", }; iosBridgeCall("to_local_vc", params); return; } window.location.href = "/local_call?local_action=to_local_vc&arg0=YDAchievementRootViewController&arg1=push&arg2="; return; } if ("gotoAchievement" in window.YDJSInterface) { window.YDJSInterface.gotoAchievement(); return; } }, //客户端保存某个DOM 到相册 ydDownloadImg: function (domObj) { // domObj dom节点 在vue中使用 this.$refs.XXX; // pointXRadio dom x轴原点 相对于屏幕宽的 比例 0~1 // pointYRadio dom y轴原点 相对于屏幕高的 比例 0~1, // dowWidthRadio dom宽度 相对于屏幕宽的 比例 0~1, // dowHeightRadio dom高度 相对于屏幕高的 比例 0~1 // 安卓的高是相对于clientHeight ios的高是相对于文档的高度 document.body.scrollHeight // 这四个值类型不要进行parsInt 或者 parseFloat //如需全屏截图 起点为0,0,1,1 var clientHeight = document.documentElement.clientHeight || document.body.clientHeight; var clientWidth = document.documentElement.clientWidth || document.body.clientWidth; var offsetTop = domObj.getBoundingClientRect().top; var offsetleft = domObj.getBoundingClientRect().left; var domWidth = domObj.getBoundingClientRect().width; var domHeight = domObj.getBoundingClientRect().height; var pointXRadio = offsetleft / clientWidth; var pointYRadio = offsetTop / clientHeight; var dowWidthRadio = domWidth / clientWidth; var dowHeightRadio = domHeight / clientHeight; var version = window.tool.version; if (window.tool.isAndroidWeb() && window.YDJSInterface && "saveShareBitmap" in window.YDJSInterface) { window.YDJSInterface.saveShareBitmap(pointXRadio, pointYRadio, dowWidthRadio, dowHeightRadio); return; } if (window.tool.isIosWeb() && window.tool.versionCompare(version, "4.2.3") >= 0) { pointYRadio = offsetTop / document.body.scrollHeight; dowHeightRadio = domHeight / document.body.scrollHeight; // window.location.href = "/local_call?local_action=download_img_base_64&arg0="+imgData; var topicIdObj = "{" + "{" + pointXRadio + "," + pointYRadio + "}" + "," + "{" + dowWidthRadio + "," + dowHeightRadio + "}" + "}"; topicIdObj = JSON.stringify(topicIdObj); topicIdObj = encodeURIComponent(topicIdObj); if (checkIosBridgeVailable()) { var params = { arg0: topicIdObj }; iosBridgeCall("download_img_get_web_image", params); return; } window.location.href = "/local_call?local_action=download_img_get_web_image&arg0=" + topicIdObj; return; } window.global.toast("亲,当前版本不支持,请更新版本"); }, // 跳转到客户端加入圈子页面 ydGoCircle: function () { var userId = window.tool.getYdUserKey("user_id"); var url = "https://circle.51yund.com/circleMain/searchCircle?user_id=" + userId + "&circle_id=8&tab=1"; if (window.tool.isIosWeb() && window.tool.isYuedong()) { if (checkIosBridgeVailable()) { var params = { arg0: "YDCTFindMoreRootViewController" }; iosBridgeCall("to_local_vc", params); return; } url = "/local_call?local_action=to_local_vc&arg0=YDCTFindMoreRootViewController"; window.tool.iframeLocalCall(url); return; } window.location.href = url; }, //使用外部浏览器打开链接 ydOpenUrlByBrowser: function (url) { if (window.tool.isAndroidWeb() && window.YDJSInterface && "openUrlByBrowser" in window.YDJSInterface) { window.YDJSInterface.openUrlByBrowser(url); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("open_url_by_safari", { arg0: url }); return; } var path = "/local_call?local_action=open_url_by_safari&arg0=" + encodeURIComponent(url); window.tool.iframeLocalCall(path); return; } window.location.href = url; }, //当前网络是否是wifi isWifi: function () { var isWifi = false; if (window.tool.isAndroidWeb() && window.YDJSInterface && "isHasConnectedWifi" in window.YDJSInterface) { isWifi = window.YDJSInterface.isHasConnectedWifi(); } if (window.tool.isIosWeb()) { var networkStatue = window.tool.getCookieValue("network_status"); if (networkStatue == 2) { isWifi = true; } else { isWifi = false; } } return isWifi; }, //下拉刷新开关 pullRefresh: function (flag) { //falg 1禁用下拉刷新,0 开启 if (window.tool.isIosWeb()) { setTimeout(function () { if (checkIosBridgeVailable()) { iosBridgeCall("hide_pull_refresh", { arg0: flag }); return; } var url = "/local_call?local_action=hide_pull_refresh&arg0=" + flag; //arg0=1禁用下拉刷新,0未默认开启 window.tool.iframeLocalCall(url); }, 500); return; } if (window.YDJSInterface) { if ("setPageRefreshAble" in window.YDJSInterface) { window.YDJSInterface.setPageRefreshAble(!flag); } else if ("setPageRefresh" in window.YDJSInterface) { window.YDJSInterface.setPageRefresh(!flag); } } }, //跳转到话题详情 jumpTopicSubject: function (topicId, circle_id, videoFlag) { //videoFlag 0 普通话题(话题 视频)1 小视频 视频列表 var url = "http://circle.51yund.com/circleDiscussion?topic_id=" + topicId + "&hide_circle=true&oper_type=false"; if (window.tool.isYuedong()) { if (window.tool.isAndroidWeb()) { if ("jumpToArticleDetail" in window.YDJSInterface) { window.YDJSInterface.jumpToArticleDetail(parseInt(topicId), parseInt(videoFlag), parseInt(circle_id), false, "reloadFunc"); return; } if ("jumpTopicArticleDetail" in window.YDJSInterface) { window.YDJSInterface.jumpTopicArticleDetail(parseInt(topicId), parseInt(videoFlag)); return; } } if (window.tool.isIosWeb()) { var version = window.tool.version; if (window.tool.versionCompare(version, "3.6.9") >= 0) { var topicIdObj = { topicId: topicId, circleId: circle_id, accessToManage: false, sourceWebURL: window.location.href, }; topicIdObj = JSON.stringify(topicIdObj); topicIdObj = encodeURIComponent(topicIdObj); if (checkIosBridgeVailable()) { var params = { arg0: "YDCircleDetailViewController", arg1: "push", arg2: topicIdObj, }; iosBridgeCall("to_local_vc", params); return; } var path = "/local_call?local_action=to_local_vc&arg0=YDCircleDetailViewController&arg1=push&arg2=" + topicIdObj; window.tool.iframeLocalCall(path); return; } } } location.href = url; }, //跳转到客户端视频播放列表 jumpToVideoList: function (topicId, from) { var url = "https://sslwxsharecircle.51yund.com/topic/shareVideo?topic_id=" + topicId + "&is_share=true"; if (window.tool.isYuedong()) { if (window.tool.isAndroidWeb()) { if ("openCircleVideo" in window.YDJSInterface) { window.YDJSInterface.openCircleVideo(topicId, 3, false); return; } if ("openCircleVideoList" in window.YDJSInterface) { window.YDJSInterface.openCircleVideoList(topicId, 3); return; } } var version = window.tool.version; if (window.tool.versionCompare(version, "4.0.9") >= 0) { var topicIdObj = { topicID: topicId, from: from }; topicIdObj = JSON.stringify(topicIdObj); topicIdObj = encodeURIComponent(topicIdObj); if (checkIosBridgeVailable()) { var params = { arg0: "YDVideoPlayingListViewController", arg1: "push", arg2: topicIdObj, }; iosBridgeCall("to_local_vc", params); return; } window.location.href = "/local_call?local_action=to_local_vc&arg0=YDVideoPlayingListViewController&arg1=push&arg2=" + topicIdObj; return; } } window.location.href = url; }, //跳转到客户端健身计划页面 jumpClientHealthVideo: function (args) { //operType 默认“my” if (window.tool.isAndroidWeb()) { if ("gotoPrescriptionPlan" in window.YDJSInterface) { window.YDJSInterface.gotoPrescriptionPlan(parseInt(args.data.planId), parseInt(args.data.userPlanId), "my"); return; } if ("gotoFitnessPlan" in window.YDJSInterface) { window.YDJSInterface.gotoFitnessPlan(parseInt(args.data.planId), parseInt(args.data.userPlanId), "my"); return; } } if (window.tool.isIosWeb()) { var jumpClientObj = args.data; jumpClientObj = JSON.stringify(jumpClientObj); jumpClientObj = encodeURIComponent(jumpClientObj); if (checkIosBridgeVailable()) { var params = { arg0: "YDFitPlanDetailViewController", arg1: "push", arg2: jumpClientObj, }; iosBridgeCall("to_local_vc", params); return; } var path = "/local_call?local_action=to_local_vc&arg0=YDFitPlanDetailViewController&arg1=push&arg2=" + jumpClientObj; window.tool.iframeLocalCall(path); return; } window.global.toast("亲,当前版本不支持,请更新版本"); }, //跳转到web健身计划页面 jumpClientHealthVideoCourse: function (args) { if (window.tool.isAndroidWeb() && window.YDJSInterface && "openCoursePlayer" in window.YDJSInterface) { window.YDJSInterface.openCoursePlayer(513, args.data.course_id); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { var params = { native_int: 513 }; Object.assign(params, args.data); iosBridgeCall("native_int_jump", params); return; } var path = "/local_call?local_action=native_int_jump&native_int=513&course_id=" + args.data.course_id + "&plan_id=" + args.data.planId + "&is_user_plan=1&user_plan_id=" + args.data.userPlanId + "&day_time=" + args.data.day_time; window.tool.iframeLocalCall(path); return; } window.global.toast("亲,当前版本不支持,请更新版本"); }, //跳转到反馈页面 gotofeed: function () { if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("to_feedback"); return; } var url = "/local_call?local_action=to_feedback"; return window.tool.iframeLocalCall(url); } if (window.tool.isAndroidWeb() && window.YDJSInterface && "goToAliFeedBack" in window.YDJSInterface) { return window.YDJSInterface.goToAliFeedBack(); } window.global.toast("请打开悦动圈app进行反馈"); }, //扫描二维码 openScanCode: function (args) { APP.scanQrcodeCb = args.data.succ; if (window.tool.isAndroidWeb() && window.YDJSInterface && "openQRCodeScan" in window.YDJSInterface) { window.YDJSInterface.openQRCodeScan(); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { return iosBridgeCall("qr_code", { arg0: "greenroad" }); } var url = "local_call?local_action=qr_code&arg0=greenroad"; window.tool.iframeLocalCall(url); return; } window.global.toast("请升级最新版本使用该功能~"); }, //运动数据上报 tryRunDataReport: function (args) { if (window.tool.isAndroidWeb() && "tryRunDataReport" in window.YDJSInterface) { APP.androidReportCb = args.data.succ; window.YDJSInterface.tryRunDataReport(); return; } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { //ios localCall需要的回调方法的key 和名字 var cbSuccAbj = { arg0: "pushSucc" }; var cbFailAbj = { arg1: "pushFail" }; var params = formatIosBridgeArgs(args.data, cbSuccAbj, cbFailAbj); //如果不需要回调 方法调用如下:formatIosBridgeArgs(args) 这时的args里也不存在succ 和 fail // let params = formatIosBridgeArgs(args) iosBridgeCall("push_pedometer", params); } APP.pushSucc = args.data.succ; APP.pushFail = args.data.fail; var url = "/local_call?local_action=push_pedometer&arg0=pushSucc&arg1=pushFail"; window.tool.iframeLocalCall(url); } }, //跳转到微信公众号 gotoBindWeChat: function () { if (window.tool.isAndroidWeb()) { window.YDJSInterface.gotoWeChatOpenAccount(); } if (window.tool.isIosWeb()) { if (checkIosBridgeVailable()) { iosBridgeCall("wechat_rank"); return; } window.location.href = "/local_call?local_action=wechat_rank"; } }, viewAdVideo: function (args) { var version = window.tool.version; APP.ydViewAdVideoCb = args.data.finish; var tip = args.data.tip || "亲,请升级悦动圈app版本"; // 观看结束回调函数:window.onAdPlayFinish 参数值 1:观看完整 0: 未看完 if (window.tool.isYuedong()) { if (window.tool.isAndroidWeb()) { if (window.tool.versi