uni-app uni.chooseImage 在 IOS 上点击无反应

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app uni.chooseImage 在 IOS 上点击无反应

开发环境 版本号 项目创建方式
Windows win10 HBuilderX
### 示例代码:


```javascript
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //从相册选择
success: (res) => {
}

操作步骤:

uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //从相册选择
success: (res) => {
}

预期结果:

IOS点击跟Android反应一致


### 实际结果:


没用

bug描述:

uni.chooseImage({ count: 1, sizeType: [‘original’, ‘compressed’], //可以指定是原图还是压缩图,默认二者都有 sourceType: [‘album’, ‘camera’], //从相册选择 success: (res) => { } H5可以用 Android可以用 IOS本地调试模式可以用 IOS云打包后,无论是开发版本,还是发布到APP STORE的版本均点击无任何反应


10 回复

仅这个设备出现问题吗?其他设备是否正常? 正式打包后才出现吗?新建空项目打包后测试下是否正常?


目前公司至少有个5内测的同事反馈。正式线上很多用户还没更新。还没反馈,不过我下载过正式的。点击无反应。

就是正式证书和开发者证书都有问题,目前就是隐私设置里面 应用 相机那个地方根本没有我的应用。权限是肯定设置了的

回复 我不是张三1: UNIID 提供一下

回复 天生DR: 我的问题,已经解决。因为插件市场的更换logo一个插件导致了所有的上传全部失效了。现在已经全部删除该插件。恢复正常了

回复 天生DR: UNIF9FF0DB

回复 我不是张三1: 还在么?哥们, 我也遇到了这个问题,没听懂你的回复

回复 z***@edianzu.com: 我的是 sourceType 传了个 undefined

如何解决呀,sourceType传的也没有问题呀

在 Uni-app 中使用 uni.chooseImage 时,如果在 iOS 上点击无反应,可能是由于以下原因之一导致的。以下是一些常见的排查和解决方法:


1. 权限问题

  • 原因:iOS 需要明确请求相册和相机权限,如果权限未授权或未正确处理,可能导致 uni.chooseImage 无反应。
  • 解决方法
    • 确保在 manifest.json 中配置了相册和相机权限:
      "app-plus": {
        "distribute": {
          "ios": {
            "permissions": {
              "camera": {
                "description": "需要访问相机以拍照"
              },
              "photoLibrary": {
                "description": "需要访问相册以选择图片"
              }
            }
          }
        }
      }
    • 在 iOS 设备上,检查是否已授权相册和相机权限。如果没有,可以引导用户手动开启:
      • 打开 设置 -> 隐私 -> 照片相机,确保应用已开启权限。

2. iOS 版本兼容性问题

  • 原因:某些 iOS 版本可能存在兼容性问题,导致 uni.chooseImage 无法正常调用。
  • 解决方法
    • 确保 Uni-app SDK 和 HBuilderX 是最新版本。
    • 如果问题仍然存在,可以尝试使用原生 API 或插件(如 cordova-plugin-camera)替代 uni.chooseImage

3. 事件绑定问题

  • 原因:可能是事件绑定不正确,导致点击事件未触发。
  • 解决方法
    • 检查代码中是否正确绑定了点击事件。例如:
      <button @click="chooseImage">选择图片</button>
      methods: {
        chooseImage() {
          uni.chooseImage({
            count: 1,
            success: (res) => {
              console.log(res.tempFilePaths);
            },
            fail: (err) => {
              console.error(err);
            }
          });
        }
      }

4. HBuilderX 调试问题

  • 原因:在 HBuilderX 调试时,某些功能可能无法正常使用。
  • 解决方法
    • 尝试使用真机调试,而不是模拟器或 HBuilderX 的内置调试工具。
    • 确保 HBuilderX 是最新版本。

5. iOS 系统限制

  • 原因:iOS 系统对某些操作有严格限制,可能导致 uni.chooseImage 无法正常调用。
  • 解决方法
    • 确保应用运行在合法环境下,避免越狱设备或非官方渠道安装的应用。
    • 如果问题仍然存在,可以尝试重启设备或重新安装应用。

6. 其他可能的原因

  • 原因:可能是代码逻辑问题或其他插件冲突。
  • 解决方法
    • 检查是否有其他插件或代码影响了 uni.chooseImage 的正常调用。
    • 尝试在空白页面中单独测试 uni.chooseImage,排除其他代码的干扰。

7. 使用原生 API 替代

如果以上方法均无效,可以考虑使用原生 API 或插件来实现图片选择功能。例如:

  • 使用 cordova-plugin-camera 插件:
    navigator.camera.getPicture(
      (imageData) => {
        console.log(imageData);
      },
      (error) => {
        console.error(error);
      },
      {
        sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
        destinationType: Camera.DestinationType.FILE_URI
      }
    );
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!