UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

162 lines (149 loc) 4.75 kB
import {invokeSuccess, invokeFail} from '../callback' import {handleMessage} from '../message' import {execUpesnBridgeify,canExecUpesnBridge} from '../bridge/index' let pullDownRefreshCallback, pullUpRefreshCallback, pullDownRefreshTimer, pullUpRefreshTimer; export function configureWebView(param = {}) { let {scrollViewBounces, pullDownRefresh, pullUpRefresh} = param; if (typeof scrollViewBounces == 'boolean') { let frameName = api.frameName; if (frameName) { api.setFrameAttr({ name: frameName, bounces: scrollViewBounces }); } else { api.setWinAttr({ bounces: scrollViewBounces }); } } if (typeof pullDownRefresh == 'boolean') { if (pullDownRefresh) { let pullDownRefreshInfo = param.pullDownRefreshInfo || {}; api.setCustomRefreshHeaderInfo({ bgColor: 'rgba(0,0,0,0)', ...pullDownRefreshInfo }, function() { if (pullDownRefreshTimer) { clearTimeout(pullDownRefreshTimer); } pullDownRefreshTimer = setTimeout(function(){ pullDownRefreshTimer = 0; api.refreshHeaderLoadDone(); }, 10000); pullDownRefreshCallback && handleMessage(pullDownRefreshCallback, {}); }); } } if (typeof pullUpRefresh == 'boolean') { if (!api.setRefreshFooterInfo) {return;}; if (pullUpRefresh) { let pullUpRefreshInfo = param.pullUpRefreshInfo || {}; api.setRefreshFooterInfo({ bgColor: 'rgba(0,0,0,0)', ...pullUpRefreshInfo }, function() { if (pullUpRefreshTimer) { clearTimeout(pullUpRefreshTimer); } pullUpRefreshTimer = setTimeout(function(){ pullUpRefreshTimer = 0; api.refreshFooterLoadDone(); }, 10000); pullUpRefreshCallback && handleMessage(pullUpRefreshCallback, {}); }); } } } export function onPullDownHandle(param = {}) { pullDownRefreshCallback = param.callback; invokeSuccess(param, {}); } export function startPullDownHandle(param = {}) { api.refreshHeaderLoading(); invokeSuccess(param, {}); } export function stopPullDownHandle(param = {}) { if (pullDownRefreshTimer) { clearTimeout(pullDownRefreshTimer); pullDownRefreshTimer = 0; } api.refreshHeaderLoadDone(); invokeSuccess(param, {}); } export function onPullUpHandle(param = {}) { pullUpRefreshCallback = param.callback; invokeSuccess(param, {}); } export function startPullUpHandle(param = {}) { api.refreshFooterLoading && api.refreshFooterLoading(); invokeSuccess(param, {}); } export function stopPullUpHandle(param = {}) { if (pullUpRefreshTimer) { clearTimeout(pullUpRefreshTimer); pullUpRefreshTimer = 0; } api.refreshFooterLoadDone && api.refreshFooterLoadDone(); invokeSuccess(param, {}); } export function isWebviewCanGoBack(param = {}) { if (canExecUpesnBridge()) { const isSuccess = execUpesnBridgeify('isWebviewCanGoBack', param); if (isSuccess) { return; } } api.historyBack({ query: true }, function(ret) { invokeSuccess(param, {result:ret.status}); }); } export function onWebviewGoBack(param = {}) { if (canExecUpesnBridge()) { const isSuccess = execUpesnBridgeify('onWebviewGoBack', param); if (isSuccess) { return; } } api.historyBack(function(ret) { if (ret.status) { invokeSuccess(param, {}); } else { invokeFail(param, {}); } }); } /** * 打开上拉网页弹窗 * @param {object} param */ export function openBottomSheetDialogue(param = {}) { // 透传给移动端 if (canExecUpesnBridge()) { execUpesnBridgeify('openBottomSheetDialogue', param); return; } // 私有版无函数实现 invokeFail(param, { code: "-10001", msg: "The current platform doesn't support this api" }); } /** * 关闭上拉网页弹窗 * @param {object} param */ export function closeBottomSheetDialogue(param = {}) { // 透传给移动端 if (canExecUpesnBridge()) { execUpesnBridgeify('closeBottomSheetDialogue', param); return; } // 私有版无函数实现 invokeFail(param, { code: "-10001", msg: "The current platform doesn't support this api" }); }