captain-ui
Version:
有赞vue wap业务组件库
58 lines (43 loc) • 1.19 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = weixinReady;
require("vant/es/toast/style");
var _toast = _interopRequireDefault(require("vant/es/toast"));
var isWaiting = false;
var waitingTimeout = 0;
function startWaiting(callback, fail, maxWaiting) {
if (maxWaiting === void 0) {
maxWaiting = 10000;
}
if (isWaiting) {
return;
} // 开始微信支付等待
isWaiting = true;
(0, _toast.default)({
type: 'loading',
duration: maxWaiting,
forbidClick: true
}); // 注册等待事件
document.addEventListener('WeixinJSBridgeReady', function () {
if (!isWaiting) {
return;
}
callback();
clearTimeout(waitingTimeout);
_toast.default.clear();
isWaiting = false;
}, false);
waitingTimeout = setTimeout(function () {
_toast.default.clear();
isWaiting = false;
fail();
}, maxWaiting);
}
function weixinReady(callback, fail) {
if (typeof window.WeixinJSBridge === 'object' && typeof window.WeixinJSBridge.invoke === 'function') {
callback();
} else {
startWaiting(callback, fail);
}
}