数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5321 lines
154 KiB

2 years ago
'use strict';
2 years ago
var win = typeof window !== "undefined" ? window : undefined;
var doc = typeof document !== "undefined" ? document : undefined;
var nav = typeof navigator !== "undefined" ? navigator : undefined;
var loc = typeof location !== "undefined" ? location : undefined;
2 years ago
function getHref() {
2 years ago
return (loc == null ? void 0 : loc.href) || "";
2 years ago
}
function getTitle() {
2 years ago
return (doc == null ? void 0 : doc.title) || "";
2 years ago
}
2 years ago
var _ua_match;
var ua = (nav == null ? void 0 : nav.userAgent) || "";
var platform = (nav == null ? void 0 : nav.platform) || "";
var wecomVersion = (_ua_match = ua == null ? void 0 : ua.match(/wxwork\/([\d.]+)/i)) == null ? void 0 : _ua_match[1];
2 years ago
var isWeCom = !!wecomVersion;
var isWeChat = !isWeCom && /micromessenger/i.test(ua);
var isAndroid = /\bAndroid\b/i.test(ua);
var isWindows = /Win/i.test(platform);
2 years ago
var _getAppleDeviceType = getAppleDeviceType();
var isIOS = _getAppleDeviceType.isIOS, isMac = _getAppleDeviceType.isMac;
2 years ago
function getAppleDeviceType() {
2 years ago
var _nav_maxTouchPoints;
var maxTouchPoints = (_nav_maxTouchPoints = nav == null ? void 0 : nav.maxTouchPoints) != null ? _nav_maxTouchPoints : 1;
2 years ago
var isMac = /Mac/i.test(platform);
// https://stackoverflow.com/questions/56934826/distinguish-between-ipad-and-mac-on-ipad-with-ipados
if (isMac && maxTouchPoints > 2) {
2 years ago
return {
isMac: false,
isIOS: true
};
2 years ago
}
2 years ago
return {
isMac: isMac,
isIOS: /\b(iPhone|iPad|iPod)\b/i.test(ua)
};
2 years ago
}
var registerOptions;
var corpConfigTask;
var agentConfigTask;
function setRegisterOptions(options) {
registerOptions = options;
}
function getRegisterOptions() {
return registerOptions;
}
function getCorpConfigTask() {
return corpConfigTask;
}
function setCorpConfigTask(task) {
corpConfigTask = task;
}
function getCorpConfigParams() {
2 years ago
var _corpConfigTask_getResult;
return (_corpConfigTask_getResult = corpConfigTask == null ? void 0 : corpConfigTask.getResult()) == null ? void 0 : _corpConfigTask_getResult.params;
2 years ago
}
function getAgentConfigTask() {
return agentConfigTask;
}
function setAgentConfigTask(task) {
agentConfigTask = task;
}
function getAgentConfigParams() {
2 years ago
var _agentConfigTask_getResult;
return (_agentConfigTask_getResult = agentConfigTask == null ? void 0 : agentConfigTask.getResult()) == null ? void 0 : _agentConfigTask_getResult.params;
2 years ago
}
function getConfigParams() {
var registerOptions = getRegisterOptions();
2 years ago
if (isWeCom && (registerOptions == null ? void 0 : registerOptions.getAgentConfigSignature)) {
2 years ago
return getAgentConfigParams();
}
return getCorpConfigParams();
}
function getConfigCorpId() {
var registerOptions = getRegisterOptions();
2 years ago
if (isWeCom && (registerOptions == null ? void 0 : registerOptions.getAgentConfigSignature)) {
var params = getAgentConfigParams();
return params == null ? void 0 : params.corpid;
2 years ago
}
2 years ago
var params1 = getCorpConfigParams();
return params1 == null ? void 0 : params1.appId;
2 years ago
}
/**
* 获取 config agentConfig 传入的相关参数
*
* 用于外部 sdk 调用私有方法
2 years ago
*/ function getVerifyParams() {
2 years ago
var verifyParams = getConfigParams();
if (!verifyParams) {
return;
}
var corpId = getConfigCorpId();
return {
appId: corpId,
verifyAppId: corpId,
2 years ago
verifySignType: "sha1",
2 years ago
verifyTimestamp: verifyParams.timestamp,
verifyNonceStr: verifyParams.nonceStr,
verifySignature: verifyParams.signature
};
}
2 years ago
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) resolve(value);
else Promise.resolve(value).then(_next, _throw);
}
function _async_to_generator(fn) {
return function() {
var self = this, args = arguments;
return new Promise(function(resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
2 years ago
};
}
function __generator(thisArg, body) {
2 years ago
var verb = function verb(n) {
return function(v) {
return step([
n,
v
]);
};
};
var step = function step(op) {
2 years ago
if (f) throw new TypeError("Generator is already executing.");
2 years ago
while(g && (g = 0, op[0] && (_ = 0)), _)try {
2 years ago
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
2 years ago
if (y = 0, t) op = [
op[0] & 2,
t.value
];
switch(op[0]){
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return {
value: op[1],
done: false
};
case 5:
_.label++;
y = op[1];
op = [
0
];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
2 years ago
default:
2 years ago
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
2 years ago
if (t[2]) _.ops.pop();
2 years ago
_.trys.pop();
continue;
2 years ago
}
op = body.call(thisArg, _);
2 years ago
} catch (e) {
op = [
6,
e
];
y = 0;
} finally{
f = t = 0;
}
if (op[0] & 5) throw op[1];
return {
value: op[0] ? op[1] : void 0,
done: true
};
};
var _ = {
label: 0,
sent: function sent() {
if (t[0] & 1) throw t[1];
return t[1];
},
trys: [],
ops: []
}, f, y, t, g;
return g = {
next: verb(0),
"throw": verb(1),
"return": verb(2)
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
return this;
}), g;
2 years ago
}
2 years ago
function _extends() {
_extends = Object.assign || function assign(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i];
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
2 years ago
}
2 years ago
return target;
};
return _extends.apply(this, arguments);
}
function _array_like_to_array(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
return arr2;
}
function _unsupported_iterable_to_array(o, minLen) {
if (!o) return;
if (typeof o === "string") return _array_like_to_array(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(n);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
}
function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
if (it) return (it = it.call(o)).next.bind(it);
// Fallback for engines without symbol support
if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
return function() {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
};
2 years ago
}
2 years ago
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2 years ago
}
var webToClientJsApiMap = {
2 years ago
config: "preVerifyJsApi",
onMenuShareTimeline: "menu:share:timeline",
onMenuShareAppMessage: "menu:share:appmessage",
onMenuShareWechat: "menu:share:wechat",
onMenuShareQQ: "menu:share:qq",
onMenuShareWeibo: "menu:share:weiboApp",
onMenuShareQZone: "menu:share:QZone",
previewImage: "imagePreview",
getLocation: "geoLocation",
openProductSpecificView: "openProductViewWithPid",
addCard: "batchAddCard",
openCard: "batchViewCard",
chooseWXPay: "getBrandWCPayRequest",
openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
startSearchBeacons: "startMonitoringBeacons",
stopSearchBeacons: "stopMonitoringBeacons",
onSearchBeacons: "onBeaconsInRange",
consumeAndShareCard: "consumedShareCard",
openAddress: "editAddress",
getBrandWCPayRequest: "getBrandWCPayRequest"
2 years ago
};
var clientToWebJsApiMap = {};
2 years ago
for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(webToClientJsApiMap)), _step; !(_step = _iterator()).done;){
var key = _step.value;
2 years ago
clientToWebJsApiMap[webToClientJsApiMap[key]] = key;
}
function mapJsApiNameToClient(name) {
return webToClientJsApiMap[name] || name;
}
function mapJsApiNameToWeb(name) {
return clientToWebJsApiMap[name] || name;
}
function mapJsApiListToClient(list) {
return list.map(mapJsApiNameToClient);
}
2 years ago
function _array_without_holes(arr) {
if (Array.isArray(arr)) return _array_like_to_array(arr);
}
function _iterable_to_array(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
return Array.from(iter);
}
}
function _non_iterable_spread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _to_consumable_array(arr) {
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
}
2 years ago
function error() {
2 years ago
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
2 years ago
}
2 years ago
var _console;
(_console = console).error.apply(_console, [
"[wwsdk]"
].concat(_to_consumable_array(args))); // eslint-disable-line no-console
2 years ago
}
var originalHref = getHref();
/**
* 两个 SemVer 相减取差的符号
2 years ago
*/ function semverSubtract(v1, v2) {
var v1Seg = (v1 == null ? void 0 : v1.split(".")) || [];
var v2Seg = (v2 == null ? void 0 : v2.split(".")) || [];
for(var i = 0, ii = Math.max(v1Seg.length, v2Seg.length); i < ii; i++){
2 years ago
var v1Num = parseInt(v1Seg[i]) || 0;
var v2Num = parseInt(v2Seg[i]) || 0;
if (v1Num > v2Num) {
return 1;
}
if (v1Num < v2Num) {
return -1;
}
}
return 0;
}
function arrayBufferToBase64(buffer) {
2 years ago
if (typeof Buffer !== "undefined") {
return Buffer.from(buffer).toString("base64");
2 years ago
}
2 years ago
var binary = "";
2 years ago
var bytes = new Uint8Array(buffer);
var len = bytes.byteLength;
2 years ago
for(var i = 0; i < len; i++){
2 years ago
binary += String.fromCharCode(bytes[i]);
}
return btoa(binary);
}
function base64ToArrayBuffer(base64) {
2 years ago
if (typeof Buffer !== "undefined") {
return Buffer.from(base64, "base64").buffer;
2 years ago
}
var binary = atob(base64);
var length = binary.length;
var bytes = new Uint8Array(length);
2 years ago
for(var i = 0; i < length; i++){
2 years ago
bytes[i] = binary.charCodeAt(i);
}
return bytes.buffer;
}
function safeRun(fn, param) {
if (!isFunction(fn)) {
return;
}
try {
return fn(param);
2 years ago
} catch (error$1) {
2 years ago
error(error$1);
}
}
function startsWith(str, search) {
return str.slice(0, search.length) === search;
}
function getSignURL(original) {
if (original) {
2 years ago
return originalHref.split("#")[0];
2 years ago
}
2 years ago
return getHref().split("#")[0];
2 years ago
}
function extractErrMsgKeyword(errMsg) {
if (!isString(errMsg)) {
2 years ago
return "";
2 years ago
}
2 years ago
return errMsg.slice(errMsg.indexOf(":") + 1);
2 years ago
}
function isFalsy(val) {
return val === false || val === 0;
}
// eslint-disable-next-line @typescript-eslint/ban-types
function isObject(val) {
if (!val) {
return false;
}
2 years ago
return typeof val === "object";
2 years ago
}
function isFunction(val) {
2 years ago
return typeof val === "function";
2 years ago
}
function isString(val) {
2 years ago
return typeof val === "string";
2 years ago
}
function joinList(list) {
if (!list) {
return list;
}
if (isString(list)) {
return list;
}
2 years ago
return list.join(";");
2 years ago
}
/**
* WeixinJSBridge 是否已注入到 window
2 years ago
*/ exports.isWeixinJSBridgeReady = !!(win == null ? void 0 : win.WeixinJSBridge);
2 years ago
/**
* 等待 WeixinJSBridge 注入到 window
2 years ago
*/ exports.onWeixinJSBridgeReady = Promise.resolve();
2 years ago
if (!exports.isWeixinJSBridgeReady) {
2 years ago
exports.onWeixinJSBridgeReady = new Promise(function(resolve) {
doc == null ? void 0 : doc.addEventListener("WeixinJSBridgeReady", function() {
2 years ago
exports.isWeixinJSBridgeReady = true;
resolve();
});
});
}
/**
* 监听 JSSDK 未定义的事件
*
* @example
* ```ts
* ww.on('onBeaconsInRange', res => {
* console.log(res)
* })
* ```
*
* @param name 事件名称
* @param callback 监听回调
2 years ago
*/ function on(name, callback) {
return _on.apply(this, arguments);
}
function _on() {
_on = _async_to_generator(function(name, callback) {
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
if (!!exports.isWeixinJSBridgeReady) return [
3,
2
];
return [
4,
exports.onWeixinJSBridgeReady
];
2 years ago
case 1:
2 years ago
_state.sent();
_state.label = 2;
2 years ago
case 2:
win.WeixinJSBridge.on(name, callback);
2 years ago
return [
2
];
2 years ago
}
});
});
2 years ago
return _on.apply(this, arguments);
2 years ago
}
/**
* 调用 JSSDK 未定义的 JSAPI
*
* @example
* ```ts
* ww.invoke('openEnterpriseChat', params, res => {
* console.log(res)
* })
* ```
*
* @param name JSAPI 名称
* @param params JSAPI 参数
* @param callback 回调函数
* @returns JSAPI 返回值
2 years ago
*/ function invoke(name) {
return _invoke.apply(this, arguments);
}
function _invoke() {
_invoke = _async_to_generator(function(name, params, callback) {
2 years ago
var result, keyword;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
if (params === void 0) params = {};
if (!!exports.isWeixinJSBridgeReady) return [
3,
2
];
return [
4,
exports.onWeixinJSBridgeReady
];
2 years ago
case 1:
2 years ago
_state.sent();
_state.label = 2;
case 2:
return [
4,
new Promise(function(resolve) {
var fullParams = _extends({}, params, getVerifyParams());
win.WeixinJSBridge.invoke(name, fullParams, resolve);
})
];
2 years ago
case 3:
2 years ago
result = _state.sent();
2 years ago
if (!result.errMsg) {
result.errMsg = formatErrMsg(name, result.err_msg || result.errmsg);
}
keyword = extractErrMsgKeyword(result.errMsg);
if (result.errCode == null) {
if (result.err_code != null) {
result.errCode = result.err_code;
2 years ago
} else {
result.errCode = keyword === "ok" ? 0 : -1;
2 years ago
}
}
safeRun(callback, result);
2 years ago
if (keyword !== "ok") {
2 years ago
throw result;
}
2 years ago
return [
2,
result
];
2 years ago
}
});
});
2 years ago
return _invoke.apply(this, arguments);
2 years ago
}
function formatErrMsg(name, errMsg) {
var apiName = mapJsApiNameToWeb(name);
if (!errMsg) {
2 years ago
return "" + apiName + ":ok";
2 years ago
}
var keyword = extractErrMsgKeyword(errMsg);
2 years ago
if (keyword === "confirm") {
keyword = "ok";
2 years ago
}
2 years ago
if (keyword === "failed") {
keyword = "fail";
2 years ago
}
2 years ago
if (startsWith(keyword, "failed_")) {
2 years ago
keyword = keyword.slice(7);
}
2 years ago
if (startsWith(keyword, "fail_")) {
2 years ago
keyword = keyword.slice(5);
}
2 years ago
keyword = keyword.replace(/_/g, "").toLowerCase();
if (keyword === "access denied" || keyword === "no permission to execute") {
keyword = "permission denied";
2 years ago
}
2 years ago
if (apiName === "config" && keyword === "function not exist") {
keyword = "ok";
2 years ago
}
if (!keyword) {
2 years ago
keyword = "fail";
2 years ago
}
2 years ago
return apiName + ":" + keyword;
2 years ago
}
2 years ago
function _set_prototype_of(o, p) {
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _set_prototype_of(o, p);
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) _set_prototype_of(subClass, superClass);
}
function _is_native_reflect_construct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
return true;
} catch (e) {
return false;
}
}
function _construct(Parent, args, Class) {
if (_is_native_reflect_construct()) _construct = Reflect.construct;
else {
_construct = function construct(Parent, args, Class) {
var a = [
null
];
a.push.apply(a, args);
var Constructor = Function.bind.apply(Parent, a);
var instance = new Constructor();
if (Class) _set_prototype_of(instance, Class.prototype);
return instance;
};
}
return _construct.apply(null, arguments);
}
function _get_prototype_of(o) {
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _get_prototype_of(o);
}
function _is_native_function(fn) {
return Function.toString.call(fn).indexOf("[native code]") !== -1;
}
function _wrap_native_super(Class) {
var _cache = typeof Map === "function" ? new Map() : undefined;
_wrap_native_super = function _wrap_native_super(Class) {
var Wrapper = function Wrapper() {
return _construct(Class, arguments, _get_prototype_of(this).constructor);
};
if (Class === null || !_is_native_function(Class)) return Class;
if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
if (typeof _cache !== "undefined") {
if (_cache.has(Class)) return _cache.get(Class);
_cache.set(Class, Wrapper);
}
Wrapper.prototype = Object.create(Class.prototype, {
constructor: {
value: Wrapper,
enumerable: false,
writable: true,
configurable: true
}
});
return _set_prototype_of(Wrapper, Class);
};
return _wrap_native_super(Class);
}
var SDKError = /*#__PURE__*/ function(Error1) {
_inherits(SDKError, Error1);
2 years ago
function SDKError(message) {
2 years ago
return Error1.call(this, "SDK Error: " + message);
2 years ago
}
return SDKError;
2 years ago
}(_wrap_native_super(Error));
var AbortError = /*#__PURE__*/ function(SDKError) {
_inherits(AbortError, SDKError);
2 years ago
function AbortError() {
2 years ago
return SDKError.call(this, "Aborted");
2 years ago
}
return AbortError;
2 years ago
}(SDKError);
2 years ago
var CONFIG_TYPE_CORP = 1;
var CONFIG_TYPE_AGENT = 2;
2 years ago
var ConfigTask = /*#__PURE__*/ function() {
2 years ago
function ConfigTask(type, factory) {
this.type = type;
this.useOriginalURL = isWeChat && !isWindows && !isMac && type === CONFIG_TYPE_CORP;
this.url = getSignURL(this.useOriginalURL);
this.promise = this.awaitPromise(factory(this.url));
}
2 years ago
var _proto = ConfigTask.prototype;
_proto.checkValid = function checkValid() {
2 years ago
if (isWeCom && this.url !== getSignURL(this.useOriginalURL)) {
this.error = new AbortError();
}
return !this.error;
};
2 years ago
_proto.getResult = function getResult() {
2 years ago
if (this.checkValid()) {
return this.result;
}
};
2 years ago
_proto.awaitPromise = function awaitPromise(promise) {
var _this = this;
return _async_to_generator(function() {
var error;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
_state.trys.push([
0,
2,
,
3
]);
return [
4,
promise
];
2 years ago
case 1:
2 years ago
_this.result = _state.sent();
return [
2,
_this.result
];
2 years ago
case 2:
2 years ago
error = _state.sent();
_this.error = error;
throw error;
case 3:
return [
2
];
2 years ago
}
});
2 years ago
})();
2 years ago
};
return ConfigTask;
2 years ago
}();
2 years ago
/**
* 触发或等待 config 返回
2 years ago
*/ function ensureCorpConfigReady() {
return _ensureCorpConfigReady.apply(this, arguments);
}
function _ensureCorpConfigReady() {
_ensureCorpConfigReady = _async_to_generator(function() {
2 years ago
var originalTask, task;
2 years ago
return __generator(this, function(_state) {
2 years ago
originalTask = getCorpConfigTask();
2 years ago
if (originalTask == null ? void 0 : originalTask.checkValid()) {
return [
2,
originalTask.promise
];
2 years ago
}
2 years ago
task = new ConfigTask(CONFIG_TYPE_CORP, /*#__PURE__*/ _async_to_generator(function(url) {
2 years ago
var registerOptions, data, params, result;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
registerOptions = getRegisterOptions();
2 years ago
if (!(registerOptions == null ? void 0 : registerOptions.getConfigSignature)) {
throw new SDKError("Missing getConfigSignature");
2 years ago
}
2 years ago
return [
4,
registerOptions.getConfigSignature(url)
];
2 years ago
case 1:
2 years ago
data = _state.sent();
2 years ago
if (!task.checkValid()) {
throw new AbortError();
}
params = buildCorpConfigParams(registerOptions, data);
2 years ago
return [
4,
invoke("preVerifyJSAPI", {
2 years ago
appId: params.appId,
verifyJsApiList: params.jsApiList,
verifyOpenTagList: params.openTagList,
verifyAppId: params.appId,
2 years ago
verifySignType: "sha1",
2 years ago
verifyTimestamp: params.timestamp,
verifyNonceStr: params.nonceStr,
verifySignature: params.signature
2 years ago
})
];
2 years ago
case 2:
2 years ago
result = _state.sent();
2 years ago
if (!task.checkValid()) {
throw new AbortError();
}
2 years ago
return [
2,
{
params: params,
result: result
}
];
2 years ago
}
});
2 years ago
}));
task.promise.then(function(res) {
2 years ago
var registerOptions = getRegisterOptions();
2 years ago
safeRun(registerOptions == null ? void 0 : registerOptions.onConfigSuccess, res.result);
safeRun(registerOptions == null ? void 0 : registerOptions.onConfigComplete, res.result);
}, function(error) {
2 years ago
var registerOptions = getRegisterOptions();
2 years ago
safeRun(registerOptions == null ? void 0 : registerOptions.onConfigFail, error);
safeRun(registerOptions == null ? void 0 : registerOptions.onConfigComplete, error);
2 years ago
});
setCorpConfigTask(task);
2 years ago
return [
2,
task.promise
];
2 years ago
});
});
2 years ago
return _ensureCorpConfigReady.apply(this, arguments);
2 years ago
}
function buildCorpConfigParams(options, data) {
return {
appId: options.corpId,
2 years ago
timestamp: "" + data.timestamp,
2 years ago
nonceStr: data.nonceStr,
signature: data.signature,
2 years ago
jsApiList: mapJsApiListToClient(options.jsApiList || [
"config"
]),
2 years ago
openTagList: mapJsApiListToClient(options.openTagList || [])
};
}
/**
* 触发或等待 agentConfig 返回
2 years ago
*/ function ensureAgentConfigReady() {
return _ensureAgentConfigReady.apply(this, arguments);
}
function _ensureAgentConfigReady() {
_ensureAgentConfigReady = _async_to_generator(function() {
2 years ago
var originalTask, task;
2 years ago
return __generator(this, function(_state) {
2 years ago
originalTask = getAgentConfigTask();
2 years ago
if (originalTask == null ? void 0 : originalTask.checkValid()) {
return [
2,
originalTask.promise
];
2 years ago
}
2 years ago
task = new ConfigTask(CONFIG_TYPE_AGENT, /*#__PURE__*/ _async_to_generator(function(url) {
var configPromise, _ref, params, result;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
if (isWeCom && semverSubtract(wecomVersion, "3.0.24") < 0) {
2 years ago
configPromise = ensureCorpConfigReady();
}
2 years ago
return [
4,
Promise.all([
2 years ago
resolveAgentConfigParams(url),
2 years ago
configPromise
])
];
2 years ago
case 1:
2 years ago
_ref = _state.sent(), params = _ref[0];
2 years ago
if (!task.checkValid()) {
throw new AbortError();
}
2 years ago
return [
4,
invoke("agentConfig", params)
];
2 years ago
case 2:
2 years ago
result = _state.sent();
2 years ago
if (!task.checkValid()) {
throw new AbortError();
}
2 years ago
return [
2,
{
params: params,
result: result
}
];
2 years ago
}
});
2 years ago
}));
task.promise.then(function(res) {
2 years ago
var registerOptions = getRegisterOptions();
2 years ago
safeRun(registerOptions == null ? void 0 : registerOptions.onAgentConfigSuccess, res.result);
safeRun(registerOptions == null ? void 0 : registerOptions.onAgentConfigComplete, res.result);
}, function(error) {
2 years ago
var registerOptions = getRegisterOptions();
2 years ago
safeRun(registerOptions == null ? void 0 : registerOptions.onAgentConfigFail, error);
safeRun(registerOptions == null ? void 0 : registerOptions.onAgentConfigComplete, error);
2 years ago
});
setAgentConfigTask(task);
2 years ago
return [
2,
task.promise
];
2 years ago
});
});
2 years ago
return _ensureAgentConfigReady.apply(this, arguments);
2 years ago
}
function resolveAgentConfigParams(url) {
2 years ago
return _resolveAgentConfigParams.apply(this, arguments);
}
function _resolveAgentConfigParams() {
_resolveAgentConfigParams = _async_to_generator(function(url) {
2 years ago
var registerOptions, data;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
registerOptions = getRegisterOptions();
2 years ago
if (!(registerOptions == null ? void 0 : registerOptions.getAgentConfigSignature)) {
throw new SDKError("Missing getAgentConfigSignature");
2 years ago
}
2 years ago
return [
4,
registerOptions.getAgentConfigSignature(url)
];
2 years ago
case 1:
2 years ago
data = _state.sent();
return [
2,
{
2 years ago
corpid: registerOptions.corpId,
2 years ago
agentid: "" + registerOptions.agentId,
timestamp: "" + data.timestamp,
2 years ago
nonceStr: data.nonceStr,
signature: data.signature,
2 years ago
jsApiList: mapJsApiListToClient(registerOptions.jsApiList || [
"agentConfig"
])
}
];
2 years ago
}
});
});
2 years ago
return _resolveAgentConfigParams.apply(this, arguments);
2 years ago
}
/**
* 触发或等待 configagentConfig 完成
*
* @example
* ```ts
* await ww.ensureConfigReady()
* ```
2 years ago
*/ function ensureConfigReady() {
2 years ago
var registerOptions = getRegisterOptions();
2 years ago
if (isWeCom && (registerOptions == null ? void 0 : registerOptions.getAgentConfigSignature)) {
2 years ago
return ensureAgentConfigReady();
}
return ensureCorpConfigReady();
}
2 years ago
/**
* 在提供了 registerOptions 的情况下保证 configagentConfig 完成
*
* @private
*/ function tryEnsureConfigReady() {
var registerOptions = getRegisterOptions();
if (registerOptions) {
return ensureConfigReady();
}
}
2 years ago
/**
* 注册应用信息
*
* @example
* ```ts
* ww.register({
* corpId: 'ww7ca4776b2a70000',
* jsApiList: ['getExternalContact'],
* getConfigSignature
* })
* ```
2 years ago
*/ function register(options) {
2 years ago
setRegisterOptions(options);
if (isWeChat || isWeCom) {
ensureConfigReady();
}
}
/**
* 透传 JSAPI 调用
2 years ago
*/ function passthrough(name, params) {
return _passthrough.apply(this, arguments);
}
function _passthrough() {
_passthrough = _async_to_generator(function(name, params, jsapiParams) {
return __generator(this, function(_state) {
if (jsapiParams === void 0) jsapiParams = params;
return [
2,
promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
2,
invoke(name, jsapiParams)
];
2 years ago
}
});
2 years ago
}))
];
2 years ago
});
});
2 years ago
return _passthrough.apply(this, arguments);
2 years ago
}
/**
* 绑定事件
2 years ago
*/ function bindShare(name, params, handler) {
return _bindShare.apply(this, arguments);
}
function _bindShare() {
_bindShare = _async_to_generator(function(name, params, handler) {
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
on(name, function() {
2 years ago
promiseToCallback(params, handler);
});
2 years ago
return [
2
];
2 years ago
}
});
});
2 years ago
return _bindShare.apply(this, arguments);
2 years ago
}
/**
* promise 转为 success/fail callbacak 回调
2 years ago
*/ function promiseToCallback(params, factory) {
return factory(params).then(function(result) {
safeRun(params == null ? void 0 : params.success, result);
safeRun(params == null ? void 0 : params.complete, result);
2 years ago
return result;
2 years ago
}, function(error) {
2 years ago
var keyword = extractErrMsgKeyword(error.errMsg);
2 years ago
if (keyword === "cancel") {
safeRun(params == null ? void 0 : params.cancel, error);
} else {
safeRun(params == null ? void 0 : params.fail, error);
2 years ago
}
2 years ago
safeRun(params == null ? void 0 : params.complete, error);
2 years ago
throw error;
});
}
exports.Proximity = void 0;
2 years ago
(function(Proximity) {
Proximity[/**
* CLProximityUnknown
*/ "CLProximityUnknown"] = "0";
Proximity[/**
* CLProximityImmediate
*/ "CLProximityImmediate"] = "1";
Proximity[/**
* CLProximityNear
*/ "CLProximityNear"] = "2";
Proximity[/**
* CLProximityFar
*/ "CLProximityFar"] = "3";
2 years ago
})(exports.Proximity || (exports.Proximity = {}));
/**
* 开启查找周边 iBeacon 设备
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
* @compat WeChat
2 years ago
*/ function startSearchBeacons(params) {
if (params === void 0) params = {};
return passthrough("startMonitoringBeacons", params);
2 years ago
}
/**
* 关闭查找周边 iBeacon 设备
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
* @compat WeChat
2 years ago
*/ function stopSearchBeacons(params) {
if (params === void 0) params = {};
return passthrough("stopMonitoringBeacons", params);
2 years ago
}
/**
* 监听周边 iBeacon 设备接口
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
* @compat WeChat
2 years ago
*/ function onSearchBeacons(callback) {
on("onBeaconsInRange", callback);
2 years ago
}
/**
* 初始化蓝牙模块
*
* @compat WeCom
*
* @example
* ```ts
* ww.openBluetoothAdapter()
* ```
2 years ago
*/ function openBluetoothAdapter(params) {
if (params === void 0) params = {};
return passthrough("openBluetoothAdapter", params);
2 years ago
}
/**
* 关闭蓝牙模块
*
* 调用该方法将断开所有已建立的链接并释放系统资源
*
* @compat WeCom
*
* @example
* ```ts
* ww.closeBluetoothAdapter()
* ```
2 years ago
*/ function closeBluetoothAdapter(params) {
if (params === void 0) params = {};
return passthrough("closeBluetoothAdapter", params);
2 years ago
}
/**
* 获取本机蓝牙适配器状态
*
* @compat WeCom
*
* @example
* ```ts
* ww.getBluetoothAdapterState()
* ```
2 years ago
*/ function getBluetoothAdapterState(params) {
if (params === void 0) params = {};
return passthrough("getBluetoothAdapterState", params);
2 years ago
}
/**
* 监听蓝牙适配器状态变化
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBluetoothAdapterStateChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBluetoothAdapterStateChange(callback) {
on("onBluetoothAdapterStateChange", callback);
2 years ago
}
/**
* 开始搜寻附近的蓝牙外围设备
*
* @compat WeCom
*
* @example
* ```ts
ww.startBluetoothDevicesDiscovery({
services: ['FEE7']
})
* ```
2 years ago
*/ function startBluetoothDevicesDiscovery(params) {
if (params === void 0) params = {};
return passthrough("startBluetoothDevicesDiscovery", params);
2 years ago
}
/**
* 停止搜寻附近的蓝牙外围设备
*
* 若已经找到需要的蓝牙设备并不需要继续搜索时建议调用该接口停止蓝牙搜索
*
* @compat WeCom
*
* @example
* ```ts
* ww.stopBluetoothDevicesDiscovery()
* ```
2 years ago
*/ function stopBluetoothDevicesDiscovery(params) {
if (params === void 0) params = {};
return passthrough("stopBluetoothDevicesDiscovery", params);
2 years ago
}
/**
* 获取在蓝牙模块生效期间所有已发现的蓝牙设备
*
* @note
* - 该接口获取到的设备列表为蓝牙模块生效期间所有搜索到的蓝牙设备若在蓝牙模块使用流程结束后未及时调用 closeBluetoothAdapter 释放资源
* 调用该接口可能会返回之前蓝牙使用流程中搜索到的蓝牙设备可能设备已经不在用户身边无法连接
* - 蓝牙设备在被搜索到时系统返回的 name 字段一般为广播包中的 LocalName 字段中的设备名称而如果与蓝牙设备建立连接系统返回的 name
* 字段会改为从蓝牙设备上获取到的 GattName若需要动态改变设备名称并展示建议使用 localName 字段
*
* @compat WeCom
*
* @example
* ```ts
* ww.getBluetoothDevices()
* ```
2 years ago
*/ function getBluetoothDevices(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
var res, _iterator, _step, device;
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("getBluetoothDevices")
];
2 years ago
case 2:
2 years ago
res = _state.sent();
for(_iterator = _create_for_of_iterator_helper_loose(res.devices || []); !(_step = _iterator()).done;){
device = _step.value;
2 years ago
device.advertisData = base64ToArrayBuffer(device.advertisData);
device.serviceData = base64ToArrayBuffer(device.serviceData);
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 监听寻找到新设备
*
* @note
* - 若在该接口中回调了某个设备则此设备会添加到 getBluetoothDevices 接口返回的设备列表中
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBluetoothDeviceFound(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBluetoothDeviceFound(callback) {
on("onBluetoothDeviceFound", callback);
2 years ago
}
/**
* 根据 uuid 获取处于已连接状态的设备
*
* @compat WeCom
*
* @example
* ```ts
* ww.getConnectedBluetoothDevices({
* services: ['FEE7']
* })
* ```
2 years ago
*/ function getConnectedBluetoothDevices(params) {
return passthrough("getConnectedBluetoothDevices", params);
2 years ago
}
/**
* 连接低功耗蓝牙设备
*
* @note
* - 安卓手机上如果多次调用 createBLEConnection 创建连接有可能导致系统持有同一设备多个连接的实例导致调用 closeBLEConnection 的时候并不能真正的断开与设备的连接因此请保证尽量成对的调用 create close 接口
* - 蓝牙链接随时可能断开建议监听 onBLEConnectionStateChange 回调事件当蓝牙设备断开时按需执行重连操作
* - 若对未连接的设备或已断开连接的设备调用数据读写操作的接口会返回 10006 错误建议进行重连操作
*
* @compat WeCom
*
* @example
* ```ts
* ww.createBLEConnection({
* deviceId: deviceId
* })
* ```
2 years ago
*/ function createBLEConnection(params) {
return passthrough("createBLEConnection", params);
2 years ago
}
/**
* 断开与低功耗蓝牙设备的连接
*
* @compat WeCom
*
* @example
* ```ts
* ww.closeBLEConnection({
* deviceId: deviceId
* })
* ```
2 years ago
*/ function closeBLEConnection(params) {
return passthrough("closeBLEConnection", params);
2 years ago
}
/**
* 监听低功耗蓝牙连接状态的改变事件包括开发者主动连接或断开连接设备丢失连接异常断开等等
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBLEConnectionStateChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBLEConnectionStateChange(callback) {
on("onBLEConnectionStateChange", callback);
2 years ago
}
/**
* 获取蓝牙设备所有 service服务
*
* @compat WeCom
*
* @example
* ```ts
* ww.getBLEDeviceServices({
* deviceId: deviceId
* })
* ```
2 years ago
*/ function getBLEDeviceServices(params) {
return passthrough("getBLEDeviceServices", params);
2 years ago
}
/**
* 获取蓝牙设备某个服务中的所有 characteristic特征值
*
* @compat WeCom
*
* @example
* ```ts
* ww.getBLEDeviceCharacteristics({
* deviceId: deviceId,
* serviceId: serviceId
* })
* ```
2 years ago
*/ function getBLEDeviceCharacteristics(params) {
return passthrough("getBLEDeviceCharacteristics", params);
2 years ago
}
/**
* 读取低功耗蓝牙设备的特征值的二进制数据值
*
* @note
* - 设备的特征值必须支持 read 才可以成功调用具体参照 characteristic properties 属性
* - 并行调用多次读写接口存在读写失败的可能性
* - 接口读取到的信息需要在 onBLECharacteristicValueChange 的回调中获取
*
* @compat WeCom
*
* @example
* ```ts
* ww.readBLECharacteristicValue({
* deviceId: deviceId,
* serviceId: serviceId,
* characteristicId: characteristicId
* })
* ```
2 years ago
*/ function readBLECharacteristicValue(params) {
return passthrough("readBLECharacteristicValue", params);
2 years ago
}
/**
* 向低功耗蓝牙设备特征值中写入二进制数据
*
* @note
* - 设备的特征值必须支持 write 才可以成功调用具体参照 characteristic properties 属性
* - 并行调用多次读写接口存在读写失败的可能性
* - 接口不会对写入数据包大小做限制但系统与蓝牙设备会确定蓝牙 4.0 单次传输的数据大小超过最大字节数后会发生写入错误建议每次写入不超过 20 字节
* - 安卓平台上在调用 notify 成功后立即调用 write 接口在部分机型上会发生 10008 系统错误
* - 若单次写入数据过长iOS 平台上存在系统不会有任何回调的情况包括错误回调
*
* @compat WeCom
*
* @example
* ```ts
* ww.writeBLECharacteristicValue({
* deviceId: deviceId,
* serviceId: serviceId,
* characteristicId: characteristicId,
* value: arrayBufferValue
* })
* ```
2 years ago
*/ function writeBLECharacteristicValue(params) {
return passthrough("writeBLECharacteristicValue", params, {
2 years ago
deviceId: params.deviceId,
serviceId: params.serviceId,
characteristicId: params.characteristicId,
value: arrayBufferToBase64(params.value)
});
}
/**
* 启用低功耗蓝牙设备特征值变化时的 notify 功能订阅特征值
*
* @note
* - 设备的特征值必须支持 notify 或者 indicate 才可以成功调用具体参照 characteristic properties 属性
* - 订阅操作成功后需要设备主动更新特征值的 value 才会触发 onBLECharacteristicValueChange 回调
* - 安卓平台上在调用 notify 成功后立即调用 write 接口在部分机型上会发生 10008 系统错误
*
* @compat WeCom
*
* @example
* ```ts
* ww.notifyBLECharacteristicValueChange({
* deviceId: deviceId,
* serviceId: serviceId,
* characteristicId: characteristicId,
* state: true
* })
* ```
2 years ago
*/ function notifyBLECharacteristicValueChange(params) {
return passthrough("notifyBLECharacteristicValueChange", params);
2 years ago
}
/**
* 监听低功耗蓝牙设备的特征值变化
*
* 必须先启用 notify 才能接收到设备推送的 notification
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBLECharacteristicValueChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBLECharacteristicValueChange(callback) {
on("onBLECharacteristicValueChange", function(event) {
if (event == null ? void 0 : event.value) {
2 years ago
event.value = base64ToArrayBuffer(event.value);
}
callback(event);
});
}
/**
* 设置系统剪贴板的内容
*
* @compat WeCom iOS, Android >= 2.4.16; WeCom PC, Mac >= 3.1.2
*
* @example
* ```ts
* ww.setClipboardData({
* data: 'data'
* })
* ```
2 years ago
*/ function setClipboardData(params) {
return passthrough("setClipboardData", params);
2 years ago
}
/**
* 获取系统剪贴板内容
*
* @compat WeCom >= 3.1.2
*
* @example
* ```ts
* ww.getClipboardData()
* ```
2 years ago
*/ function getClipboardData(params) {
if (params === void 0) params = {};
return passthrough("getClipboardData", params);
2 years ago
}
/**
* 开始搜索附近的 iBeacon 设备
*
* @compat WeCom
*
* @example
* ```ts
* ww.startBeaconDiscovery({
* uuids: ['uuid']
* })
* ```
2 years ago
*/ function startBeaconDiscovery(params) {
return passthrough("startBeaconDiscovery", params);
2 years ago
}
/**
* 停止搜索附近的 iBeacon 设备
*
* @compat WeCom
*
* @example
* ```ts
* ww.stopBeaconDiscovery()
* ```
2 years ago
*/ function stopBeaconDiscovery(params) {
if (params === void 0) params = {};
return passthrough("stopBeaconDiscovery", params);
2 years ago
}
/**
* 获取所有已搜索到的 iBeacon 设备
*
* @compat WeCom
*
* @example
* ```ts
* ww.getBeacons()
* ```
2 years ago
*/ function getBeacons(params) {
if (params === void 0) params = {};
return passthrough("getBeacons", params);
2 years ago
}
/**
* 监听 iBeacon 设备的更新事件
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBeaconUpdate(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBeaconUpdate(callback) {
on("onBeaconUpdate", callback);
2 years ago
}
/**
* 监听 iBeacon 服务的状态变化
*
* @compat WeCom
*
* @example
* ```ts
* ww.onBeaconServiceChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onBeaconServiceChange(callback) {
on("onBeaconServiceChange", callback);
2 years ago
}
exports.LocationType = void 0;
2 years ago
(function(LocationType) {
LocationType[/**
* gps 坐标
*/ "wgs84"] = "wgs84";
LocationType[/**
* 火星坐标
*/ "gcj02"] = "gcj02";
2 years ago
})(exports.LocationType || (exports.LocationType = {}));
/**
* 使用企业微信内置地图查看位置
*
* @example
* ```ts
* ww.openLocation({
* latitude: 0,
* longitude: 0,
* name: 'name',
* address: 'address',
* scale: 1
* })
* ```
2 years ago
*/ function openLocation(params) {
return passthrough("openLocation", params, {
2 years ago
latitude: params.latitude,
longitude: params.longitude,
2 years ago
name: params.name || "",
address: params.address || "",
2 years ago
scale: params.scale || 28,
2 years ago
infoUrl: params.infoUrl || ""
2 years ago
});
}
/**
* 获取地理位置
*
* @example
* ```ts
* ww.getLocation({
* type: 'wgs84'
* })
* ```
2 years ago
*/ function getLocation(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("geoLocation", {
type: params.type || "wgs84"
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
delete res.type;
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 打开持续定位
*
* @compat WeCom >= 2.4.20
*
* @example
* ```ts
* ww.startAutoLBS({
* type: 'gcj02'
* })
* ```
2 years ago
*/ function startAutoLBS(params) {
return passthrough("startAutoLBS", params);
2 years ago
}
/**
* 停止持续定位
*
* @compat WeCom >= 2.4.20
*
* @example
* ```ts
* ww.stopAutoLBS()
* ```
2 years ago
*/ function stopAutoLBS(params) {
if (params === void 0) params = {};
return passthrough("stopAutoLBS", params);
2 years ago
}
/**
* 监听地理位置的变化
*
* @limit
* - 需要提前调用 startAutoLBS
* - 需要用户停留在当前页面
*
* @compat WeCom >= 2.4.20
*
* @example
* ```ts
* ww.onLocationChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onLocationChange(callback) {
on("auto:location:report", callback);
2 years ago
}
exports.NetworkType = void 0;
2 years ago
(function(NetworkType) {
NetworkType[/**
* wifi
*/ "wifi"] = "wifi";
NetworkType[/**
* 2g
*/ "network2g"] = "2g";
NetworkType[/**
* 3g
*/ "network3g"] = "3g";
NetworkType[/**
* 4g
*/ "network4g"] = "4g";
NetworkType[/**
* 无网络
*/ "none"] = "none";
NetworkType[/**
* Android下不常见的网络类型
*/ "unknown"] = "unknown";
2 years ago
})(exports.NetworkType || (exports.NetworkType = {}));
/**
* 获取网络状态
*
* @compat WeCom iOS, Android; WeChat
*
* @example
* ```ts
* ww.getNetworkType()
* ```
2 years ago
*/ function getNetworkType(params) {
if (params === void 0) params = {};
return passthrough("getNetworkType", params);
2 years ago
}
/**
* 监听网络状态变化
*
* @compat WeCom iOS, Android
*
* @example
* ```ts
* ww.onNetworkStatusChange(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onNetworkStatusChange(callback) {
on("onNetworkStatusChange", callback);
2 years ago
}
/**
* 初始化 Wi-Fi 模块
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.startWifi()
* ```
2 years ago
*/ function startWifi(params) {
if (params === void 0) params = {};
return passthrough("startWifi", params);
2 years ago
}
/**
* 关闭 Wi-Fi 模块
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.stopWifi()
* ```
2 years ago
*/ function stopWifi(params) {
if (params === void 0) params = {};
return passthrough("stopWifi", params);
2 years ago
}
/**
* 连接 Wi-Fi
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.connectWifi({
* SSID: 'vincenthome',
* BSSID: '8c:a6:df:c8:f7:4b',
* password: 'test1234',
* })
* ```
2 years ago
*/ function connectWifi(params) {
return passthrough("connectWifi", params);
2 years ago
}
/**
* 获取 Wi-Fi 列表
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.getWifiList()
* ```
2 years ago
*/ function getWifiList(params) {
if (params === void 0) params = {};
return passthrough("getWifiList", params);
2 years ago
}
/**
* 监听 Wi-Fi 列表更新
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.onGetWifiList(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onGetWifiList(callback) {
on("onGetWifiList", callback);
2 years ago
}
/**
* 监听 Wi-Fi 连接成功
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.onWifiConnected(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onWifiConnected(callback) {
on("onWifiConnected", callback);
2 years ago
}
/**
* 获取已连接中的 Wi-Fi 信息
*
* @compat WeCom iOS, Android >= 2.4.16
*
* @example
* ```ts
* ww.getConnectedWifi()
* ```
2 years ago
*/ function getConnectedWifi(params) {
if (params === void 0) params = {};
return passthrough("getConnectedWifi", params);
2 years ago
}
/**
* 预览文件
*
* @compat WeCom iOS, Android
*
* @example
* ```ts
* wx.previewFile({
* url: 'http://open.work.weixin.qq.com/wwopen/downloadfile/wwapi.zip',
* name: 'Android开发工具包集合',
* size: 22189
* })
* ```
2 years ago
*/ function previewFile(params) {
return passthrough("previewFile", params);
2 years ago
}
exports.SizeType = void 0;
2 years ago
(function(SizeType) {
SizeType[/**
* 原图
*/ "original"] = "original";
SizeType[/**
* 压缩后的图片
*/ "compressed"] = "compressed";
2 years ago
})(exports.SizeType || (exports.SizeType = {}));
exports.SourceType = void 0;
2 years ago
(function(SourceType) {
SourceType[/**
* 相册
*/ "album"] = "album";
SourceType[/**
* 相机
*/ "camera"] = "camera";
2 years ago
})(exports.SourceType || (exports.SourceType = {}));
exports.CameraMode = void 0;
2 years ago
(function(CameraMode) {
CameraMode[/**
* 单拍
*/ "normal"] = "normal";
CameraMode[/**
* 连拍
*
* @compat WeCom >= 2.3.0
*/ "batch"] = "batch";
CameraMode[/**
* 前置摄像头单拍
*
* @compat WeCom >= 3.0.26
*/ "front"] = "front";
CameraMode[/**
* 前置摄像头连拍
*
* @compat WeCom >= 3.0.26
*/ "batch_front"] = "batch_front";
2 years ago
})(exports.CameraMode || (exports.CameraMode = {}));
/**
* 拍照或从手机相册中选图
*
* @example
* ```ts
* ww.chooseImage({
* count: 1,
* sizeType: ['original', 'compressed'],
* sourceType: ['album', 'camera'],
* defaultCameraMode: 'batch',
* isSaveToAlbum: true
* })
* ```
2 years ago
*/ function chooseImage(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("chooseImage", {
scene: "1|2",
2 years ago
count: params.count || 9,
2 years ago
sizeType: params.sizeType || [
"original",
"compressed"
],
sourceType: params.sourceType || [
"album",
"camera"
],
defaultCameraMode: params.defaultCameraMode || "normal",
2 years ago
isSaveToAlbum: isFalsy(params.isSaveToAlbum) ? 0 : 1
2 years ago
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (isAndroid && res.localIds) {
2 years ago
res.localIds = res.localIds || "[]";
2 years ago
try {
res.localIds = JSON.parse(res.localIds);
2 years ago
} catch (error) {
// noop
2 years ago
}
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 预览图片
*
* @example
* ```ts
* ww.previewImage({
* current: imgURL,
* urls: [imgURL]
* });
* ```
2 years ago
*/ function previewImage(params) {
return passthrough("imagePreview", params);
2 years ago
}
/**
* 上传图片
*
2 years ago
* 上传的图片有效期 3 可用[素材管理](#90253)接口下载图片到自己的服务器此处获得的 serverId media_id
2 years ago
*
* @example
* ```ts
* ww.uploadImage({
* localId: localId,
* isShowProgressTips: true
* })
* ```
2 years ago
*/ function uploadImage(params) {
return passthrough("uploadImage", params, {
2 years ago
localId: params.localId,
isShowProgressTips: isFalsy(params.isShowProgressTips) ? 0 : 1
});
}
/**
* 下载图片
*
* @example
* ```ts
* ww.downloadImage({
* serverId: serverId,
* isShowProgressTips: true
* })
* ```
2 years ago
*/ function downloadImage(params) {
return passthrough("downloadImage", params, {
2 years ago
serverId: params.serverId,
isShowProgressTips: isFalsy(params.isShowProgressTips) ? 0 : 1
});
}
/**
* 获取本地图片内容
*
* 仅在 iOS WKWebView 下支持
*
* @compat WeCom iOS >= 2.4.6
*
* @example
* ```ts
* ww.getLocalImgData({
* localId: localId
* })
* ```
2 years ago
*/ function getLocalImgData(params) {
return passthrough("getLocalImgData", params);
2 years ago
}
/**
* 开始录音
*
* @example
* ```ts
* ww.startRecord()
* ```
2 years ago
*/ function startRecord(params) {
if (params === void 0) params = {};
return passthrough("startRecord", params);
2 years ago
}
/**
* 停止录音
*
* @example
* ```ts
* ww.stopRecord()
* ```
2 years ago
*/ function stopRecord(params) {
if (params === void 0) params = {};
return passthrough("stopRecord", params);
2 years ago
}
/**
* 监听录音自动停止
*
* @example
* ```ts
* ww.onVoiceRecordEnd({
* localId: localId
* })
* ```
2 years ago
*/ function onVoiceRecordEnd(callback) {
on("onVoiceRecordEnd", callback);
2 years ago
}
/**
* 播放语音
*
* @example
* ```ts
* ww.playVoice({
* localId: localId
* })
* ```
2 years ago
*/ function playVoice(params) {
return passthrough("playVoice", params);
2 years ago
}
/**
* 暂停播放
*
* @example
* ```ts
* ww.pauseVoice({
* localId: localId
* })
* ```
2 years ago
*/ function pauseVoice(params) {
return passthrough("pauseVoice", params);
2 years ago
}
/**
* 停止播放
*
* @example
* ```ts
* ww.stopVoice({
* localId: localId
* })
* ```
2 years ago
*/ function stopVoice(params) {
return passthrough("stopVoice", params);
2 years ago
}
/**
* 监听语音播放完毕
*
* @example
* ```ts
* ww.onVoicePlayEnd(function(event) {
* console.log(event)
* })
* ```
2 years ago
*/ function onVoicePlayEnd(callback) {
on("onVoicePlayEnd", callback);
2 years ago
}
/**
* 上传语音
*
* @example
* ```ts
* ww.uploadVoice({
* localId: localId,
* isShowProgressTips: true
* })
* ```
2 years ago
*/ function uploadVoice(params) {
return passthrough("uploadVoice", params, {
2 years ago
localId: params.localId,
isShowProgressTips: isFalsy(params.isShowProgressTips) ? 0 : 1
});
}
/**
* 下载语音
*
* @example
* ```ts
* ww.downloadVoice({
* serverId: serverId,
* isShowProgressTips: true
* })
* ```
2 years ago
*/ function downloadVoice(params) {
return passthrough("downloadVoice", params, {
2 years ago
serverId: params.serverId,
isShowProgressTips: isFalsy(params.isShowProgressTips) ? 0 : 1
});
}
/**
* 语音转文字
*
* @compat WeCom iOS, Android >= 2.7.5
*
* @example
* ```ts
* ww.translateVoice({
* localId: localId,
* isShowProgressTips: true
* })
* ```
2 years ago
*/ function translateVoice(params) {
return passthrough("translateVoice", params, {
2 years ago
localId: params.localId,
isShowProgressTips: isFalsy(params.isShowProgressTips) ? 0 : 1
});
}
exports.LiveType = void 0;
2 years ago
(function(LiveType) {
LiveType[LiveType[/**
* 通用直播
*/ "common"] = 0] = "common";
LiveType[LiveType[/**
* 企业培训
*/ "corp_training"] = 1] = "corp_training";
LiveType[LiveType[/**
* 大班课
*/ "edu_normal_class"] = 2] = "edu_normal_class";
LiveType[LiveType[/**
* 小班课
*/ "edu_small_class"] = 3] = "edu_small_class";
2 years ago
})(exports.LiveType || (exports.LiveType = {}));
function startLiving(params) {
2 years ago
if (params === void 0) params = {};
return passthrough("startLiving", params);
2 years ago
}
/**
* 调起直播间回放页面
*
* @limit
* - 应用需具有直播使用权限[配置可使用直播的应用](#25967/配置可使用直播的应用)
*
* @compat WeCom >= 3.1.0
*
* @example
* ```ts
* ww.replayLiving({
* livingId: 'LIVINGID'
* })
* ```
2 years ago
*/ function replayLiving(params) {
return passthrough("replayLiving", params);
2 years ago
}
/**
* 调起直播回放下载页面
*
* @limit
* - 应用需具有直播使用权限[配置可使用直播的应用](#25967/配置可使用直播的应用)
* - 只允许直播的发起人下载直播回放
*
* @compat WeCom PC >= 3.1.0
*
* @example
* ```ts
* ww.downloadLivingReplay({
* livingId: 'LIVINGID'
* })
* ```
2 years ago
*/ function downloadLivingReplay(params) {
return passthrough("downloadLivingReplay", params);
2 years ago
}
function startMeeting(params) {
2 years ago
if (params === void 0) params = {};
return passthrough("startMeeting", params);
2 years ago
}
/**
* 选择可分享的在线文档
*
* @compat WeCom >= 4.0.12
2 years ago
*/ function wedocSelectDoc(params) {
if (params === void 0) params = {};
return passthrough("wedocSelectDoc", params);
2 years ago
}
/**
* 选择可上传的目录/空间
*
* 选中一个具有可上传权限的目录/空间返回选中目录/空间对应的 selectedTicket
*
* @compat WeCom >= 4.0.12
2 years ago
*/ function wedriveSelectDir(params) {
if (params === void 0) params = {};
return passthrough("wedriveSelectDir", params);
2 years ago
}
/**
* 选择可分享的文件
*
* 选中一个或多个具有可分享权限的微盘文件或在线文档返回选中文件的 url
*
* @compat WeCom >= 4.0.12
2 years ago
*/ function wedriveSelectFileForShare(params) {
return passthrough("wedriveSelectFileForShare", params);
2 years ago
}
/**
* 选择可下载的文件
*
* 选中一个或多个具有下载权限的文件只能是微盘文件不支持在线文档返回选中文件对应的 selectedTickets 列表
*
* @compat WeCom >= 4.0.12
2 years ago
*/ function wedriveSelectFileForDownload(params) {
return passthrough("wedriveSelectFileForDownload", params);
2 years ago
}
/**
* 监听页面返回事件
*
* @param callback 回调函数返回 false 则表示中断此次返回操作
*
* @limit
* - 当页面左上角没有关闭按钮不产生该事件
* - iOS 系统下使用手势返回时不产生该事件
*
* @compat WeCom iOS, Android >= 2.2.0; WeCom PC, Mac >= 2.4.5
*
* @example
* ```ts
* ww.onHistoryBack(function() {
* return confirm('确定放弃当前页面的修改?')
* })
* ```
2 years ago
*/ function onHistoryBack(callback) {
on("historyBack", callback);
2 years ago
}
/**
* 隐藏右上角菜单
*
* @example
* ```ts
* ww.hideOptionMenu()
* ```
2 years ago
*/ function hideOptionMenu(params) {
if (params === void 0) params = {};
return passthrough("hideOptionMenu", params);
2 years ago
}
/**
* 显示右上角菜单
*
* @example
* ```ts
* ww.showOptionMenu()
* ```
2 years ago
*/ function showOptionMenu(params) {
if (params === void 0) params = {};
return passthrough("showOptionMenu", params);
2 years ago
}
/**
* 关闭当前网页窗口
*
* @example
* ```ts
* ww.closeWindow()
* ```
2 years ago
*/ function closeWindow(params) {
if (params === void 0) params = {};
return passthrough("closeWindow", params);
2 years ago
}
/**
* 批量隐藏功能按钮
*
* @example
* ```ts
* ww.hideMenuItems({
* menuList: ['menuItem:setFont']
* })
* ```
2 years ago
*/ function hideMenuItems(params) {
return passthrough("hideMenuItems", params);
2 years ago
}
/**
* 批量显示功能按钮
*
* @example
* ```ts
ww.showMenuItems({
menuList: ['menuItem:setFont']
})
* ```
2 years ago
*/ function showMenuItems(params) {
return passthrough("showMenuItems", params);
2 years ago
}
/**
* 隐藏所有非基础按钮
*
* @example
* ```ts
* ww.hideAllNonBaseMenuItem()
* ```
2 years ago
*/ function hideAllNonBaseMenuItem(params) {
if (params === void 0) params = {};
return passthrough("hideAllNonBaseMenuItem", params);
2 years ago
}
/**
* 显示所有功能按钮
*
* @example
* ```ts
* ww.showAllNonBaseMenuItem()
* ```
2 years ago
*/ function showAllNonBaseMenuItem(params) {
if (params === void 0) params = {};
return passthrough("showAllNonBaseMenuItem", params);
2 years ago
}
/**
* 打开系统默认浏览器
*
* @compat WeCom PC >= 2.3.0
*
* @example
* ```ts
* ww.openDefaultBrowser({
* url: 'https://work.weixin.qq.com/'
* })
* ```
2 years ago
*/ function openDefaultBrowser(params) {
return passthrough("openDefaultBrowser", params);
2 years ago
}
/**
* 监听用户截屏事件
*
* @compat WeCom iOS, Android >= 2.5.0
*
* @example
* ```ts
* ww.onUserCaptureScreen(function() {
* console.log('用户截屏了')
* })
* ```
2 years ago
*/ function onUserCaptureScreen(callback) {
on("onUserCaptureScreen", callback);
2 years ago
}
/**
* 获取转发按钮点击状态并自定义分享内容
*
* @note
* - 微信客户端即将废弃该接口
*
* @limit
* - 仅激活成员数超过 200 人且已经认证的企业才可在微信上调用
*
* @example
* ```ts
* ww.onMenuShareAppMessage({
* title: '企业微信',
* desc: '让每个企业都有自己的微信',
* link: 'https://work.weixin.qq.com/',
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png',
* success() {
* // 用户确认分享后回调
* },
* cancel() {
* // 用户取消分享后回调
* }
* })
* ```
2 years ago
*/ function onMenuShareAppMessage(params) {
bindShare("menu:share:appmessage", params, function() {
return invoke("sendAppMessage", {
2 years ago
title: params.title || getTitle(),
2 years ago
desc: params.desc || "",
2 years ago
link: params.link || getHref(),
2 years ago
img_url: params.imgUrl || "",
type: params.type || "link",
data_url: params.dataUrl || ""
2 years ago
});
});
}
/**
* 获取分享到朋友圈按钮点击状态并自定义分享内容
*
* @note
* - 微信客户端即将废弃该接口
*
* @example
* ```ts
* ww.onMenuShareTimeline({
* title: '企业微信',
* link: 'https://work.weixin.qq.com/',
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png',
* success() {
* // 用户确认分享后回调
* },
* cancel() {
* // 用户取消分享后回调
* }
* })
* ```
2 years ago
*/ function onMenuShareTimeline(params) {
bindShare("menu:share:timeline", params, function() {
return invoke("shareTimeline", {
2 years ago
title: params.title || getTitle(),
desc: params.title || getTitle(),
2 years ago
img_url: params.imgUrl || "",
2 years ago
link: params.link || getHref(),
2 years ago
type: params.type || "link",
data_url: params.dataUrl || ""
2 years ago
});
});
}
/**
* 获取微信按钮点击状态并自定义分享内容
*
* @compat WeCom
*
* @example
* ```ts
* ww.onMenuShareWechat({
* title: '企业微信',
* desc: '让每个企业都有自己的微信',
* link: 'https://work.weixin.qq.com/',
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png',
* success() {
* // 用户确认分享后回调
* },
* cancel() {
* // 用户取消分享后回调
* }
* })
* ```
2 years ago
*/ function onMenuShareWechat(params) {
bindShare("menu:share:wechat", params, function() {
return invoke("shareWechat", {
2 years ago
title: params.title || getTitle(),
2 years ago
desc: params.desc || "",
2 years ago
link: params.link || getHref(),
2 years ago
img_url: params.imgUrl || "",
type: params.type || "link",
data_url: params.dataUrl || ""
2 years ago
});
});
}
/**
* 获取分享到QQ按钮点击状态并自定义分享内容
*
* @note
* 微信客户端即将废弃该接口
*
* @compat WeChat
2 years ago
*/ function onMenuShareQQ(params) {
bindShare("menu:share:qq", params, function() {
return invoke("shareQQ", {
2 years ago
title: params.title || getTitle(),
2 years ago
desc: params.desc || "",
img_url: params.imgUrl || "",
2 years ago
link: params.link || getHref()
});
});
}
/**
* 获取分享到微博按钮点击状态并自定义分享内容
*
* @compat WeChat
2 years ago
*/ function onMenuShareWeibo(params) {
bindShare("menu:share:weiboApp", params, function() {
return invoke("shareWeiboApp", {
2 years ago
title: params.title || getTitle(),
2 years ago
desc: params.desc || "",
img_url: params.imgUrl || "",
2 years ago
link: params.link || getHref()
});
});
}
/**
* 获取分享到QQ空间按钮点击状态并自定义分享内容
*
* @note
* 微信客户端即将废弃该接口
*
* @compat WeChat
2 years ago
*/ function onMenuShareQZone(params) {
bindShare("menu:share:QZone", params, function() {
return invoke("shareQZone", {
2 years ago
title: params.title || getTitle(),
2 years ago
desc: params.desc || "",
img_url: params.imgUrl || "",
2 years ago
link: params.link || getHref()
});
});
}
/**
* 自定义转发到会话
*
* @compat WeCom >= 2.4.5
*
* @example
* ```ts
* ww.shareAppMessage({
* title: '企业微信',
* desc: '让每个企业都有自己的微信',
* link: 'https://work.weixin.qq.com/',
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png',
* })
* ```
2 years ago
*/ function shareAppMessage(params) {
return passthrough("shareAppMessage", params);
2 years ago
}
/**
* 自定义转发到微信
*
* @compat WeCom >= 2.4.5
*
* @example
* ```ts
* ww.shareWechatMessage({
* title: '企业微信',
* desc: '让每个企业都有自己的微信',
* link: 'https://work.weixin.qq.com/',
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png',
* })
* ```
2 years ago
*/ function shareWechatMessage(params) {
return passthrough("shareWechatMessage", params);
2 years ago
}
/**
* 自定义分享到朋友圈分享到QQ空间按钮的分享内容
*
* @compat WeChat
2 years ago
*/ function updateTimelineShareData(params) {
if (params === void 0) params = {};
return passthrough("updateTimelineShareData", params);
2 years ago
}
/**
* 自定义分享给朋友分享到QQ按钮的分享内容
*
* @compat WeChat
2 years ago
*/ function updateAppMessageShareData(params) {
if (params === void 0) params = {};
return passthrough("updateAppMessageShareData", params);
2 years ago
}
/**
* 批量添加卡券
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#批量添加卡券接口
2 years ago
*/ function addCard(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
var res, _iterator, _step, card;
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("batchAddCard", {
card_list: params.cardList.map(function(card) {
return {
card_id: card.cardId,
card_ext: card.cardExt
};
})
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!res.card_list) {
2 years ago
return [
2,
res
];
2 years ago
}
2 years ago
for(_iterator = _create_for_of_iterator_helper_loose(res.card_list); !(_step = _iterator()).done;){
card = _step.value;
2 years ago
card.cardId = card.card_id;
delete card.card_id;
card.cardExt = card.card_ext;
delete card.card_ext;
card.isSuccess = !!card.is_succ;
delete card.is_succ;
}
res.cardList = res.card_list;
delete res.card_list;
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 拉取适用卡券列表并获取用户选择信息
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#拉取适用卡券列表并获取用户选择信息
2 years ago
*/ function chooseCard(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("chooseCard", {
2 years ago
app_id: getConfigCorpId(),
2 years ago
location_id: params.shopId || "",
sign_type: params.signType || "SHA1",
card_id: params.cardId || "",
card_type: params.cardType || "",
2 years ago
card_sign: params.cardSign,
2 years ago
time_stamp: "" + params.timestamp,
2 years ago
nonce_str: params.nonceStr
2 years ago
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
res.cardList = res.choose_card_info;
delete res.choose_card_info;
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 查看微信卡包中的卡券
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#查看微信卡包中的卡券接口
2 years ago
*/ function openCard(params) {
return passthrough("batchViewCard", params, {
card_list: params.cardList.map(function(card) {
return {
card_id: card.cardId,
code: card.code
};
})
2 years ago
});
}
/**
* 核销并分享卡券
*
* @deprecated
2 years ago
*/ function consumeAndShareCard(params) {
return passthrough("consumedShareCard", params, {
2 years ago
consumedCardId: params.cardId,
consumedCode: params.code
});
}
exports.ProductViewType = void 0;
2 years ago
(function(ProductViewType) {
2 years ago
ProductViewType[ProductViewType["normal"] = 0] = "normal";
ProductViewType[ProductViewType["scan"] = 1] = "scan";
})(exports.ProductViewType || (exports.ProductViewType = {}));
/**
* 跳转微信商品页
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#跳转微信商品页接口
2 years ago
*/ function openProductSpecificView(params) {
return passthrough("openProductViewWithPid", params, {
2 years ago
pid: params.productId,
view_type: params.viewType || 0,
ext_info: params.extInfo
});
}
/**
* 发起一个微信支付请求
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#发起一个微信支付请求
2 years ago
*/ function chooseWXPay(params) {
return passthrough("getBrandWCPayRequest", params, normalizeParams(params));
2 years ago
}
/**
* 领取企业红包
2 years ago
*/ function openEnterpriseRedPacket(params) {
return passthrough("getRecevieBizHongBaoRequest", params, normalizeParams(params));
2 years ago
}
function normalizeParams(params) {
return {
2 years ago
timeStamp: "" + params.timestamp,
2 years ago
nonceStr: params.nonceStr,
package: params.package,
paySign: params.paySign,
2 years ago
signType: params.signType || "SHA1"
2 years ago
};
}
/**
* 添加设备
*
* @limit
* - 发起用户需要有设备添加权限超级管理员/设备管理员
*
* @compat WeCom iOS, Android >= 4.0.18
*
* @example
* ```ts
* ww.addDevice({
* type: 'qrcode',
* qrcode_url: 'https://open.work.weixin.qq.com/connect?xxx'
* })
* ```
2 years ago
*/ function addDevice(params) {
return passthrough("addDevice", params);
2 years ago
}
/**
* 判断当前客户端版本是否支持指定 JS 接口
*
* @example
* ```ts
* ww.checkJsApi({
* jsApiList: ['chooseImage']
* })
* ```
2 years ago
*/ function checkJsApi(params) {
return _checkJsApi.apply(this, arguments);
}
function _checkJsApi() {
_checkJsApi = _async_to_generator(function(params) {
return __generator(this, function(_state) {
return [
2,
promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("checkJsApi", {
2 years ago
jsApiList: mapJsApiListToClient(params.jsApiList)
2 years ago
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
res.checkResult = normalize(flatten(res.checkResult));
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}))
];
2 years ago
});
});
2 years ago
return _checkJsApi.apply(this, arguments);
2 years ago
}
function normalize(data) {
2 years ago
var result = _extends({}, data);
for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(data)), _step; !(_step = _iterator()).done;){
var key = _step.value;
2 years ago
result[mapJsApiNameToWeb(key)] = data[key];
}
return result;
}
function flatten(data) {
var result = {};
2 years ago
for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(data)), _step; !(_step = _iterator()).done;){
var key = _step.value;
2 years ago
if (!isObject(data[key])) {
result[key] = data[key];
continue;
}
var child = flatten(data[key]);
2 years ago
for(var _iterator1 = _create_for_of_iterator_helper_loose(Object.keys(child)), _step1; !(_step1 = _iterator1()).done;){
var childKey = _step1.value;
result[key + "." + childKey] = child[childKey];
2 years ago
}
}
return result;
}
/**
* 查看日程闲忙状态
*
* 查看其他成员某段时间内日程中的闲忙状态
*
* @limit
* - 当前成员必须在应用可见范围内
* - 应用需具有日程使用权限
*
* @compat WeCom >= 4.0.20
*
* @example
* ```ts
* ww.checkSchedule({
* start_time: 1667232000,
* end_time: 1667318400,
* users: ['jack', 'jason']
* })
* ```
2 years ago
*/ function checkSchedule(params) {
return passthrough("checkSchedule", params);
2 years ago
}
/**
* 拉起电子发票列表
*
* @compat WeCom iOS, Android >= 2.1.0
*
* @example
* ```ts
* ww.chooseInvoice({
* timestamp: timestamp,
* nonceStr: nonceStr,
* signType: signType,
* cardSign: cardSign
* })
* ```
2 years ago
*/ function chooseInvoice(params) {
return passthrough("chooseInvoice", params);
2 years ago
}
/**
* 认领老师班级
*
* 跳转到认领班级的界面
*
* @compat WeCom >= 3.1.8
2 years ago
*/ function claimClassAdmin(params) {
if (params === void 0) params = {};
return passthrough("claimClassAdmin", params);
2 years ago
}
/**
* 创建群聊并发送消息
*
* 向用户申请给指定范围发送消息调用接口后用户可在选人界面对群聊范围进行修改当创建群聊成功时会返回新建的群聊 ID
*
* @limit
* - 仅第三方应用非通讯录应用可调用
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.createChatWithMsg({
* selectedOpenUserIds: ['zhangsan','lisi'],
* selectedTickets: ['tick1','token2'],
* chatName: 'discussName',
* msg: {
* msgtype: 'link',
* link: {
* title: 'title1',
* desc: 'desc1',
* url: 'link1',
* imgUrl: 'imgurl1'
* }
* }
* })
* ```
2 years ago
*/ function createChatWithMsg(params) {
return passthrough("createChatWithMsg", params);
2 years ago
}
/**
* 创建企业互联/上下游会话
*
* @limit
* - 企业必须开启互联群功能
* - 仅局校互联和上下游企业可调用
* - 当前成员必须在应用的可见范围
* - 群成员人数不能超过 2000
* - 如果创建的会话有外部联系人群成员人数不能超过 40
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.createCorpGroupChat({
* groupName: '讨论组',
* userIds: ['lisi', 'lisi2'],
* openUserIds: ['wabc3', 'wbcde'],
* externalUserIds: ['exid1', 'exid2'],
* corpGroupUserIds: [
* {
* corpId: 'ww3333',
* userId: 'userid123',
* openUserId: 'wx1111'
* },
* {
* corpId: 'ww4444',
* userId: 'userid123',
* openUserId: 'wx1111'
* }
* ]
* })
* ```
2 years ago
*/ function createCorpGroupChat(params) {
return passthrough("createCorpGroupChat", params, {
groupName: params.groupName || "",
2 years ago
userIds: params.userIds,
openUserIds: params.openUserIds,
corpGroupUserIds: params.corpGroupUserIds
});
}
exports.CreateExternalPaymentType = void 0;
2 years ago
(function(CreateExternalPaymentType) {
CreateExternalPaymentType[CreateExternalPaymentType[/**
* 在聊天中收款
*/ "chat"] = 0] = "chat";
CreateExternalPaymentType[CreateExternalPaymentType[/**
* 收款码收款
*/ "qrcode"] = 1] = "qrcode";
2 years ago
})(exports.CreateExternalPaymentType || (exports.CreateExternalPaymentType = {}));
/**
* 发起对外收款
*
* @limit
* - 应用需要具有对外收款权限
* - 发起的用户必须在应用可见范围并实名
* - 允许第三方应用代开发应用和自建应用调用
*
* @compat WeCom >= 4.0.12
*
* @example
* ```ts
* ww.createExternalPayment({
* paymentType: 0,
* totalFee: 300,
* description: '可乐一罐'
* })
* ```
2 years ago
*/ function createExternalPayment(params) {
if (params === void 0) params = {};
return passthrough("createExternalPayment", params);
2 years ago
}
/**
* 发起班级收款
*
* 用于老师对学生家长发起付款请求接口调用成功后会通过家校通知发送付款小程序给家长
*
* @limit
* - 仅支持配置在家长可使用范围内的应用
* - 企业必须已验证或者已认证
* - 发起的用户必须在应用可见范围并实名
* - 发起的用户需在个人微信零钱账户的可用范围内
*
* @compat WeCom iOS, Android, PC >= 3.1.10
*
* @example
* ```ts
* ww.createSchoolPayment({
* projectName: '1班班费',
* amount: 100,
* payers: {
* students: ['zhagnshan', 'lisi'],
* departments: [1, 2]
* }
* })
* ```
2 years ago
*/ function createSchoolPayment(params) {
return passthrough("createSchoolPayment", params);
2 years ago
}
/**
* 添加设备
*
* @deprecated 请使用 addDevice 接口
*
* @limit
* - 调用者必须为企业超级管理员
*
* @compat WeCom iOS, Android >= 2.5.8
*
* @example
* ```ts
* ww.discoverDevice({
* type: 'qrcode',
* qrcode_url: 'https://open.work.weixin.qq.com/connect?xxx'
* })
* ```
2 years ago
*/ function discoverDevice(params) {
return passthrough("discoverDevice", params);
2 years ago
}
/**
* 加入视频会议
*
* @limit
* - 只能加入同企业硬件创建的视频会议
*
* @compat WeCom >= 2.5.0
*
* @example
* ```ts
* ww.enterHWOpenTalk({
* code: code,
* ticket: ticket
* })
* ```
2 years ago
*/ function enterHWOpenTalk(params) {
return passthrough("enterHWOpenTalk", params);
2 years ago
}
/**
* 跳转认证界面
*
* @compat WeCom iOS, Android >= 2.8.7
*
* @example
* ```ts
* ww.enterpriseVerify()
* ```
2 years ago
*/ function enterpriseVerify(params) {
if (params === void 0) params = {};
return passthrough("enterpriseVerify", params);
2 years ago
}
/**
* 获取已选择的选项
*
* 当用户打开网页后应该先调用一次该接口获取用户已经选择的数据作为初始数据获取到初始数据后应该恢复已经选择的选项
*
* @limit
* - 网页应该做好深色模式适配
* - 接口仅用于审批设置外部选项场景请勿用作其他场景
*
* @compat WeCom >= 4.0.18
*
* @example
* ```ts
* ww.getApprovalSelectedItems({
* key: 'key'
* })
* ```
2 years ago
*/ function getApprovalSelectedItems(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("getApprovalSelectedItems", {
2 years ago
key: params.key
2 years ago
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!res.selectedData) {
2 years ago
return [
2,
res
];
2 years ago
}
try {
res.selectedData = JSON.parse(res.selectedData);
2 years ago
} catch (error) {
2 years ago
res.selectedData = [];
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
exports.EntryType = void 0;
2 years ago
(function(EntryType) {
EntryType[/**
* 从联系人详情进入
*/ "contact_profile"] = "contact_profile";
EntryType[/**
* 从单聊会话的工具栏进入
*/ "single_chat_tools"] = "single_chat_tools";
EntryType[/**
* 从群聊会话的工具栏进入
*/ "group_chat_tools"] = "group_chat_tools";
EntryType[/**
* 从会话的聊天附件栏进入
*
* @compat WeCom >= 3.1.6
*/ "chat_attachment"] = "chat_attachment";
EntryType[/**
* 从微信客服的工具栏进入
*
* @compat WeCom >= 3.1.10
*/ "single_kf_tools"] = "single_kf_tools";
EntryType[/**
* 上下游单聊会话的工具栏
*
* @compat WeCom >= 4.0.8
*/ "chain_single_chat_tools"] = "chain_single_chat_tools";
EntryType[/**
* 上下游群聊会话的工具栏
*
* @compat WeCom >= 4.0.8
*/ "chain_group_chat_tools"] = "chain_group_chat_tools";
EntryType[/**
* 除以上场景之外进入例如工作台聊天会话等
*/ "normal"] = "normal";
2 years ago
})(exports.EntryType || (exports.EntryType = {}));
/**
* 调用该接口可以判断用户是从哪个入口打开页面从而决定是否可以调用客户联系相关的接口
*
* @compat WeCom >= 3.0.24
*
* @example
* ```ts
* ww.getContext()
* ```
2 years ago
*/ function getContext(params) {
if (params === void 0) params = {};
return passthrough("getContext", params);
2 years ago
}
/**
* 获取当前上下游互联群的群 ID
*
* @compat WeCom >= 4.0.12
2 years ago
*/ function getCurCorpGroupChat(params) {
if (params === void 0) params = {};
return passthrough("getCurCorpGroupChat", params);
2 years ago
}
/**
* 获取当前上下游联系人用户 ID
*
* @compat WeCom >= 4.0.8
2 years ago
*/ function getCurCorpGroupContact(params) {
return passthrough("getCurCorpGroupContact", params);
2 years ago
}
/**
* 获取当前客户群的群 ID
*
* @limit
* - 不同的入口对应用及用户有相应的限制
* | getContext 接口返回的 entry | 自建应用 | 第三方应用 | 用户 | 支持的最低版本 |
* | --- | --- | --- | --- | --- |
* | group_chat_tools | 需有客户联系功能权限 | 需有企业客户权限->客户基础信息权限 | 配置了客户联系功能 | 2.8.17 |
* | group_chat_tools | 所有 | 需有家校沟通使用权限 | 所有 | 3.0.36 |
* | group_chat_tools | 所有 | 需有家校沟通使用权限 | 所有 | 4.0.8 |
*
* @compat WeCom >= 2.8.17
*
* @example
* ```ts
* ww.getCurExternalChat()
* ```
2 years ago
*/ function getCurExternalChat(params) {
if (params === void 0) params = {};
return passthrough("getCurExternalChat", params);
2 years ago
}
/**
* 获取当前外部联系人 userId
*
* @limit
* - 不同的入口对应用及用户有相应的限制
* | getContext 接口返回的 entry | 自建应用 | 第三方应用 | 用户 | 支持的最低版本 |
* | --- | --- | --- | --- | --- |
* | contact_profile | 需有客户联系功能权限 | 需有企业客户权限->客户基础信息权限 | 配置了客户联系功能 | 2.5.8 |
* | single_chat_tools | 需有客户联系功能权限 | 需有企业客户权限->客户基础信息权限 | 配置了客户联系功能 | 2.8.10 |
*
* @compat WeCom >= 2.5.8
*
* @example
* ```ts
* ww.getCurExternalContact()
* ```
2 years ago
*/ function getCurExternalContact(params) {
if (params === void 0) params = {};
return passthrough("getCurExternalContact", params);
2 years ago
}
/**
* 获取私密消息信息
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.getShareInfo({
* shareTicket: 'xxx'
* })
* ```
2 years ago
*/ function getShareInfo(params) {
return passthrough("getShareInfo", params);
2 years ago
}
/**
* 隐藏聊天附件栏的发送按钮
*
* 隐藏从聊天附件栏打开页面时固定显示的发送按钮开发者可以通过[分享消息到当前会话](#sendChatMessage)接口灵活适配对页面或页面中具体内容的转发
*
* @limit
* - 需要从附件栏进入才允许调用
*
* @compat WeCom >= 3.1.6
2 years ago
*/ function hideChatAttachmentMenu(params) {
return passthrough("hideChatAttachmentMenu", params);
2 years ago
}
/**
* 跳转到小程序
*
* @note
* - 打开小程序时如果需要关闭页面需同步调用 closeWindow不推荐用 setTimeout 延迟关闭
*
* @limit
* - 跳转的小程序必须属于页面所属的企业
* - 跳转的小程序必须已关联到工作台
*
* @compat WeCom >= 3.0.36
*
* @example
* ```ts
* ww.launchMiniprogram({
* appid: 'wx062f7a5507909000',
* path: 'pages/home/index'
* })
* ```
2 years ago
*/ function launchMiniprogram(params) {
return passthrough("launchMiniprogram", params, {
appid: params.appid,
2 years ago
path: addHTMLToPath(params.path),
envVersion: params.envVersion
});
}
function addHTMLToPath(url) {
if (!url || !isString(url)) {
return;
}
2 years ago
var _url_split = url.split("?"), path = _url_split[0], query = _url_split.slice(1);
2 years ago
if (!query.length) {
2 years ago
return "" + path + ".html";
2 years ago
}
2 years ago
return path + ".html?" + query.join("?");
2 years ago
}
/**
* 在企业微信内快速跳转到添加客户的界面
*
* @limit
* - 当前成员必须配置了客户联系功能
* - 第三方应用须配置客户联系功能权限
*
* @compat WeCom iOS, Android >= 3.0.36
*
* @example
* ```ts
* ww.navigateToAddCustomer()
* ```
2 years ago
*/ function navigateToAddCustomer(params) {
if (params === void 0) params = {};
return passthrough("navigateToAddCustomer", params);
2 years ago
}
/**
* 进入微信客服消息界面
*
* @limit
* - 当前企业须已开启微信客服应用
* - 当前成员须是指定客服账号的坐席
*
* @compat WeCom iOS, Android, PC >= 3.1.12
*
* @example
* ```ts
* ww.navigateToKfChat({
* openKfId: 'wkAJ2GCAAAZSfhHCt7IFSvLKtMPxyAAA',
* externalUserId: 'wmAJ2GCAAAZSfhHCt7IFSvLKtMPxyBBB'
* })
* ```
2 years ago
*/ function navigateToKfChat(params) {
return passthrough("navigateToKfChat", params);
2 years ago
}
/**
* 共享收货地址
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#共享收货地址接口
2 years ago
*/ function openAddress(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("editAddress")
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
res.postalCode = res.addressPostalCode;
delete res.addressPostalCode;
res.provinceName = res.proviceFirstStageName;
delete res.proviceFirstStageName;
res.cityName = res.addressCitySecondStageName;
delete res.addressCitySecondStageName;
res.countryName = res.addressCountiesThirdStageName;
delete res.addressCountiesThirdStageName;
res.detailInfo = res.addressDetailInfo;
delete res.addressDetailInfo;
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 打开应用评价页面
*
* 第三方应用可以使用该接口提供按钮让用户快速打开应用评价页面
*
* @compat WeCom iOS, Android, PC >= 4.0.2
*
* @limit
* - 仅第三方应用可调用
* - 当前用户可以进行应用评价
* - 对成员授权的应用当前用户需要在应用可见范围内
* - 对管理员授权的应用当前用户需要在应用可见范围内或具有应用管理权限
2 years ago
*/ function openAppComment(params) {
if (params === void 0) params = {};
return passthrough("openAppComment", params);
2 years ago
}
/**
* 获取设备数据授权
*
* 唤起设备选择列表企业管理员选择设备后应用可以通过云端接口获取到设备上报的数据
*
* @limit
* - 应用必须勾选了设备信息接口权限
* - 仅第三方应用使用
*
* @compat WeCom >= 4.0.12
*
* @example
* ```ts
* ww.openAppDeviceDataAuth()
* ```
2 years ago
*/ function openAppDeviceDataAuth(params) {
if (params === void 0) params = {};
return passthrough("openAppDeviceDataAuth", params);
2 years ago
}
/**
* 打开应用管理页面
*
* 应用可以使用该接口提供按钮让企业管理员快速打开应用的管理页面
*
* @limit
* - 当前用户必须具有应用管理权限
*
* @compat WeCom >= 4.0.2
2 years ago
*/ function openAppManage(params) {
if (params === void 0) params = {};
return passthrough("openAppManage", params);
2 years ago
}
exports.EnvVersion = void 0;
2 years ago
(function(EnvVersion) {
2 years ago
EnvVersion["release"] = "release";
EnvVersion["trial"] = "trial";
EnvVersion["develop"] = "develop";
})(exports.EnvVersion || (exports.EnvVersion = {}));
/**
* 商户小程序跳转微信支付分小程序
*
* @see https://pay.weixin.qq.com/wiki/doc/apiv3/payscore.php?chapter=29_3&index=3
2 years ago
*/ function openBusinessView(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("openBusinessView", {
2 years ago
businessType: params.businessType,
2 years ago
queryString: params.queryString || "",
2 years ago
envVersion: params.envVersion
2 years ago
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!isAndroid || !res.extraData) {
2 years ago
return [
2,
res
];
2 years ago
}
try {
res.extraData = JSON.parse(res.extraData);
2 years ago
} catch (error) {
2 years ago
res.extraData = {};
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
/**
* 查看设备
*
* @limit
* - 调用者必须拥有指定 deviceSn 的管理权限
*
* @note
* - 若开发者需要在 web 端引导跳转设备管理可以构造链接跳转
* `https://work.weixin.qq.com/wework_admin/frame#hardware/device?sn=DEVICESN`
*
* @compat WeCom iOS, Android >= 2.8.2
*
* @example
* ```ts
* ww.openDeviceProfile({
* deviceSn: 'QYWX001'
* })
* ```
2 years ago
*/ function openDeviceProfile(params) {
return passthrough("openDeviceProfile", params);
2 years ago
}
/**
* 打开会话
*
* @limit
* - 内部群最多 2000 外部群最多 500
* - 若创建的会话包含微信联系人群成员人数不能超过 40
*
* @compat WeCom >= 2.0.0
*
* @example
* ```ts
* ww.openEnterpriseChat({
* groupName: '讨论组',
* userIds: [
* 'zhangsan',
* 'lisi'
* ],
* externalUserIds: [
* 'wmEAlECwAAHrbWYDOK5u3Bf13xlYDAAA',
* 'wmEAlECwAAHibWYDOK5u3Af13xlYDAAA'
* ]
* })
* ```
2 years ago
*/ function openEnterpriseChat(params) {
if (params === void 0) params = {};
return passthrough("openEnterpriseChat", params, {
chatId: params.chatId || "",
chatname: params.groupName || "",
groupName: params.groupName || "",
2 years ago
useridlist: joinList(params.userIds),
userIds: joinList(params.userIds),
openIds: joinList(params.openIds),
externalUserIds: joinList(params.externalUserIds)
});
}
/**
* 打开已有群聊并发送消息
*
* 打开一个已有的群聊并可选发送一条链接消息支持打开企业内部群外部群互联群
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.openExistedChatWithMsg({
* chatId: 'chatId123',
* msg: {
* msgtype: 'link',
* link: {
* title: 'title1',
* desc: 'desc1',
* url: 'link1',
* imgUrl: 'imgurl1'
* }
* }
* })
* ```
2 years ago
*/ function openExistedChatWithMsg(params) {
return passthrough("openExistedChatWithMsg", params);
2 years ago
}
/**
* 进入应用客服会话
*
* 第三方应用可以使用该接口提供按钮让用户快速打开应用客服的会话
*
* @compat WeCom iOS, Android >= 3.1.18
*
* @limit
* - 仅第三方应用可调用
* - 第三方应用需要提前配置客服
* - 当前用户需要有添加外部联系人权限
2 years ago
*/ function openThirdAppServiceChat(params) {
if (params === void 0) params = {};
return passthrough("openThirdAppServiceChat", params);
2 years ago
}
exports.OpenUserProfileType = void 0;
2 years ago
(function(OpenUserProfileType) {
OpenUserProfileType[OpenUserProfileType[/**
* 企业成员
*/ "internal"] = 1] = "internal";
OpenUserProfileType[OpenUserProfileType[/**
* 外部联系人
*/ "external"] = 2] = "external";
2 years ago
})(exports.OpenUserProfileType || (exports.OpenUserProfileType = {}));
/**
* 唤起成员或外部联系人的个人信息页面
*
* @compat WeCom >= 2.4.20
*
* @example
* ```ts
* ww.openUserProfile({
* type: 1,
* userid: 'zhangsan'
* })
* ```
2 years ago
*/ function openUserProfile(params) {
return passthrough("openUserProfile", params);
2 years ago
}
exports.PrintFileIdType = void 0;
2 years ago
(function(PrintFileIdType) {
PrintFileIdType[PrintFileIdType[/**
* mediaid
*/ "mediaid"] = 1] = "mediaid";
PrintFileIdType[PrintFileIdType[/**
* url
*/ "url"] = 2] = "url";
PrintFileIdType[PrintFileIdType[/**
* localId
*/ "localId"] = 4] = "localId";
2 years ago
})(exports.PrintFileIdType || (exports.PrintFileIdType = {}));
/**
* 发起文件打印
*
* @limit
* - 应用需要已获取设备信息 - 打印扫描设备 - 发起文件打印权限授权
* - 当前触发调用人员身份需要在应用的可见范围内
* - 当前企业有安装企业微信打印设备
* - 仅第三方应用使用
*
* @compat WeCom >= 4.0.12
*
* @example
* ```ts
* ww.printFile({
* fileId: 'fileId',
* fileIdType: 1,
* fileName: 'fileName.jpg'
* })
* ```
2 years ago
*/ function printFile(params) {
return passthrough("printFile", params);
2 years ago
}
exports.InTalkType = void 0;
2 years ago
(function(InTalkType) {
InTalkType[/**
* 当前不在任何通话中
*/ "None"] = "None";
InTalkType[/**
* 视频会议中
*/ "HWOpenTalk"] = "HWOpenTalk";
InTalkType[/**
* voip通话中
*/ "VoIP"] = "VoIP";
InTalkType[/**
* 系统通话中
*/ "SystemCall"] = "SystemCall";
2 years ago
})(exports.InTalkType || (exports.InTalkType = {}));
/**
* 查询当前是否在视频会议
*
* @compat WeCom >= 2.5.0
*
* @example
* ```ts
* ww.queryCurrHWOpenTalk()
* ```
2 years ago
*/ function queryCurrHWOpenTalk(params) {
if (params === void 0) params = {};
return passthrough("queryCurrHWOpenTalk", params);
2 years ago
}
/**
* 发起退款
*
* @limit
* - 应用需要具有对外收款权限
* - 发起的用户必须在应用可见范围并实名
* - 只允许退款由应用本身发起的收款
* - 允许第三方应用代开发应用和自建应用调用
*
* @compat WeCom >= 4.0.12
*
* @example
* ```ts
* ww.refundExternalPayment({
* paymentId: 'xxxx',
* outTradeNo: 'yyyy',
* refundFee: 100,
* refundComment: '7天无理由退货'
* })
* ```
2 years ago
*/ function refundExternalPayment(params) {
return passthrough("refundExternalPayment", params);
2 years ago
}
/**
* 保存选择的选项
*
* 用户在网页中进行选择时调用该接口保存用户的选择
*
* @note
* - 接口仅用于审批设置外部选项场景请勿用作其他场景
* - 网页应该做好深色模式适配
*
* @compat WeCom >= 4.0.18
*
* @example
* ```ts
* ww.saveApprovalSelectedItems({
* key: 'key',
* selectedData: [
* {
* key: 'item-1',
* value: '选项1'
* },
* {
* key: 'item-2',
* value: '选项2'
* }
* ]
* })
* ```
2 years ago
*/ function saveApprovalSelectedItems(params) {
return passthrough("saveApprovalSelectedItems", params, {
2 years ago
key: params.key,
2 years ago
selectedData: typeof params.selectedData === "string" ? params.selectedData : JSON.stringify(params.selectedData)
2 years ago
});
}
exports.ScanQRCodeType = void 0;
2 years ago
(function(ScanQRCodeType) {
ScanQRCodeType[/**
* 扫描二维码
*/ "qrCode"] = "qrCode";
ScanQRCodeType[/**
* 扫描条形码
*/ "barCode"] = "barCode";
2 years ago
})(exports.ScanQRCodeType || (exports.ScanQRCodeType = {}));
/**
* 调起企业微信扫一扫
*
* @example
* ```ts
* ww.scanQRCode({
* needResult: true,
* scanType: ['qrCode']
* })
* ```
2 years ago
*/ function scanQRCode(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
var _data_scan_code, res, resultStr, data;
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("scanQRCode", {
2 years ago
needResult: params.needResult ? 1 : 0,
2 years ago
scanType: params.scanType || [
"qrCode",
"barCode"
]
})
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!isIOS) {
2 years ago
return [
2,
res
];
2 years ago
}
resultStr = res.resultStr;
if (!resultStr) {
2 years ago
return [
2,
res
];
2 years ago
}
try {
data = JSON.parse(resultStr);
2 years ago
} catch (error) {
// noop
2 years ago
}
2 years ago
res.resultStr = data == null ? void 0 : (_data_scan_code = data.scan_code) == null ? void 0 : _data_scan_code.scan_result;
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
exports.InputCorpGroupContactMode = void 0;
2 years ago
(function(InputCorpGroupContactMode) {
InputCorpGroupContactMode[/**
* 单选
*/ "single"] = "single";
InputCorpGroupContactMode[/**
* 多选
*/ "multi"] = "multi";
2 years ago
})(exports.InputCorpGroupContactMode || (exports.InputCorpGroupContactMode = {}));
exports.InputCorpGroupContactType = void 0;
2 years ago
(function(InputCorpGroupContactType) {
2 years ago
InputCorpGroupContactType["department"] = "department";
InputCorpGroupContactType["user"] = "user";
})(exports.InputCorpGroupContactType || (exports.InputCorpGroupContactType = {}));
/**
* 企业互联选人
*
* @limit
* - 该接口仅可选择应用可见范围内的成员和部门
*
* @compat WeCom iOS, Android, PC >= 3.1.6
*
* @example
* ```ts
* ww.selectCorpGroupContact({
* fromDepartmentId: -1,
* mode: 'single',
* type: ['department', 'user'],
* selectedDepartmentIds: ['2','3'],
* selectedUserIds: ['lisi','lisi2'],
* selectedOpenUserIds: ['wabc3','wbcde'],
* selectedChainDepartmentIds: [
* {
* corpId: 'ww3333',
* departmentId: '2'
* },
* {
* corpId: 'ww4444',
* departmentId: '3'
* }
* ],
* selectedChainUserIds: [
* {
* corpId: 'ww3333',
* userId: 'userid123',
* openUserId: 'wx1111'
* },
* {
* corpId: 'ww4444',
* userId: 'userid123',
* openUserId: 'wx1111'
* }
* ],
* selectedCorpGroupDepartmentIds: [
* {
* corpId: 'ww3333',
* departmentId: '2'
* },
* {
* corpId: 'ww4444',
* departmentId: '3'
* }
* ],
* selectedCorpGroupUserIds: [
* {
* corpId: 'ww3333',
* userId: 'userid123',
* openUserId: 'wx1111'
* },
* {
* corpId: 'ww4444',
* userId: 'userid123',
* openUserId: 'wx1111'
* }
* ]
* })
* ```
2 years ago
*/ function selectCorpGroupContact(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("selectCorpGroupContact", params)
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!isString(res.result)) {
2 years ago
return [
2,
res
];
2 years ago
}
try {
res.result = JSON.parse(res.result);
2 years ago
} catch (error) {
// noop
2 years ago
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
exports.SelectEnterpriseContactMode = void 0;
2 years ago
(function(SelectEnterpriseContactMode) {
SelectEnterpriseContactMode[/**
* 单选
*/ "single"] = "single";
SelectEnterpriseContactMode[/**
* 多选
*/ "multi"] = "multi";
2 years ago
})(exports.SelectEnterpriseContactMode || (exports.SelectEnterpriseContactMode = {}));
exports.SelectEnterpriseContactType = void 0;
2 years ago
(function(SelectEnterpriseContactType) {
2 years ago
SelectEnterpriseContactType["department"] = "department";
SelectEnterpriseContactType["user"] = "user";
})(exports.SelectEnterpriseContactType || (exports.SelectEnterpriseContactType = {}));
/**
* 选择通讯录成员
*
* @compat WeCom >= 1.3.11; WeChat iOS, Android >= 6.5.10
*
* @example
* ```ts
* ww.selectEnterpriseContact({
* fromDepartmentId: -1,
* mode: 'multi',
* type: ['department', 'user'],
* selectedDepartmentIds: ['2', '3'],
* selectedUserIds: ['lisi', 'lisi2']
* })
* ```
2 years ago
*/ function selectEnterpriseContact(params) {
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var res;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
case 0:
return [
4,
tryEnsureConfigReady()
];
2 years ago
case 1:
2 years ago
_state.sent();
return [
4,
invoke("selectEnterpriseContact", params)
];
2 years ago
case 2:
2 years ago
res = _state.sent();
2 years ago
if (!isString(res.result)) {
2 years ago
return [
2,
res
];
2 years ago
}
try {
res.result = JSON.parse(res.result);
2 years ago
} catch (error) {
// noop
2 years ago
}
2 years ago
return [
2,
res
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
exports.SelectExternalContactType = void 0;
2 years ago
(function(SelectExternalContactType) {
SelectExternalContactType[SelectExternalContactType[/**
* 展示全部外部联系人列表
*/ "all"] = 0] = "all";
SelectExternalContactType[SelectExternalContactType[/**
* 仅展示未曾选择过的外部联系人
*/ "unselected"] = 1] = "unselected";
2 years ago
})(exports.SelectExternalContactType || (exports.SelectExternalContactType = {}));
/**
* 唤起该成员的外部联系人列表并返回员工选择的外部联系人的 userId
*
* @limit
* - 当前成员必须配置了客户联系功能
* - 第三方应用须配置客户联系功能权限
*
* @compat WeCom >= 2.4.20
*
* @example
* ```ts
* ww.selectExternalContact({
* filterType: 0
* })
* ```
2 years ago
*/ function selectExternalContact(params) {
if (params === void 0) params = {};
return passthrough("selectExternalContact", params);
2 years ago
}
exports.SelectPrivilegedContactMode = void 0;
2 years ago
(function(SelectPrivilegedContactMode) {
SelectPrivilegedContactMode[/**
* 单选
*/ "single"] = "single";
SelectPrivilegedContactMode[/**
* 多选
*/ "multi"] = "multi";
2 years ago
})(exports.SelectPrivilegedContactMode || (exports.SelectPrivilegedContactMode = {}));
/**
* 返回 ticket 的选人接口
*
* 用于第三方应用唤起选择企业通讯录成员用户选择的范围区分成两部分回传给第三方应用
*
* 1. 过滤应用可见范围后的 openUserId 列表
* 2. 用户选择完整列表的 ticketticket 后续可用于调用 createChatWithMsg 接口或者[发送模板消息](#94515)
*
* @limit
* - 仅第三方应用非通讯录应用可调用
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.selectPrivilegedContact({
* fromDepartmentId: -1,
* mode: 'multi',
* selectedContextContact: 1
* selectedOpenUserIds: ['xxx', 'yyy'],
* selectedTickets: ['ticket1', 'ticket2']
* })
* ```
2 years ago
*/ function selectPrivilegedContact(params) {
return passthrough("selectPrivilegedContact", params);
2 years ago
}
/**
* 从聊天工具栏或附件栏打开的页面中向当前会话发送消息
*
* @limit
* - 仅从特定入口进入页面才可调用
* - 不同的入口对应用及用户有相应的限制
* | getContext 接口返回的 entry | 自建应用 | 第三方应用 | 用户 | 支持的最低版本 |
* | --- | --- | --- | --- | --- |
* | single_chat_tools | 需有客户联系功能权限 | 需有企业客户权限->客户基础信息权限 | 配置了客户联系功能 | 2.8.10 |
* | group_chat_tools | 需有客户联系功能权限 | 需有企业客户权限->客户基础信息权限 | 配置了客户联系功能 | 2.8.10 |
* | group_chat_tools | 所有 | 需有家校沟通使用权限 | 所有 | 3.0.36 |
* | group_chat_tools | 所有 | 需有家校沟通使用权限 | 所有 | 4.0.8 |
* | chat_attachment | 所有 | 所有 | 所有 | 3.1.6mac端暂不支持 |
*
* @compat WeCom >= 2.8.10
*
* @example
* ```ts
* ww.sendChatMessage({
* msgtype: 'text',
* text: {
* content: '你好'
* }
* })
* ```
2 years ago
*/ function sendChatMessage(params) {
return passthrough("sendChatMessage", params);
2 years ago
}
/**
* 设置私密消息
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.setShareAttr({
* withShareTicket: true,
* state: 'STATE'
* })
* ```
2 years ago
*/ function setShareAttr(params) {
if (params === void 0) params = {};
return passthrough("setShareAttr", params);
2 years ago
}
/**
* 具有客户联系权限的企业成员可通过该接口将文本内容和附件传递到客户群群发发送到客户群
*
* @limit
* - 为防止滥用同一个成员每日向一个客户最多可群发一条消息每次群发最多可选 200 个最近活跃的客户群
* - 当前成员必须配置了客户联系功能
* - 第三方应用须配置客户联系功能权限
*
* @compat WeCom >= 2.8.7
*
* @example
* ```ts
* ww.shareToExternalChat({
* text: {
* content: '企业微信'
* },
* attachments: [
* {
* msgyype: 'image',
* image: {
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png'
* }
* }
* ]
* })
* ```
2 years ago
*/ function shareToExternalChat(params) {
return passthrough("shareToExternalChat", params);
2 years ago
}
/**
* 具有客户联系权限的企业成员可通过该接口将文本内容和附件传递到群发助手发送给客户
*
* @limit
* - 为防止滥用同一个成员每日向一个客户最多可群发一条消息每次群发最多可选 200 个客户
* - 当前成员必须配置了客户联系功能
* - 第三方应用须配置客户联系功能权限
*
* @compat WeCom >= 2.8.7
*
* @example
* ```ts
* ww.shareToExternalContact({
* text: {
* content: '企业微信'
* },
* attachments: [
* {
* msgyype: 'image',
* image: {
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png'
* }
* }
* ]
* })
* ```
2 years ago
*/ function shareToExternalContact(params) {
return passthrough("shareToExternalContact", params);
2 years ago
}
/**
* 发表内容到客户朋友圈
*
* @limit
* - 当前成员必须配置了客户联系功能
* - 第三方应用须配置客户联系功能权限
* - 当前成员必须在客户朋友圈使用范围
* - 当前成员必须具备外部沟通管理成员使用权限
*
* @compat WeCom iOS, Android >= 3.1.12
*
* @example
* ```ts
* ww.shareToExternalMoments({
* text: {
* content: '企业微信'
* },
* attachments: [
* {
* msgyype: 'image',
* image: {
* imgUrl: 'https://res.mail.qq.com/node/ww/wwmng/style/images/index_share_logo$13c64306.png'
* }
* }
* ]
* })
* ```
2 years ago
*/ function shareToExternalMoments(params) {
return passthrough("shareToExternalMoments", params);
2 years ago
}
/**
* 发起无线投屏
*
* @compat WeCom
*
* @example
* ```ts
* ww.startWecast()
* ```
2 years ago
*/ function startWecast(params) {
if (params === void 0) params = {};
return passthrough("startWecast", params);
2 years ago
}
exports.OAType = void 0;
2 years ago
(function(OAType) {
OAType[/**
* 发起审批
*/ "create_approval"] = "10001";
OAType[/**
* 查看审批详情
*/ "view_approval"] = "10002";
2 years ago
})(exports.OAType || (exports.OAType = {}));
exports.OaExtDataType = void 0;
2 years ago
(function(OaExtDataType) {
OaExtDataType[/**
* 链接
*/ "link"] = "link";
OaExtDataType[/**
* 文本
*/ "text"] = "text";
2 years ago
})(exports.OaExtDataType || (exports.OaExtDataType = {}));
/**
* 应用发起审批
*
* 在应用页面中发起审批之后审批流程的每次状态变化都会通知开发者开发者可按需进行拓展开发具体参见[审批流程引擎](#93798)
*
* @limit
* - 应用需具有审批权限
*
* @compat WeCom >= 2.5.0
*
* @example
* ```ts
* ww.thirdPartyOpenPage({
* oaType: '10001',
* templateId: '46af67a118a6ebf000002',
* thirdNo: 'thirdNo',
* extData: {
* fieldList: [
* {
* type: 'text',
* title: '采购类型',
* value: '市场活动'
* },
* {
* type: 'link',
* title: '订单链接',
* value: 'https://work.weixin.qq.com'
* }
* ]
* }
* })
* ```
2 years ago
*/ function thirdPartyOpenPage(params) {
return passthrough("thirdPartyOpenPage", params);
2 years ago
}
/**
* 变更企业互联群成员
*
* @limit
* - 当前成员必须在应用的可见范围
* - 仅支持往群里添加企业内部成员/企业互联成员
* - 仅局校互联企业可调用
*
* @compat WeCom >= 3.1.8
*
* @example
* ```ts
* ww.updateCorpGroupChat({
* chatId: 'CHATID',
* userIdsToAdd: ['lisi', 'lisi2'],
* openUserIdsToAdd: ['wabc3', 'wbcde'],
* corpGroupUserIdsToAdd: [
* {
* corpId: 'ww3333',
* userId: 'userid123',
* openUserId: 'wx1111'
* },
* {
* corpId: 'ww4444',
* userId: 'userid123',
* openUserId: 'wx1111'
* }
* ]
* })
* ```
2 years ago
*/ function updateCorpGroupChat(params) {
return passthrough("updateCorpGroupChat", params);
2 years ago
}
/**
* 变更群成员
*
* @limit
* - 目前仅支持添加企业内成员
* - 仅支持客户群调用
*
* @compat WeCom iOS, Android, PC >= 3.0.36
*
* @example
* ```ts
* ww.updateEnterpriseChat({
* chatId: 'CHATID',
* userIdsToAdd: [
* 'zhangsan',
* 'lisi'
* ]
* })
* ```
2 years ago
*/ function updateEnterpriseChat(params) {
return passthrough("updateEnterpriseChat", params, {
2 years ago
chatId: params.chatId,
userIdsToAdd: joinList(params.userIdsToAdd)
});
}
/**
* 设置朋友圈封面与签名
*
* @compat WeCom iOS, Android >= 3.1.12
*
* @example
* ```ts
* ww.updateMomentSetting({
* signature: '个性签名',
* imgUrl: 'https://work.weixin.qq.com/'
* })
* ```
2 years ago
*/ function updateMomentsSetting(params) {
return passthrough("updateMomentsSetting", params);
2 years ago
}
/**
2 years ago
* **注意页面上需要提前引入 `jwxwork-1.0.0.js`**
*
* ```html
* <script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js" referrerpolicy="origin"></script>
* ```
*
* 初始化[通讯录展示组件](#91958)
*
* 在该接口返回成功后可以直接调用通讯录展示组件的相关方法
2 years ago
*
* @example
* ```ts
* ww.initOpenData()
* ```
2 years ago
*/ function initOpenData(params) {
if (params === void 0) params = {};
return promiseToCallback(params, /*#__PURE__*/ _async_to_generator(function() {
2 years ago
var result;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
if (!isWeCom) {
2 years ago
return [
2,
invokeOpenDataAgentConfig()
];
2 years ago
}
2 years ago
return [
4,
ensureAgentConfigReady()
];
2 years ago
case 1:
2 years ago
result = _state.sent().result;
if (!isWindows && !(win == null ? void 0 : win.WeixinSandBox)) {
throw new SDKError("Missing WeixinSandBox");
2 years ago
}
2 years ago
if (!!(win == null ? void 0 : win.WWOpenData)) return [
3,
3
];
return [
4,
invoke("wwapp.initWwOpenData")
];
2 years ago
case 2:
2 years ago
_state.sent();
_state.label = 3;
2 years ago
case 3:
2 years ago
if (!(win == null ? void 0 : win.WWOpenData)) {
throw new SDKError("Init WWOpenData failed");
2 years ago
}
if (win.WWOpenData.initJSSDK) {
2 years ago
win.WWOpenData.initJSSDK({
invoke: invoke,
ensureAgentConfigReady: ensureAgentConfigReady
});
2 years ago
}
2 years ago
return [
2,
result
];
2 years ago
}
});
2 years ago
}));
2 years ago
}
function invokeOpenDataAgentConfig() {
2 years ago
return _invokeOpenDataAgentConfig.apply(this, arguments);
}
function _invokeOpenDataAgentConfig() {
_invokeOpenDataAgentConfig = _async_to_generator(function() {
var _win_WWOpenData, params;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
if (!(win == null ? void 0 : (_win_WWOpenData = win.WWOpenData) == null ? void 0 : _win_WWOpenData.agentConfig)) {
throw new SDKError("Missing WWOpenData.agentConfig");
2 years ago
}
2 years ago
return [
4,
resolveAgentConfigParams(getSignURL())
];
2 years ago
case 1:
2 years ago
params = _state.sent();
return [
2,
new Promise(function(success, fail) {
win.WWOpenData.agentConfig(_extends({}, params, {
success: success,
fail: fail
}));
})
];
2 years ago
}
});
});
2 years ago
return _invokeOpenDataAgentConfig.apply(this, arguments);
2 years ago
}
function createTransparentIFrame(width, height, el) {
2 years ago
var iframeEl = document.createElement("iframe");
2 years ago
var style = iframeEl.style;
2 years ago
style.display = "block";
style.border = "none";
style.background = "transparent";
2 years ago
style.width = width;
style.height = height;
2 years ago
iframeEl.referrerPolicy = "origin";
iframeEl.setAttribute("frameborder", "0");
iframeEl.setAttribute("allowtransparency", "true");
2 years ago
var containerEl = resolveEl(el);
if (containerEl) {
containerEl.appendChild(iframeEl);
}
return iframeEl;
}
function resolveEl(el) {
2 years ago
if (typeof el === "string") {
2 years ago
return document.querySelector(el);
}
return el;
}
function genUid() {
2 years ago
var rand = Math.random().toString(36).slice(2);
return Date.now().toString(36) + "." + rand;
2 years ago
}
function normalizeError(error) {
2 years ago
if (!error || typeof error !== "object") {
2 years ago
return error;
}
2 years ago
return _extends({}, error, {
message: error.message,
stack: error.stack
});
2 years ago
}
function useRemoteInvoke(postMessage, callback) {
2 years ago
var invoke = function invoke(args) {
return new Promise(function(resolve, reject) {
2 years ago
var uid = genUid();
2 years ago
messageMap.set(uid, {
resolve: resolve,
reject: reject
});
2 years ago
postMessage({
2 years ago
type: "ww-iframe-handle:call",
2 years ago
uid: uid,
args: args
});
});
2 years ago
};
var handleResponseMessage = function handleResponseMessage(msg) {
var handle = messageMap.get(msg.uid);
if (!handle) {
return;
}
handle[msg.kind](msg.args);
messageMap.delete(msg.uid);
};
var messageMap = new Map();
2 years ago
function handleCallMessage(msg) {
2 years ago
return _handleCallMessage.apply(this, arguments);
}
function _handleCallMessage() {
_handleCallMessage = _async_to_generator(function(msg) {
var _tmp, error;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
_state.trys.push([
0,
2,
,
3
]);
_tmp = {
type: "ww-iframe-handle:response",
2 years ago
uid: msg.uid,
2 years ago
kind: "resolve"
2 years ago
};
2 years ago
return [
4,
callback(msg.args)
];
2 years ago
case 1:
2 years ago
postMessage.apply(void 0, [
(_tmp.args = _state.sent(), _tmp)
]);
return [
3,
3
];
2 years ago
case 2:
2 years ago
error = _state.sent();
2 years ago
postMessage({
2 years ago
type: "ww-iframe-handle:response",
2 years ago
uid: msg.uid,
2 years ago
kind: "reject",
args: normalizeError(error)
2 years ago
});
2 years ago
throw error;
case 3:
return [
2
];
2 years ago
}
});
});
2 years ago
return _handleCallMessage.apply(this, arguments);
2 years ago
}
return {
invoke: invoke,
handleCallMessage: handleCallMessage,
handleResponseMessage: handleResponseMessage
};
}
var attached = false;
var listeners = [];
function sendRemoteMessage(target, message, origin) {
2 years ago
var data = typeof message === "string" ? message : JSON.stringify(message);
target == null ? void 0 : target.postMessage(data, origin);
2 years ago
}
function useRemoteMessage(listener) {
if (!attached) {
attached = true;
2 years ago
window.addEventListener("message", onWindowMessage);
2 years ago
}
listeners.push(listener);
2 years ago
return function() {
2 years ago
var index = listeners.indexOf(listener);
if (index >= 0) {
listeners.splice(index, 1);
}
};
}
function onWindowMessage(event) {
try {
var msg = JSON.parse(event.data);
2 years ago
if (!msg.type.startsWith("ww-iframe-handle:")) {
2 years ago
return;
}
2 years ago
for(var _iterator = _create_for_of_iterator_helper_loose(listeners.slice()), _step; !(_step = _iterator()).done;){
var listener = _step.value;
2 years ago
listener(msg, event);
}
2 years ago
} catch (error) {
// noop
2 years ago
}
}
2 years ago
function useIframeClient(iframeEl, origin, callback) {
var onIframeLoad = function onIframeLoad() {
2 years ago
if (iframeReady) {
return;
}
2 years ago
postMessage({
type: "ww-iframe-handle:init"
});
};
var handleReadyMessage = function handleReadyMessage() {
2 years ago
if (iframeReady) {
return;
}
iframeReady = true;
2 years ago
for(var _iterator = _create_for_of_iterator_helper_loose(messageQueue), _step; !(_step = _iterator()).done;){
var message = _step.value;
2 years ago
postMessage(message);
}
2 years ago
};
var enqueueMessage = function enqueueMessage(message) {
2 years ago
var data = JSON.stringify(message);
if (!iframeReady) {
messageQueue.push(data);
2 years ago
} else {
2 years ago
postMessage(data);
}
2 years ago
};
var postMessage = function postMessage(message) {
sendRemoteMessage(iframeEl.contentWindow, message, origin);
};
var _useRemoteInvoke = useRemoteInvoke(enqueueMessage, callback), invoke = _useRemoteInvoke.invoke, handleCallMessage = _useRemoteInvoke.handleCallMessage, handleResponseMessage = _useRemoteInvoke.handleResponseMessage;
var messageQueue = [];
var iframeReady = false;
var dispose = useRemoteMessage(function(msg, event) {
if (event.origin !== origin || iframeEl.contentWindow !== event.source) {
return;
}
switch(msg.type){
case "ww-iframe-handle:ready":
return handleReadyMessage();
case "ww-iframe-handle:call":
return handleCallMessage(msg);
case "ww-iframe-handle:response":
return handleResponseMessage(msg);
}
});
iframeEl.addEventListener("load", onIframeLoad);
2 years ago
return {
2 years ago
el: iframeEl,
2 years ago
invoke: invoke,
dispose: dispose
};
}
function resolveSuiteConfigParams(url) {
2 years ago
return _resolveSuiteConfigParams.apply(this, arguments);
}
function _resolveSuiteConfigParams() {
_resolveSuiteConfigParams = _async_to_generator(function(url) {
2 years ago
var registerOptions, data;
2 years ago
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
registerOptions = getRegisterOptions();
2 years ago
if (!(registerOptions == null ? void 0 : registerOptions.getSuiteConfigSignature)) {
throw new SDKError("Missing getSuiteConfigSignature");
2 years ago
}
2 years ago
return [
4,
registerOptions.getSuiteConfigSignature(url)
];
2 years ago
case 1:
2 years ago
data = _state.sent();
return [
2,
{
2 years ago
suiteid: registerOptions.suiteId,
2 years ago
timestamp: "" + data.timestamp,
2 years ago
nonceStr: data.nonceStr,
signature: data.signature,
2 years ago
jsApiList: mapJsApiListToClient(registerOptions.jsApiList || [
"agentConfig"
])
}
];
2 years ago
}
});
});
2 years ago
return _resolveSuiteConfigParams.apply(this, arguments);
2 years ago
}
function has(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key);
}
2 years ago
function handleCallMsg(msg, options) {
safeRun(options[msg.name], msg.payload || msg.data);
}
2 years ago
var disposeModalFrame;
2 years ago
function showModalFrame(url, callback) {
var handleCloseMsg = function handleCloseMsg() {
var _iframeEl_parentNode;
client.dispose();
(_iframeEl_parentNode = iframeEl.parentNode) == null ? void 0 : _iframeEl_parentNode.removeChild(iframeEl);
};
disposeModalFrame == null ? void 0 : disposeModalFrame();
var iframeEl = createTransparentIFrame("100vw", "100vh", document.body);
2 years ago
var style = iframeEl.style;
2 years ago
style.position = "fixed";
style.left = "0";
style.top = "0";
style.zIndex = "1000";
iframeEl.classList.add("wecom-jssdk-modal");
iframeEl.setAttribute("src", url);
var origin = new URL(url).origin;
var client = useIframeClient(iframeEl, origin, function(msg) {
if (msg.type === "close") {
handleCloseMsg();
2 years ago
}
2 years ago
return callback == null ? void 0 : callback(msg);
});
2 years ago
disposeModalFrame = handleCloseMsg;
2 years ago
return client;
2 years ago
}
/**
* 创建 JSAPI 触发面板
*
* 在非企业微信内置浏览器环境下开发者可以创建 JSAPI 触发面板当用户点击面板时内置的 iframe 将调起用户本地的企业微信客户端并调用指定的 JSAPI
*
* @param name 要调用的 JSAPI 名称
*
* @limit
* - 应用必须经过 SSO 登录获取 web_token
* - 用户必须登录了企业微信桌面端且当前用户身份和页面身份一致
2 years ago
*/ function createJSAPIPanel(name, options) {
var handleGetStaticOptionsMsg = function handleGetStaticOptionsMsg() {
2 years ago
return {
name: name,
2 years ago
options: _extends({}, options, {
el: undefined,
params: undefined
})
2 years ago
};
2 years ago
};
var handleJsapiCallbackMsg = function handleJsapiCallbackMsg(msg) {
2 years ago
if (!jsapiParamsMap.has(msg.seq)) {
return;
}
var jsapiParams = jsapiParamsMap.get(msg.seq);
2 years ago
jsapiParamsMap.delete(msg.seq);
if (msg.kind === "success") {
safeRun(jsapiParams == null ? void 0 : jsapiParams.success, msg.payload);
} else {
safeRun(jsapiParams == null ? void 0 : jsapiParams.fail, msg.payload);
2 years ago
}
2 years ago
safeRun(jsapiParams == null ? void 0 : jsapiParams.complete, msg.payload);
};
var handleOpenModalFrameMsg = function handleOpenModalFrameMsg(msg) {
showModalFrame(msg.payload.url);
};
var iframeEl = createTransparentIFrame("100%", "100%", options.el);
var jsapiParamsMap = new Map();
var dispose = useIframeClient(iframeEl, "https://login.work.weixin.qq.com", function(msg) {
switch(msg.type){
case "getStaticOptions":
return handleGetStaticOptionsMsg();
case "getJSAPIParams":
return handleGetJSAPIParams(msg);
case "openModalFrame":
return handleOpenModalFrameMsg(msg);
case "jsapiCallback":
return handleJsapiCallbackMsg(msg);
case "call":
return handleCallMsg(msg, options);
2 years ago
}
2 years ago
}).dispose;
2 years ago
function handleGetJSAPIParams(msg) {
2 years ago
return _handleGetJSAPIParams.apply(this, arguments);
}
function _handleGetJSAPIParams() {
_handleGetJSAPIParams = _async_to_generator(function(msg) {
var _msg_payload, _msg_payload1, jsapiParams, _tmp, signUrl, _tmp1, _tmp2;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
if (!isFunction(options.params)) return [
3,
2
];
return [
4,
options.params()
];
2 years ago
case 1:
2 years ago
_tmp = _state.sent();
return [
3,
3
];
2 years ago
case 2:
2 years ago
_tmp = options.params;
_state.label = 3;
2 years ago
case 3:
2 years ago
jsapiParams = _tmp;
2 years ago
signUrl = getSignURL();
jsapiParamsMap.set(msg.seq, jsapiParams);
2 years ago
_tmp1 = {
2 years ago
webToken: options.webToken,
url: signUrl
};
2 years ago
if (!((_msg_payload = msg.payload) == null ? void 0 : _msg_payload.skipSignature)) return [
3,
4
];
_tmp2 = undefined;
return [
3,
6
];
case 4:
return [
4,
resolveSignatureData(signUrl, ((_msg_payload1 = msg.payload) == null ? void 0 : _msg_payload1.preferSignatureTypeList) || [
"agentConfig"
])
];
2 years ago
case 5:
2 years ago
_tmp2 = _state.sent();
_state.label = 6;
case 6:
return [
2,
(_tmp1.configParams = _tmp2, _tmp1.jsapi = name, _tmp1.jsapiParams = jsapiParams, _tmp1)
];
2 years ago
}
});
});
2 years ago
return _handleGetJSAPIParams.apply(this, arguments);
2 years ago
}
2 years ago
iframeEl.style.opacity = "0";
iframeEl.src = "https://login.work.weixin.qq.com/wwopen/ww-jsapi-transparent-frame";
2 years ago
return {
/**
2 years ago
* JSAPI 触发面板的 iframe 元素
*/ el: iframeEl,
2 years ago
/**
2 years ago
* 卸载 JSAPI 触发面板
*/ unmount: function unmount() {
var _iframeEl_parentNode;
2 years ago
dispose();
2 years ago
(_iframeEl_parentNode = iframeEl.parentNode) == null ? void 0 : _iframeEl_parentNode.removeChild(iframeEl);
2 years ago
}
};
}
var resolveSignatureFnMap = {
agentConfig: resolveAgentConfigParams,
suiteConfig: resolveSuiteConfigParams
};
function resolveSignatureData(url, typeList) {
2 years ago
return _resolveSignatureData.apply(this, arguments);
}
function _resolveSignatureData() {
_resolveSignatureData = _async_to_generator(function(url, typeList) {
var lastError, _iterator, _step, type, _tmp, error;
return __generator(this, function(_state) {
switch(_state.label){
2 years ago
case 0:
2 years ago
lastError = new Error("Missing signature handler");
_iterator = _create_for_of_iterator_helper_loose(typeList);
_state.label = 1;
2 years ago
case 1:
2 years ago
if (!!(_step = _iterator()).done) return [
3,
6
];
type = _step.value;
_state.label = 2;
2 years ago
case 2:
2 years ago
_state.trys.push([
2,
4,
,
5
]);
2 years ago
if (!has(resolveSignatureFnMap, type)) {
2 years ago
return [
3,
5
];
2 years ago
}
2 years ago
_tmp = {
2 years ago
type: type
};
2 years ago
return [
4,
resolveSignatureFnMap[type](url)
];
case 3:
return [
2,
(_tmp.params = _state.sent(), _tmp)
];
2 years ago
case 4:
2 years ago
error = _state.sent();
lastError = error;
return [
3,
5
];
2 years ago
case 5:
2 years ago
return [
3,
1
];
case 6:
throw lastError;
2 years ago
}
});
});
2 years ago
return _resolveSignatureData.apply(this, arguments);
2 years ago
}
/**
2 years ago
* 显示确认安全网关配置页面
*
* 在桌面端页面以 iframe 弹窗的形式覆盖在页面上在移动端页面将跳转至确认页面返回后页面需要主动确认 confirm_id 的确认情况
*/ function showSecurityGatewayConfirmModal(options) {
var url = new URL("https://open.work.weixin.qq.com/wwopen/secureGateway/confirm");
url.searchParams.set("confirm_id", options.confirmId);
if (isIOS || isAndroid) {
location.href = url.href;
return;
}
url.searchParams.set("modal", "true");
var client = showModalFrame(url.href, function(msg) {
switch(msg.type){
case "call":
return handleCallMsg(msg, options);
case "close":
return;
default:
throw new Error("Unknown message type '" + msg.type + "'");
}
});
return {
/**
* 弹窗面板的 iframe 元素
*/ el: client.el,
/**
* 卸载弹窗面板
*/ unmount: function unmount() {
var _client_el_parentNode;
client.dispose();
(_client_el_parentNode = client.el.parentNode) == null ? void 0 : _client_el_parentNode.removeChild(client.el);
}
};
}
var SDK_VERSION = "1.4.3";
2 years ago
exports.WWLoginType = void 0;
2 years ago
(function(WWLoginType) {
WWLoginType[/**
* [第三方应用登录](#45846)
*/ "serviceApp"] = "ServiceApp";
WWLoginType[/**
* [企业自建应用登录](/document/path/98151)[](/document/path/98173)
*/ "corpApp"] = "CorpApp";
2 years ago
})(exports.WWLoginType || (exports.WWLoginType = {}));
exports.WWLoginLangType = void 0;
2 years ago
(function(WWLoginLangType) {
WWLoginLangType[/**
* 中文
*/ "zh"] = "zh";
WWLoginLangType[/**
* 英文
*/ "en"] = "en";
2 years ago
})(exports.WWLoginLangType || (exports.WWLoginLangType = {}));
exports.WWLoginRedirectType = void 0;
2 years ago
(function(WWLoginRedirectType) {
WWLoginRedirectType[/**
* 默认 `top window` 顶层页面跳转
*/ "top"] = "top";
WWLoginRedirectType[/**
* 通过 `onLoginSuccess` 回调用户授权 `code`开发者自行处理跳转
*/ "callback"] = "callback";
WWLoginRedirectType[/**
* 登录组件跳转
*/ "self"] = "self";
2 years ago
})(exports.WWLoginRedirectType || (exports.WWLoginRedirectType = {}));
exports.WWLoginPanelSizeType = void 0;
2 years ago
(function(WWLoginPanelSizeType) {
WWLoginPanelSizeType[/**
* 默认: 480x416px
*/ "middle"] = "middle";
WWLoginPanelSizeType[/**
* 小尺寸: 320x380px
*/ "small"] = "small";
2 years ago
})(exports.WWLoginPanelSizeType || (exports.WWLoginPanelSizeType = {}));
2 years ago
var _obj;
var PANEL_SIZE = (_obj = {}, _obj[exports.WWLoginPanelSizeType.middle] = [
"480px",
"416px"
], _obj[exports.WWLoginPanelSizeType.small] = [
"320px",
"380px"
], _obj);
2 years ago
/**
* 初始化企业微信Web登录组件创建登录面板
*
* @example
* ```ts
* // 初始化
* const wwLogin = ww.createWWLoginPanel({
* el: '#ww_login',
* params: {
* login_type: 'CorpApp',
* appid: 'wwbbb6a7b539f2xxxxx',
* agentid: '10000xx',
* redirect_uri: 'https://work.weixin.qq.com',
* state: 'loginState',
* redirect_type: 'callback',
* },
* onCheckWeComLogin({ isWeComLogin }) {
* console.log(isWeComLogin)
* },
* onLoginSuccess({ code }) {
* console.log({ code })
* },
* onLoginFail(err) {
* console.log(err)
* },
* })
*
* // 卸载
* wwLogin.unmount()
* ```
2 years ago
*/ function createWWLoginPanel(options) {
var _options_params;
var _getPanelSize = getPanelSize((_options_params = options.params) == null ? void 0 : _options_params.panel_size), width = _getPanelSize.width, height = _getPanelSize.height;
2 years ago
var iframeEl = createTransparentIFrame(width, height, options.el);
2 years ago
var dispose = useIframeClient(iframeEl, "https://login.work.weixin.qq.com", function(msg) {
if (msg.type === "call") {
return handleCallMsg(msg, options);
2 years ago
}
2 years ago
throw new Error("Unknown message type '" + msg.type + "'");
2 years ago
}).dispose;
2 years ago
var url = new URL("https://login.work.weixin.qq.com/wwlogin/sso/login");
for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(options.params || {})), _step; !(_step = _iterator()).done;){
var key = _step.value;
2 years ago
url.searchParams.set(key, options.params[key]);
}
2 years ago
url.searchParams.set("version", SDK_VERSION);
2 years ago
iframeEl.src = url.href;
return {
el: iframeEl,
2 years ago
unmount: function unmount() {
var _iframeEl_parentNode;
2 years ago
dispose();
2 years ago
(_iframeEl_parentNode = iframeEl.parentNode) == null ? void 0 : _iframeEl_parentNode.removeChild(iframeEl);
2 years ago
}
};
}
function getPanelSize(panelSizeType) {
2 years ago
if (panelSizeType === void 0) panelSizeType = exports.WWLoginPanelSizeType.middle;
var size = PANEL_SIZE[panelSizeType] || PANEL_SIZE[exports.WWLoginPanelSizeType.middle];
2 years ago
return {
width: size[0],
height: size[1]
};
}
/**
* From https://gist.github.com/schacon/12703
2 years ago
*/ function hex_sha1(s) {
2 years ago
return rstr2hex(rstr_sha1(s));
}
/**
* Calculate the SHA1 of a raw string
2 years ago
*/ function rstr_sha1(s) {
2 years ago
return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8));
}
/**
* Convert a raw string to a hex string
2 years ago
*/ function rstr2hex(input) {
var hex_tab = "0123456789abcdef";
var output = "";
2 years ago
var x;
2 years ago
for(var i = 0; i < input.length; i++){
2 years ago
x = input.charCodeAt(i);
2 years ago
output += hex_tab.charAt(x >>> 4 & 0x0f) + hex_tab.charAt(x & 0x0f);
2 years ago
}
return output;
}
/**
* Convert a raw string to an array of big-endian words
* Characters >255 have their high-byte silently ignored.
2 years ago
*/ function rstr2binb(input) {
2 years ago
var output = new Array(input.length >> 2);
2 years ago
for(var i = 0; i < output.length; i++)output[i] = 0;
for(var i1 = 0; i1 < input.length * 8; i1 += 8)output[i1 >> 5] |= (input.charCodeAt(i1 / 8) & 0xff) << 24 - i1 % 32;
2 years ago
return output;
}
/**
* Convert an array of little-endian words to a string
2 years ago
*/ function binb2rstr(input) {
var output = "";
for(var i = 0; i < input.length * 32; i += 8)output += String.fromCharCode(input[i >> 5] >>> 24 - i % 32 & 0xff);
2 years ago
return output;
}
/**
* Calculate the SHA-1 of an array of big-endian words, and a bit length
2 years ago
*/ function binb_sha1(x, len) {
/* append padding */ x[len >> 5] |= 0x80 << 24 - len % 32;
x[(len + 64 >> 9 << 4) + 15] = len;
2 years ago
var w = new Array(80);
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
var e = -1009589776;
2 years ago
for(var i = 0; i < x.length; i += 16){
2 years ago
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
var olde = e;
2 years ago
for(var j = 0; j < 80; j++){
if (j < 16) w[j] = x[i + j];
else w[j] = bit_rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
2 years ago
var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
e = d;
d = c;
c = bit_rol(b, 30);
b = a;
a = t;
}
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
e = safe_add(e, olde);
}
2 years ago
return [
a,
b,
c,
d,
e
];
2 years ago
}
/**
* Perform the appropriate triplet combination function for the current
* iteration
2 years ago
*/ function sha1_ft(t, b, c, d) {
if (t < 20) return b & c | ~b & d;
if (t < 40) return b ^ c ^ d;
if (t < 60) return b & c | b & d | c & d;
2 years ago
return b ^ c ^ d;
}
/**
* Determine the appropriate additive constant for the current iteration
2 years ago
*/ function sha1_kt(t) {
return t < 20 ? 1518500249 : t < 40 ? 1859775393 : t < 60 ? -1894007588 : -899497514;
2 years ago
}
/**
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
2 years ago
*/ function safe_add(x, y) {
var lsw = (x & 0xffff) + (y & 0xffff);
2 years ago
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
2 years ago
return msw << 16 | lsw & 0xffff;
2 years ago
}
/**
* Bitwise rotate a 32-bit number to the left.
2 years ago
*/ function bit_rol(num, cnt) {
return num << cnt | num >>> 32 - cnt;
2 years ago
}
function getSignature(options) {
var normalized = options;
2 years ago
if (typeof options === "string") {
normalized = {
ticket: options
};
2 years ago
}
var nonceStr = normalized.nonceStr || Math.random().toString(36).slice(2);
var timestamp = normalized.timestamp || Math.floor(Date.now() / 1000);
2 years ago
var url = normalized.url || getHref().split("#")[0];
2 years ago
var ticket = normalized.ticket;
2 years ago
var signature = hex_sha1("jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + url);
return {
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature
};
2 years ago
}
2 years ago
var env = {
isWeChat: isWeChat,
isWeCom: isWeCom
};
2 years ago
var IS_WECOM_SDK = true;
exports.IS_WECOM_SDK = IS_WECOM_SDK;
exports.SDK_VERSION = SDK_VERSION;
exports.addCard = addCard;
exports.addDevice = addDevice;
exports.checkJsApi = checkJsApi;
exports.checkSchedule = checkSchedule;
exports.chooseCard = chooseCard;
exports.chooseImage = chooseImage;
exports.chooseInvoice = chooseInvoice;
exports.chooseWXPay = chooseWXPay;
exports.claimClassAdmin = claimClassAdmin;
exports.closeBLEConnection = closeBLEConnection;
exports.closeBluetoothAdapter = closeBluetoothAdapter;
exports.closeWindow = closeWindow;
exports.connectWifi = connectWifi;
exports.consumeAndShareCard = consumeAndShareCard;
exports.createBLEConnection = createBLEConnection;
exports.createChatWithMsg = createChatWithMsg;
exports.createCorpGroupChat = createCorpGroupChat;
exports.createExternalPayment = createExternalPayment;
exports.createJSAPIPanel = createJSAPIPanel;
exports.createSchoolPayment = createSchoolPayment;
exports.createWWLoginPanel = createWWLoginPanel;
exports.discoverDevice = discoverDevice;
exports.downloadImage = downloadImage;
exports.downloadLivingReplay = downloadLivingReplay;
exports.downloadVoice = downloadVoice;
exports.ensureAgentConfigReady = ensureAgentConfigReady;
exports.ensureConfigReady = ensureConfigReady;
exports.ensureCorpConfigReady = ensureCorpConfigReady;
exports.enterHWOpenTalk = enterHWOpenTalk;
exports.enterpriseVerify = enterpriseVerify;
exports.env = env;
exports.getApprovalSelectedItems = getApprovalSelectedItems;
exports.getBLEDeviceCharacteristics = getBLEDeviceCharacteristics;
exports.getBLEDeviceServices = getBLEDeviceServices;
exports.getBeacons = getBeacons;
exports.getBluetoothAdapterState = getBluetoothAdapterState;
exports.getBluetoothDevices = getBluetoothDevices;
exports.getClipboardData = getClipboardData;
exports.getConnectedBluetoothDevices = getConnectedBluetoothDevices;
exports.getConnectedWifi = getConnectedWifi;
exports.getContext = getContext;
exports.getCurCorpGroupChat = getCurCorpGroupChat;
exports.getCurCorpGroupContact = getCurCorpGroupContact;
exports.getCurExternalChat = getCurExternalChat;
exports.getCurExternalContact = getCurExternalContact;
exports.getLocalImgData = getLocalImgData;
exports.getLocation = getLocation;
exports.getNetworkType = getNetworkType;
exports.getShareInfo = getShareInfo;
exports.getSignature = getSignature;
exports.getVerifyParams = getVerifyParams;
exports.getWifiList = getWifiList;
exports.hideAllNonBaseMenuItem = hideAllNonBaseMenuItem;
exports.hideChatAttachmentMenu = hideChatAttachmentMenu;
exports.hideMenuItems = hideMenuItems;
exports.hideOptionMenu = hideOptionMenu;
exports.initOpenData = initOpenData;
exports.invoke = invoke;
2 years ago
exports.launchMiniprogram = launchMiniprogram;
2 years ago
exports.navigateToAddCustomer = navigateToAddCustomer;
exports.navigateToKfChat = navigateToKfChat;
exports.notifyBLECharacteristicValueChange = notifyBLECharacteristicValueChange;
exports.on = on;
exports.onBLECharacteristicValueChange = onBLECharacteristicValueChange;
exports.onBLEConnectionStateChange = onBLEConnectionStateChange;
exports.onBeaconServiceChange = onBeaconServiceChange;
exports.onBeaconUpdate = onBeaconUpdate;
exports.onBluetoothAdapterStateChange = onBluetoothAdapterStateChange;
exports.onBluetoothDeviceFound = onBluetoothDeviceFound;
exports.onGetWifiList = onGetWifiList;
exports.onHistoryBack = onHistoryBack;
exports.onLocationChange = onLocationChange;
exports.onMenuShareAppMessage = onMenuShareAppMessage;
exports.onMenuShareQQ = onMenuShareQQ;
exports.onMenuShareQZone = onMenuShareQZone;
exports.onMenuShareTimeline = onMenuShareTimeline;
exports.onMenuShareWechat = onMenuShareWechat;
exports.onMenuShareWeibo = onMenuShareWeibo;
exports.onNetworkStatusChange = onNetworkStatusChange;
exports.onSearchBeacons = onSearchBeacons;
exports.onUserCaptureScreen = onUserCaptureScreen;
exports.onVoicePlayEnd = onVoicePlayEnd;
exports.onVoiceRecordEnd = onVoiceRecordEnd;
exports.onWifiConnected = onWifiConnected;
exports.openAddress = openAddress;
exports.openAppComment = openAppComment;
exports.openAppDeviceDataAuth = openAppDeviceDataAuth;
exports.openAppManage = openAppManage;
exports.openBluetoothAdapter = openBluetoothAdapter;
exports.openBusinessView = openBusinessView;
exports.openCard = openCard;
exports.openDefaultBrowser = openDefaultBrowser;
exports.openDeviceProfile = openDeviceProfile;
exports.openEnterpriseChat = openEnterpriseChat;
exports.openEnterpriseRedPacket = openEnterpriseRedPacket;
exports.openExistedChatWithMsg = openExistedChatWithMsg;
exports.openLocation = openLocation;
exports.openProductSpecificView = openProductSpecificView;
exports.openThirdAppServiceChat = openThirdAppServiceChat;
exports.openUserProfile = openUserProfile;
exports.pauseVoice = pauseVoice;
exports.playVoice = playVoice;
exports.previewFile = previewFile;
exports.previewImage = previewImage;
exports.printFile = printFile;
exports.queryCurrHWOpenTalk = queryCurrHWOpenTalk;
exports.readBLECharacteristicValue = readBLECharacteristicValue;
exports.refundExternalPayment = refundExternalPayment;
exports.register = register;
exports.replayLiving = replayLiving;
exports.saveApprovalSelectedItems = saveApprovalSelectedItems;
exports.scanQRCode = scanQRCode;
exports.selectCorpGroupContact = selectCorpGroupContact;
exports.selectEnterpriseContact = selectEnterpriseContact;
exports.selectExternalContact = selectExternalContact;
exports.selectPrivilegedContact = selectPrivilegedContact;
exports.sendChatMessage = sendChatMessage;
exports.setClipboardData = setClipboardData;
exports.setShareAttr = setShareAttr;
exports.shareAppMessage = shareAppMessage;
exports.shareToExternalChat = shareToExternalChat;
exports.shareToExternalContact = shareToExternalContact;
exports.shareToExternalMoments = shareToExternalMoments;
exports.shareWechatMessage = shareWechatMessage;
exports.showAllNonBaseMenuItem = showAllNonBaseMenuItem;
exports.showMenuItems = showMenuItems;
exports.showOptionMenu = showOptionMenu;
2 years ago
exports.showSecurityGatewayConfirmModal = showSecurityGatewayConfirmModal;
2 years ago
exports.startAutoLBS = startAutoLBS;
exports.startBeaconDiscovery = startBeaconDiscovery;
exports.startBluetoothDevicesDiscovery = startBluetoothDevicesDiscovery;
exports.startLiving = startLiving;
exports.startMeeting = startMeeting;
exports.startRecord = startRecord;
exports.startSearchBeacons = startSearchBeacons;
exports.startWecast = startWecast;
exports.startWifi = startWifi;
exports.stopAutoLBS = stopAutoLBS;
exports.stopBeaconDiscovery = stopBeaconDiscovery;
exports.stopBluetoothDevicesDiscovery = stopBluetoothDevicesDiscovery;
exports.stopRecord = stopRecord;
exports.stopSearchBeacons = stopSearchBeacons;
exports.stopVoice = stopVoice;
exports.stopWifi = stopWifi;
exports.thirdPartyOpenPage = thirdPartyOpenPage;
exports.translateVoice = translateVoice;
exports.updateAppMessageShareData = updateAppMessageShareData;
exports.updateCorpGroupChat = updateCorpGroupChat;
exports.updateEnterpriseChat = updateEnterpriseChat;
exports.updateMomentsSetting = updateMomentsSetting;
exports.updateTimelineShareData = updateTimelineShareData;
exports.uploadImage = uploadImage;
exports.uploadVoice = uploadVoice;
exports.wedocSelectDoc = wedocSelectDoc;
exports.wedriveSelectDir = wedriveSelectDir;
exports.wedriveSelectFileForDownload = wedriveSelectFileForDownload;
exports.wedriveSelectFileForShare = wedriveSelectFileForShare;
exports.writeBLECharacteristicValue = writeBLECharacteristicValue;