miniapp-web-jsapi
Version:
JSAPI/View adapter for miniprogram running on the web
42 lines • 1.52 kB
JavaScript
import JsUtils from "../../utils/js-utils";
export function call(apiName, params) {
var _params$fail, _params$complete;
// 优先使用外部注册的
var func = jsApiExtensions[apiName];
if (func) {
return func.call(undefined, params);
}
// 使用挂载到 my 上的
func = window.my ? window.my[apiName] : undefined;
if (JsUtils.isFunction(func)) {
return func.call(undefined, params);
}
console.error("** JSAPI ".concat(apiName, " not exists!"));
params === null || params === void 0 ? void 0 : (_params$fail = params.fail) === null || _params$fail === void 0 ? void 0 : _params$fail.call(params, new Error("".concat(apiName, " is not exists")));
params === null || params === void 0 ? void 0 : (_params$complete = params.complete) === null || _params$complete === void 0 ? void 0 : _params$complete.call(params, {});
}
export var jsApiExtensions = {};
/**
* 注册 JSAPI 扩展
*
* @param apiName JSAPI 名称
* @param func JSAPI 执行方法
* @param attachToMy 是否挂载到全局的 my 对象上
*/
export function registerJsApiExtension(apiName, func, attachToMy) {
if (attachToMy) {
window.my[apiName] = func;
} else {
jsApiExtensions[apiName] = func;
}
}
/**
* 创建不支持的 JSAPI 实现
* @param apiName JSAPI 名称
* @param message 其他提示消息
*/
export function createUnsupportedJsApi(apiName, message) {
return function () {
console.warn("** [miniapp-web-jsapi] JSAPI ".concat(apiName, " unsupported: ").concat(message));
};
}