mtl-js-sdk
Version:
356 lines (308 loc) • 10.4 kB
JavaScript
;
var _amapLocation = require("./static/js/map/amapLocation");
var _amapOpen = require("./static/js/map/amapOpen");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
define(["axios", "qrious"], function (axios, QRious) {
var baseUrl = 'https://build.yyuap.com';
var SUCCESS_CODE = 200;
var FAIL_CODE = 1;
var unsupportFailRes = {
code: FAIL_CODE,
message: "当前平台不支持"
};
var DEFAULT_STORAGE_DOMAIN = "domain.default";
var unsupportMethods = ["startRecord", "stopRecord", "onVoiceRecordEnd", "startSpeechSyn", "stopSpeechSyn", "playVoice", "pauseVoice", "stopVoice", "onVoicePlayEnd", "uploadVoice", "downloadVoice", "chooseImage", "previewImage", "uploadImage", "downloadImage", "getLocalImgData", "translateVoice", "getNetworkType", "faceRegister", "faceVerify", "getAuthCode", "getUserInfo", "getAppCode", "getMac", "dail", "voiceToText", "getOAuthCode", "getOAuthCode", "changeScreenOrientation", "restoreScreenOrientation", "isWebviewCanGoBack", "onWebviewGoBack", "customScanQRCode", "doShare", "openShare", "scanInvoice", "scanIDCard", "scanBankCard", "backIntercept", "openSchema", "getConfig"];
function unsupportMethodIMP() {
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
object.fail && object.fail(unsupportFailRes);
object.complete && object.complete(unsupportFailRes);
}
function generateQRCode(object) {
if (!!!object.str) {
var _res = {
code: -1,
message: "str is null"
};
object.fail && object.fail(_res);
object.complete && object.complete(_res);
return;
}
var qr = new QRious({
value: object.str,
size: object.size || 100
});
var imgSrc = qr.toDataURL("image/jpeg");
var res = {
imgSrc: imgSrc
};
object.success && object.success(res);
object.complete && object.complete(res);
}
function recognizeInvoice(object) {
recognize(_objectSpread({}, object, {
recognizetype: 'invoice'
}));
}
function recognizeIDCard(object) {
recognize(_objectSpread({}, object, {
recognizetype: 'id'
}));
}
function recognizeBankCard(object) {
recognize(_objectSpread({}, object, {
recognizetype: 'bank'
}));
}
function recognize(object) {
var appCode = object.appCode,
image = object.image,
side = object.side,
_object$url = object.url,
url = _object$url === void 0 ? baseUrl : _object$url,
recognizetype = object.recognizetype;
var index = image.indexOf("base64,");
if (index !== -1) {
image = image.substring(index + 7, image.count);
}
var path;
if (recognizetype === "invoice") {
path = "".concat(url, "/mobile-app/rest/v1/api/apilink/ocr/invoice/vat/base64");
} else if (recognizetype === "id") {
path = "".concat(url, "/mobile-app/rest/v1/api/apilink/ocr/card/id/base64");
} else if (recognizetype === "bank") {
path = "".concat(url, "/mobile-app/rest/v1/api/apilink/ocr/card/bank/base64");
}
var params = {
image: image,
apiCode: appCode,
isFront: side === 'back' ? false : true
};
axios({
method: "post",
url: path,
params: null,
data: params,
headers: {
"Content-Type": "application/json;charset=UTF-8"
}
}).then(function (res) {
object.success && object.success(res.data);
object.complete && object.complete(res);
})["catch"](function (err) {
object.fail && object.fail(err);
object.complete && object.complete(err);
});
}
function request(object) {
axios(object).then(function (response) {
var code = response.status,
message = response.statusText,
data = response.data;
if (code === 200) {
object.success && object.success(data);
} else {
object.fail && object.fail({
code: code,
message: message,
data: data
});
}
object.complete && object.complete({
code: code,
message: message,
data: data
});
})["catch"](function (err) {
var result = {
code: FAIL_CODE,
message: err.message
};
object.fail && object.fail(result);
object.complete && object.complete(result);
});
}
function setStorage(obj) {
var _obj$domain = obj.domain,
domain = _obj$domain === void 0 ? DEFAULT_STORAGE_DOMAIN : _obj$domain,
key = obj.key,
data = obj.data;
if (!!!key || !!!data) {
var error = {
code: FAIL_CODE,
message: "".concat(!!key ? 'data' : 'key', " is null")
};
obj.fail && obj.fail(error);
obj.complete && obj.complete(error);
return;
}
if (typeof key != "string") {
throw new TypeError("key is not a string");
}
var structs = localStorage.getItem(domain);
structs = structs && JSON.parse(structs) || {};
if (data) {
structs[key] = data;
} else {
delete structs[key];
}
localStorage.setItem(domain, JSON.stringify(structs));
obj.success && obj.success();
obj.complete && obj.complete({
code: SUCCESS_CODE,
message: "setStorage:ok"
});
}
function getStorage(obj) {
var res = null;
var data = null;
var _obj$domain2 = obj.domain,
domain = _obj$domain2 === void 0 ? DEFAULT_STORAGE_DOMAIN : _obj$domain2,
key = obj.key;
if (!!!key) {
var error = {
code: FAIL_CODE,
message: "key is null."
};
obj.fail && obj.fail(error);
obj.complete && obj.complete(error);
return;
}
if (typeof key != "string") {
res = {
code: FAIL_CODE,
message: new TypeError("key is not a string").toString()
};
obj.fail && obj.fail(res);
} else {
var structs = localStorage.getItem(domain);
structs = structs && JSON.parse(structs);
data = structs && structs.hasOwnProperty(key) && structs[key] || null;
if (!!data) {
res = {
code: SUCCESS_CODE,
message: "getStorage:ok",
data: {
data: data
}
};
obj.success && obj.success(res.data);
} else {
res = {
code: FAIL_CODE,
message: new TypeError("data is null").toString()
};
obj.fail && obj.fail(res);
}
}
obj.complete && obj.complete(res);
return data;
}
function removeStorage() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _obj$domain3 = obj.domain,
domain = _obj$domain3 === void 0 ? DEFAULT_STORAGE_DOMAIN : _obj$domain3,
key = obj.key;
var data = null;
if (!!!key) {
var error = {
code: FAIL_CODE,
message: "key is null"
};
obj.fail && obj.fail(error);
obj.complete && obj.complete(error);
return;
}
if (typeof key != "string") {
throw new TypeError("key is not a string");
}
var structs = localStorage.getItem(domain);
structs = structs && JSON.parse(structs) || {};
if (data) {
structs[key] = data;
} else {
delete structs[key];
}
localStorage.setItem(domain, JSON.stringify(structs));
obj.success && obj.success();
obj.complete && obj.complete({
code: SUCCESS_CODE,
message: "removeStorage:ok"
});
}
function clearStorage(obj) {
var domain = obj && obj.domain || DEFAULT_STORAGE_DOMAIN;
localStorage.removeItem(domain);
obj.success && obj.success();
obj.complete && obj.complete({
code: SUCCESS_CODE,
message: "clearStorage:ok"
});
}
function navigateTo(_ref) {
var page = _ref.page,
parameters = _ref.parameters;
location.href = page;
}
function redirectTo(_ref2) {
var page = _ref2.page,
parameters = _ref2.parameters;
location.replace(page);
}
function navigateBack() {
history.back();
}
function openLocation(obj) {
(0, _amapOpen.amapOpen)(obj);
}
function getLocation(obj) {
(0, _amapLocation.amapLocation)(obj);
}
function scanQRCode(obj) {
var person = window.prompt("请输入扫描结果:");
if (!!!person) {
obj.fail && obj.fail({
code: FAIL_CODE,
message: '未输入'
});
obj.complete && obj.complete({
code: FAIL_CODE,
message: '未输入'
});
} else {
obj.success && obj.success({
resultStr: person
});
obj.complete && obj.complete({
resultStr: person
});
}
}
function getAppInfo(obj) {
obj.success && obj.success({});
obj.complete && obj.complete({});
}
var exports = {
generateQRCode: generateQRCode,
recognizeInvoice: recognizeInvoice,
recognizeIDCard: recognizeIDCard,
recognizeBankCard: recognizeBankCard,
request: request,
setStorage: setStorage,
getStorage: getStorage,
removeStorage: removeStorage,
clearStorage: clearStorage,
navigateTo: navigateTo,
redirectTo: redirectTo,
navigateBack: navigateBack,
openLocation: openLocation,
getLocation: getLocation,
scanQRCode: scanQRCode,
getAppInfo: getAppInfo
};
unsupportMethods.forEach(function (prop) {
exports[prop] = unsupportMethodIMP;
});
return exports;
});