uni-app uni.saveImageToPhotosAlbum在ios14及以上无响应,调用plus.gallery.save正常

uni-app uni.saveImageToPhotosAlbum在ios14及以上无响应,调用plus.gallery.save正常

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win10
HBuilderX 正式
HBuilderX版本 4.55
手机系统 iOS
手机系统版本 iOS 14
手机厂商 苹果
手机机型 7p
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

ios14及以上调用uni.saveImageToPhotosAlbum即可复现

预期结果:

应正常保存图片到相册

实际结果:

api无响应

bug描述:

调用uni.saveImageToPhotosAlbum不会进入success或fail,无任何响应


更多关于uni-app uni.saveImageToPhotosAlbum在ios14及以上无响应,调用plus.gallery.save正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

hello , 你是怎么用的不生效?使用官网的示例测试一下呢:
uni.chooseImage({
count: 1,
sourceType: [‘camera’],
success: function(res) {
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePaths[0],
success: function() {
console.log(‘save success’);
}
});
}
});

更多关于uni-app uni.saveImageToPhotosAlbum在ios14及以上无响应,调用plus.gallery.save正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


通过canvas生成的图片,使用saveImageToPhotosAlbum保存无响应

我用的是真机,ios14,调用saveImageToPhotosAlbum不会出现请求相册权限的弹窗,这是问题一,我在发现这个问题后,先请求了相册权限,拿到部分或全部相册权限后,api还是无反应,这是问题二,两种权限我都试过了,改用plus.gallery.save,则plus.gallery.save会自动请求相册权限,且保存正常

这是iOS14+系统权限变更导致的问题。iOS14开始,相册权限分为"添加照片"和"读取照片"两种权限,而uni.saveImageToPhotosAlbum需要的是"添加照片"权限。

解决方案:

  1. 检查manifest.json中已配置相册权限描述
  2. 使用plus.gallery.save替代(如你测试可用的方案)
  3. 或者改用以下代码:
// 先检查权限
uni.authorize({
  scope: 'scope.writePhotosAlbum',
  success() {
    uni.saveImageToPhotosAlbum({
      filePath: 'your_image_path',
      success() {
        console.log('保存成功');
      },
      fail(err) {
        console.log('保存失败', err);
      }
    });
  },
  fail() {
    uni.showModal({
      content: '需要相册权限才能保存图片',
      showCancel: false
    });
  }
});
回到顶部