xx-common
Version:
the functions of yd common
1,251 lines • 67.8 kB
JavaScript
"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