feat: 增加下载分享检查功能
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { recordDownloadSuccess } from './shareGuide';
|
||||
|
||||
const doSaveImage = (canvas: Canvas) => {
|
||||
wx.canvasToTempFilePath({
|
||||
canvas: canvas,
|
||||
@@ -6,11 +8,15 @@ const doSaveImage = (canvas: Canvas) => {
|
||||
success: (res) => {
|
||||
wx.saveImageToPhotosAlbum({
|
||||
filePath: res.tempFilePath,
|
||||
success: () => wx.showToast({
|
||||
title: '保存成功,请在相册中查看',
|
||||
icon: 'success',
|
||||
duration: 2000,
|
||||
}),
|
||||
success: () => {
|
||||
// 记录下载成功
|
||||
recordDownloadSuccess();
|
||||
wx.showToast({
|
||||
title: '保存成功,请在相册中查看',
|
||||
icon: 'success',
|
||||
duration: 2000,
|
||||
});
|
||||
},
|
||||
// fail: () => wx.showToast({
|
||||
// title: '保存涂色卡失败,请重试!',
|
||||
// icon: 'none',
|
||||
@@ -18,38 +24,37 @@ const doSaveImage = (canvas: Canvas) => {
|
||||
// })
|
||||
});
|
||||
},
|
||||
fail: (err: any) => {
|
||||
fail: () => {
|
||||
wx.showToast({
|
||||
title: '生成涂色卡失败,请重试!',
|
||||
icon: 'none',
|
||||
duration: 2000,
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const requestPhotoPermission = (canvas: Canvas) => {
|
||||
wx.authorize({
|
||||
scope: 'scope.writePhotosAlbum',
|
||||
success: () => doSaveImage(canvas),
|
||||
fail: () => wx.showToast({
|
||||
title: '请在“设置-添加到相册”中开启相册权限以保存涂色卡',
|
||||
icon: 'none',
|
||||
duration: 3000,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
fail: () =>
|
||||
wx.showToast({
|
||||
title: '请在“设置-添加到相册”中开启相册权限以保存涂色卡',
|
||||
icon: 'none',
|
||||
duration: 3000,
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
export const checkAndSaveImage = (canvas: Canvas) => {
|
||||
wx.getSetting({
|
||||
success: res => {
|
||||
success: (res) => {
|
||||
if (!res.authSetting['scope.writePhotosAlbum']) {
|
||||
requestPhotoPermission(canvas)
|
||||
requestPhotoPermission(canvas);
|
||||
} else {
|
||||
doSaveImage(canvas)
|
||||
doSaveImage(canvas);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* 分享引导工具
|
||||
* 用于控制每日免费下载次数和分享引导
|
||||
*/
|
||||
|
||||
const STORAGE_KEY_DOWNLOAD_DATE = 'downloadDate';
|
||||
const STORAGE_KEY_DOWNLOAD_COUNT = 'downloadCount';
|
||||
const STORAGE_KEY_SHARED_DATE = 'sharedDate';
|
||||
|
||||
/**
|
||||
* 获取今天的日期字符串(YYYY-MM-DD格式)
|
||||
*/
|
||||
function getTodayDateString(): string {
|
||||
const today = new Date();
|
||||
const year = today.getFullYear();
|
||||
const month = String(today.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(today.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查今天是否已经下载过
|
||||
* @returns true表示今天已下载过,false表示今天未下载
|
||||
*/
|
||||
export function hasDownloadedToday(): boolean {
|
||||
const today = getTodayDateString();
|
||||
const downloadDate = wx.getStorageSync(STORAGE_KEY_DOWNLOAD_DATE);
|
||||
return downloadDate === today;
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录今天的下载成功
|
||||
*/
|
||||
export function recordDownloadSuccess(): void {
|
||||
const today = getTodayDateString();
|
||||
wx.setStorageSync(STORAGE_KEY_DOWNLOAD_DATE, today);
|
||||
const count = wx.getStorageSync(STORAGE_KEY_DOWNLOAD_COUNT) || 0;
|
||||
wx.setStorageSync(STORAGE_KEY_DOWNLOAD_COUNT, count + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查今天是否已经分享过
|
||||
* @returns true表示今天已分享过,false表示今天未分享
|
||||
*/
|
||||
export function hasSharedToday(): boolean {
|
||||
const today = getTodayDateString();
|
||||
const sharedDate = wx.getStorageSync(STORAGE_KEY_SHARED_DATE);
|
||||
return sharedDate === today;
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录今天的分享成功
|
||||
*/
|
||||
export function recordShareSuccess(): void {
|
||||
const today = getTodayDateString();
|
||||
wx.setStorageSync(STORAGE_KEY_SHARED_DATE, today);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否需要显示分享引导
|
||||
* @returns true表示需要显示分享引导,false表示不需要
|
||||
*/
|
||||
export function shouldShowShareGuide(): boolean {
|
||||
// 如果今天已经分享过,不需要显示引导
|
||||
if (hasSharedToday()) {
|
||||
return false;
|
||||
}
|
||||
// 如果今天已经下载过,需要显示引导
|
||||
return hasDownloadedToday();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user