123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- /* eslint-disable */
- let log = console.log; // 如果在项目的APP.vue文件中的onlaunch中设置 console.log = ()=> {} 则在此也不会有打印信息
- log = ()=>{}; // 打开注释则该插件不会打印任何信息
- let _app = {
- //交互控制
- log(t) {
- log(t);
- }, // 打印控制,
- showLoading(msg, ifmask) {
- uni.showLoading({
- title: msg,
- mask: ifmask || false
- })
- },
- hideLoading() {
- uni.hideLoading();
- },
- showToast(msg, icon) {
- uni.showToast({
- title: msg,
- icon: icon || 'none'
- })
- },
- getPosterUrl(objs) { // 后端获取背景图的url路径方法
- let {
- backgroundImage,
- type,
- formData
- } = objs;
- return new Promise((rs, rj) => {
- let image;
- if (backgroundImage) {
- image = backgroundImage;
- }else{
- switch (type) { //根据type获取背景图, 一般要改成request获取
- case 1:
- image = '';
- break;
- default:
- image = '/static/1.png';
- break;
- }
- }
- if (image) {
- rs(image); // resolve图片的路径
- }else{
- rj('背景图片路径不存在');
- }
- })
- },
- //下面一般不用动他
- shareTypeListSheetArray: {
- array: [0, 1, 2, 3, 4, 5]
- }, // 分享类型 0-图文链接 1-纯文字 2-纯图片 3-音乐 4-视频 5-小程序
- isArray(arg) {
- return Object.prototype.toString.call(arg) === '[object Array]';
- },
- isObject(arg) {
- return Object.prototype.toString.call(arg) === '[object Object]';
- },
- isPromise(obj) {
- return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
- },
- isNull(arg) {
- return arg === null;
- },
- isUndefined(arg) {
- return arg === undefined;
- },
- isUndef(arg) {
- return arg === undefined;
- },
- isNotNull_string(arg) {
- return arg !== null && arg !== undefined && arg !== '';
- },
- isFn(fn) {
- return fn && typeof fn === 'function';
- },
- getStorage(key, scb, fcb) {
- uni.getStorage({
- key,
- success: function(res) {
- if (res.data && res.data != "") {
- if (scb) scb(res.data);
- } else {
- if (fcb) fcb();
- }
- },
- fail: function() {
- if (fcb) fcb();
- }
- })
- },
- setStorage(key, data) {
- log('设置缓存')
- log('key:' + key)
- log('data:' + JSON.stringify(data));
- uni.setStorage({
- key,
- data
- })
- },
- setStorageSync(key, data) {
- uni.setStorageSync(key, data);
- },
- getStorageSync(key) {
- return uni.getStorageSync(key);
- },
- clearStorageSync() {
- uni.clearStorageSync();
- },
- removeStorageSync(key) {
- uni.removeStorageSync(key);
- },
- getImageInfo(url, cb, fcb) {
- url = checkMPUrl(url);
- uni.getImageInfo({
- src: url,
- success(res) {
- if (cb && typeof(cb) == 'function') cb(res);
- },
- fail(err) {
- if (fcb && typeof(fcb) == 'function') fcb(err);
- }
- })
- },
- downloadFile(url, cb) {
- url = checkMPUrl(url);
- uni.downloadFile({
- url,
- success(res) {
- if (cb && typeof(cb) == 'function') cb(res);
- }
- })
- },
- downloadFile_PromiseFc(url) {
- return new Promise((rs, rj) => {
- if (url.substring(0, 4) !== 'http') {
- rs(url);
- }else {
- url = checkMPUrl(url);
- log('url:' + url);
- uni.downloadFile({
- url,
- header: { 'x-api-key': uni.getStorageSync('accessToken') },
- success(res) {
- if (res && res.tempFilePath)
- rs(res.tempFilePath);
- else
- rj('not find tempFilePath');
- },
- fail(err) {
- rj(err);
- }
- })
- }
- });
- },
- saveFile(url) {
- uni.saveFile({
- tempFilePath: url,
- success(res) {
- log('保存成功:' + JSON.stringify(res))
- }
- })
- },
- downLoadAndSaveFile_PromiseFc(url) {
- return new Promise((rs, rj) => {
- log('准备下载并保存图片:' + url);
- if (url.substring(0, 4) === 'http') {
- url = checkMPUrl(url);
- uni.downloadFile({
- url,
- success(d_res) {
- log('下载背景图成功:' + JSON.stringify(d_res));
- if (d_res && d_res.tempFilePath) {
- // #ifdef H5
- rs(d_res.tempFilePath);
- // #endif
- // #ifndef H5
- uni.saveFile({
- tempFilePath: d_res.tempFilePath,
- success(s_res) {
- log('保存背景图成功:' + JSON.stringify(s_res));
- if (s_res && s_res.savedFilePath)
- rs(s_res.savedFilePath);
- else
- rs(d_res.tempFilePath);
- },
- fail(err) {
- rs(d_res.tempFilePath);
- }
- })
- // #endif
- } else {
- rj('not find tempFilePath');
- }
- },
- fail(err) {
- rj(err);
- }
- })
- }else{
- rs(url);
- }
- })
- },
- checkFile_PromiseFc(url) {
- return new Promise((rs, rj) => {
- uni.getSavedFileList({
- success(res) {
- let d = res.fileList;
- let index = d.findIndex(item => {
- return item.filePath === url;
- })
- rs(index);
- },
- fail(err) {
- rj(err);
- }
- })
- });
- },
- removeSavedFile(path) {
- uni.getSavedFileList({
- success(res) {
- let d = res.fileList;
- let index = d.findIndex(item => {
- return item.filePath === path;
- });
- if (index >= 0)
- uni.removeSavedFile({
- filePath: path
- })
- }
- })
- },
- fileNameInPath(path) {
- let s = path.split("/");
- return s[s.length - 1];
- },
- getImageInfo_PromiseFc(imgPath) {
- return new Promise((rs, rj) => {
- log('准备获取图片信息:' + imgPath);
- imgPath = checkMPUrl(imgPath);
- uni.getImageInfo({
- src: imgPath,
- success: res => {
- log('获取图片信息成功:' + JSON.stringify(res));
- rs(res);
- },
- fail: err => {
- log('获取图片信息失败:' + JSON.stringify(err));
- rj(err)
- }
- })
- });
- },
- previewImage(urls) {
- if (typeof(urls) == 'string')
- urls = [urls];
- uni.previewImage({
- urls,
- })
- },
- actionSheet(obj, cb) {
- let sheetArray = [];
- for (let i = 0; i < obj.array.length; i++) {
- switch (obj.array[i]) {
- case 'sinaweibo':
- sheetArray[i] = '新浪微博';
- break;
- case 'qq':
- sheetArray[i] = 'QQ';
- break;
- case 'weixin':
- sheetArray[i] = '微信';
- break;
- case 'WXSceneSession':
- sheetArray[i] = '微信好友';
- break;
- case 'WXSenceTimeline':
- sheetArray[i] = '微信朋友圈';
- break;
- case 'WXSceneFavorite':
- sheetArray[i] = '微信收藏';
- break;
- case 0:
- sheetArray[i] = '图文链接';
- break;
- case 1:
- sheetArray[i] = '纯文字';
- break;
- case 2:
- sheetArray[i] = '纯图片';
- break;
- case 3:
- sheetArray[i] = '音乐';
- break;
- case 4:
- sheetArray[i] = '视频';
- break;
- case 5:
- sheetArray[i] = '小程序';
- break;
- default:
- break;
- }
- }
- this.showActionSheet(sheetArray, cb);
- },
- showActionSheet(sheetArray, cb) {
- uni.showActionSheet({
- itemList: sheetArray,
- success: (e) => {
- if (cb && typeof(cb) == 'function') cb(e.tapIndex);
- }
- })
- },
- getProvider(type, cb, sheet) {
- let _this = this;
- uni.getProvider({
- service: type,
- success: function(res) {
- if (sheet) {
- let obj = {};
- obj.array = res.provider;
- _this.actionSheet(obj, function(index) {
- if (cb && typeof(cb) == "function") cb(res.provider[index]);
- });
- } else {
- if (type == 'payment') {
- let providers = res.provider;
- let payTypeArray = [];
- for (let i = 0; i < providers.length; i++) {
- if (providers[i] == 'wxpay') {
- payTypeArray[i] = {
- name: '微信支付',
- value: providers[i],
- img: '/static/image/wei.png'
- };
- } else if (providers[i] == 'alipay') {
- payTypeArray[i] = {
- name: "支付宝支付",
- value: providers[i],
- img: '/static/image/ali.png'
- };
- }
- }
- if (cb && typeof(cb) == "function") cb(payTypeArray);
- } else {
- if (cb && typeof(cb) == "function") cb(res);
- }
- }
- },
- })
- },
- // #ifdef APP-PLUS
- getShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) { //miniProgram: {path: '', type: 0, webUrl: ''}
- let _this = this;
- if (typeof(shareType) == 'number' && !isNaN(shareType) && shareType >= 0) {
- _this.readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb,
- fcb);
- } else {
- _this.actionSheet(_this.shareTypeListSheetArray, function(index) {
- _this.readyShare(providerName, WXScene, _this.shareTypeListSheetArray.array[index], title, summary, href,
- imageUrl, miniProgramObj, mediaUrl, scb, fcb);
- });
- }
- },
- readyShare(providerName, WXScene, shareType, title, summary, href, imageUrl, miniProgramObj, mediaUrl, scb, fcb) {
- let _this = this;
- let shareObjData = {};
- switch (shareType) {
- case 0:
- shareObjData = {
- href: href,
- summary: summary,
- imageUrl: imageUrl
- };
- break;
- case 1:
- shareObjData = {
- summary: summary,
- href: href
- };
- break;
- case 2:
- shareObjData = {
- imageUrl: imageUrl
- };
- break;
- case 3:
- if (mediaUrl) {
- _this.showToast('暂不支持此分享类型');
- return;
- };
- shareObjData = {
- mediaUrl: mediaUrl
- };
- break;
- case 4:
- if (mediaUrl) {
- _this.showToast('暂不支持此分享类型');
- return;
- };
- shareObjData = {
- mediaUrl: mediaUrl
- };
- break;
- case 5:
- shareObjData = {
- miniProgram: { ...miniProgramObj,
- id: miniProgramId,
- type: miniProgramShareType
- },
- imageUrl: imageUrl
- };
- providerName = 'weixin';
- break;
- default:
- _this.showToast('分享参数-shareType错误');
- return;
- break;
- }
- shareObjData.title = title;
- _this.share(providerName, WXScene, shareType, shareObjData, function(res) {
- if (scb && typeof(scb) == 'function') scb(res);
- }, function(err) {
- if (fcb && typeof(fcb) == 'function') fcb(err);
- });
- },
- share(providerName, WXScene, shareType, data, scb, fcb) {
- let _this = this;
- let shareObj = {
- provider: '',
- success: Function,
- fail: Function
- };
- if (providerName && providerName != '') {
- shareObj.provider = providerName;
- if (providerName == 'weixin') {
- _this.readyShareWXScene(WXScene, function(Scene) {
- shareObj.scene = Scene;
- _this.doingShare(shareObj, shareType, data, scb, fcb);
- });
- } else {
- _this.doingShare(shareObj, shareType, data, scb, fcb);
- }
- } else {
- _this.getProvider('share', function(name) {
- shareObj.provider = name;
- if (name == 'weixin') {
- _this.readyShareWXScene(WXScene, function(Scene) {
- shareObj.scene = Scene;
- _this.doingShare(shareObj, shareType, data, scb, fcb);
- });
- } else {
- _this.doingShare(shareObj, shareType, data, scb, fcb);
- }
- }, true);
- }
- },
- readyShareWXScene(WXScene, cb) {
- let _this = this;
- let WXScenetypelist = {
- array: ['WXSceneSession', 'WXSenceTimeline', 'WXSceneFavorite']
- };
- if (WXScene && WXScene != "") {
- if (cb && typeof(cb) == 'function') cb(WXScene);
- } else {
- _this.actionSheet(WXScenetypelist, function(index) {
- if (cb && typeof(cb) == 'function') cb(WXScenetypelist.array[index]);
- });
- }
- },
- doingShare(shareObj, shareType, data, scb, fcb) {
- shareObj.type = shareType;
- if (data && data.title) shareObj.title = data.title;
- switch (shareType) {
- case 0: //图文链接
- shareObj.href = data.href;
- shareObj.summary = data.summary;
- shareObj.imageUrl = data.imageUrl;
- break;
- case 1: //纯文字
- shareObj.summary = data.summary;
- shareObj.href = data.href;
- break;
- case 2: //纯图片
- shareObj.imageUrl = data.imageUrl;
- break;
- case 3: //音乐
- if (!data.mediaUrl) {
- _this.showToast('暂不支持此分享类型');
- return;
- };
- shareObj.mediaUrl = data.mediaUrl;
- break;
- case 4: //视频
- if (!data.mediaUrl) {
- _this.showToast('暂不支持此分享类型');
- return;
- };
- shareObj.mediaUrl = data.mediaUrl;
- break;
- case 5: //小程序
- if (miniProgramId == '') {
- uni.showToast('未设置小程序ID, 请使用其他方式分享');
- return;
- }
- let mp = {
- id: miniProgramId
- };
- mp.path = data.miniProgram.path;
- mp.type = data.miniProgram.type;
- if (data.miniProgram.webUrl) mp.webUrl = data.miniProgram.webUrl;
- shareObj.miniProgram = mp;
- shareObj.imageUrl = data.imageUrl;
- break;
- default:
- appJS.showToast('分享参数-shareType错误');
- break;
- }
- shareObj.success = function(res) {
- if (scb && typeof(scb) == 'function') scb(res);
- }
- shareObj.fail = function(err) {
- if (fcb && typeof(fcb) == 'function') fcb(err);
- }
- log(JSON.stringify(shareObj));
- uni.share(shareObj);
- },
- // #endif
- }
- function checkMPUrl(url) {
- // #ifdef MP
- if(
- url.substring(0, 4) === 'http' &&
- url.substring(0, 12) !== 'http://store' &&
- url.substring(0, 10) !== 'http://tmp' &&
- url.substring(0, 5) !== 'https'
- ) {
- url = 'https' + url.substring(4, url.length);
- }
- // #endif
- return url;
- }
- module.exports = _app;
|