useSaveToAlbum.ts 835 B

12345678910111213141516171819202122232425262728
  1. export function useSaveToAlbum() {
  2. async function ensureAlbumPermission(): Promise<boolean> {
  3. const setting = await uni.getSetting()
  4. if (setting.authSetting['scope.writePhotosAlbum']) return true
  5. const modal = await uni.showModal({
  6. title: '友情提示',
  7. content: '小程序需要获取您的图片保存功能才可使用',
  8. confirmText: '去设置',
  9. cancelText: '取消',
  10. })
  11. if (!modal.confirm) return false
  12. const open = await uni.openSetting()
  13. return !!open.authSetting['scope.writePhotosAlbum']
  14. }
  15. async function saveToAlbum(filePath: string): Promise<void> {
  16. const ok = await ensureAlbumPermission()
  17. if (!ok) return
  18. await uni.saveImageToPhotosAlbum({ filePath })
  19. uni.showToast({ title: '保存成功', icon: 'success' })
  20. }
  21. return { saveToAlbum }
  22. }