OPPO Reno2Z手机重启后 uni-app 中 uni.getImageInfo 失败

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

OPPO Reno2Z手机重启后 uni-app 中 uni.getImageInfo 失败

开发环境 版本号 项目创建方式
Mac 13.4 HBuilderX
Android 13
OPPO
oppo Reno2Z

操作步骤:

OPPO Reno2Z手机重启后,app调用uni.getImageInfo失败,尝试杀掉app进程 再进来就好了,要不然就一直失败

预期结果:

调用成功

实际结果:

调用失败

bug描述:

OPPO Reno2Z手机重启后,app调用uni.getImageInfo失败,尝试杀掉app进程 再进来就好了,要不然就一直失败


3 回复

刚用OPPO R17 试了,正常 ,跑一下这个例子 <template>
<view class="container">
<button @click=“chooseImage”>chooseImage</button>
</view>
</template>

<script> export default { onShow() { let pages = getCurrentPages(); console.log(pages.length) }, methods:{ chooseImage(){ uni.chooseImage({ count: 1, sourceType: ['album'], success: function (res) { uni.getImageInfo({ src: res.tempFilePaths[0], success: function (image) { console.log(image.width); console.log(image.height); } }); } }); } } } </script> <style lang="scss" scoped> .container{ background-color: #999; padding-bottom: env(safe-area-inset-bottom); } </style>

sourceType: 指定 camera, 重启手机之后立即调用

在 OPPO Reno2Z 手机重启后,uni.getImageInfo 调用失败可能有多种原因。以下是一些可能的原因和解决方法:

1. 权限问题

  • 可能原因: 在重启后,某些权限可能未被正确授予,导致 uni.getImageInfo 无法访问图片信息。
  • 解决方法: 检查并确保应用已经获得了必要的权限,例如读取存储权限。可以在 manifest.json 中配置权限,并在运行时动态请求权限。
{
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    },
    "scope.writePhotosAlbum": {
      "desc": "你的相册信息将用于保存图片"
    }
  }
}

在代码中动态请求权限:

uni.authorize({
  scope: 'scope.writePhotosAlbum',
  success() {
    console.log('授权成功');
  },
  fail() {
    console.log('授权失败');
  }
});

2. 图片路径问题

  • 可能原因: 图片路径可能不正确,或者图片文件在重启后丢失或损坏。
  • 解决方法: 确保图片路径正确,并且在设备上存在。可以使用相对路径或绝对路径,但要确保路径正确。
uni.getImageInfo({
  src: '/static/logo.png',
  success(res) {
    console.log('图片信息:', res);
  },
  fail(err) {
    console.log('获取图片信息失败:', err);
  }
});

3. 系统缓存问题

  • 可能原因: 重启后,系统缓存可能未及时更新,导致 uni.getImageInfo 无法正确获取图片信息。
  • 解决方法: 尝试清除应用缓存或重启应用,以确保缓存是最新的。

清除缓存:

uni.clearStorage();

4. 网络问题

  • 可能原因: 如果图片是远程图片,可能由于网络问题导致图片无法加载。
  • 解决方法: 确保网络连接正常,并且远程图片可以正常访问。
uni.getImageInfo({
  src: 'https://example.com/image.png',
  success(res) {
    console.log('图片信息:', res);
  },
  fail(err) {
    console.log('获取图片信息失败:', err);
  }
});

5. uni-app 版本问题

  • 可能原因: 使用的 uni-app 版本可能存在 bug,导致 uni.getImageInfo 在特定设备上无法正常工作。
  • 解决方法: 尝试更新 uni-app 到最新版本,或者检查是否有相关的 bug 修复。

更新 uni-app CLI:

npm update [@dcloudio](/user/dcloudio)/uni-cli -g

6. 设备兼容性问题

  • 可能原因: OPPO Reno2Z 可能在处理某些 API 时存在兼容性问题。
  • 解决方法: 尝试在其他设备上测试,或者联系 OPPO 官方技术支持以获取更多帮助。

7. 代码逻辑问题

  • 可能原因: 代码逻辑可能存在错误,导致 uni.getImageInfo 调用失败。
  • 解决方法: 检查代码逻辑,确保在调用 uni.getImageInfo 时没有其他错误。
uni.getImageInfo({
  src: '/static/logo.png',
  success(res) {
    console.log('图片信息:', res);
  },
  fail(err) {
    console.log('获取图片信息失败:', err);
  }
});

8. 日志分析

  • 可能原因: 可以通过查看日志来进一步分析问题。
  • 解决方法: 在 fail 回调中打印错误信息,或者在开发者工具中查看日志输出。
uni.getImageInfo({
  src: '/static/logo.png',
  success(res) {
    console.log('图片信息:', res);
  },
  fail(err) {
    console.error('获取图片信息失败:', err);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!