React Native开发鸿蒙Next---图片浏览与保存的问题交流

之前介绍过利用鸿蒙三方RN组件@react-native-camera-roll/camera-roll保存图片到相册。

React Native开发鸿蒙Next---react-native-cameraroll在ArkTS下的接入报错

悬空八只脚,公众号:悬空八只脚React Native开发鸿蒙Next---react-native-cameraroll在ArkTS下的接入报错

最近在使用过程中新遇到了一个小问题。应用的图片都是保存在阿里云OSS上的,在对图片做展示的时候,自然而然想到利用oss对图片做一些诸如缩放/圆底等处理。存储的时候,没细想就把oss图片路径带上处理参数传了进去。

const downloadPath = filePath + '?x-oss-process=image/resize,w_1000';

这导致了存储失败,可以看到如下报错

WARN  Possible Unhandled Promise Rejection (id: 1):
Object {
"message": "bad file path GetFd File already exists",
}

直接用oss地址filePath去保存就没有问题。

import {CameraRoll} from '@react-native-camera-roll/camera-roll';
CameraRoll.saveAsset(filePath).then(res => {
console.log('res-----', res);
......

downloadPath直接在浏览器里也是可以正常下载的。造成这一问题的原因尚不明确,目前采取oss原始路径来保存图片的方式。

此外,在使用@react-native-oh-tpl/react-native-image-zoom-viewer进行图片浏览时,存在无法控制图片缩放样式问题(resizeMode/scaleType都不支持),对于一些尺寸较小的图片会居中显示导致较多留白,虽然可以通过诸如oss直接设置图片参数方式来处理,但不是很方便。react-native-image-zoom-viewer本身依赖了camera-roll,内部也是通过camera-roll来实现图片的保存。在用了oss参数设置图片尺寸后也有无法下载的问题。目前应用中还是只将react-native-image-zoom-viewer用于图片浏览,@react-native-camera-roll/camera-roll单独处理下载保存。

  import ImageViewer from '@react-native-oh-tpl/react-native-image-zoom-viewer';
......
<View style={styles.viewBg}>
{fileList && fileList.length > 0 && (
<ImageViewer
scaleType={'cover'}
resizeMode={'cover'}
imageUrls={fileList} // 照片路径
enableImageZoom={true} // 是否开启手势缩放
index={currentIndex} // 初始显示第几张
onChange={index => setIndex(index)} // 图片切换时触发
onClick={() => {
// 图片单击事件 }}
saveToLocalByLongPress={false}
/>
)}
</View>

以上是本周开发中遇到的两个小问题,欢迎交流。


不经常在线,有问题可在微信公众号或者掘金社区私信留言

更多内容可关注

我的公众号悬空八只脚

作者:悬空八只脚

链接:https://juejin.cn/post/7480761334360375308

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

React Native开发鸿蒙Next---图片浏览与保存的问题交流的更多相关文章

  1. React Native开发技术周报1

    (一).资讯 1.React Native 0.21版本发布,最新版本功能特点,修复的Bug可以看一下已翻译 重要:如果升级 Android 项目到这个版本一定要读! 我们简化了 Android 应用 ...

  2. React-Native(二):React Native开发工具vs code配置

    从网上翻阅了一些开发react-native的开发工具时,发现其实可选的工具还是比较多的Sublime Text,WebStrom,Atom+Nuclide,vs code 等.因为我用.net生态环 ...

  3. React Native开发入门

    目录: 一.前言 二.什么是React Native 三.开发环境搭建 四.预备知识 五.最简单的React Native小程序 六.总结 七.参考资料   一.前言 虽然只是简单的了解了一下Reac ...

  4. React Native开发技术周报2

    (1).资讯 1.React Native 0.22_rc版本发布 添加了热自动重载功能 (2).技术文章 1.用 React Native 设计的第一个 iOS 应用 我们想为用户设计一款移动端的应 ...

  5. DECO 一个REACT NAtive 开发IDE工具

    DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:h ...

  6. React Native 开发之 (02) 用Sublime 3作为React Native的开发IDE

    Sublime Text是一个代码编辑器.也是HTML和散文先进的文本编辑器.漂亮的用户界面和非凡的功能,例如:迷你地图,多选择Python插件,代码段等等.完全可自定义键绑定,菜单和工具栏等等.漂亮 ...

  7. React Native 开发笔记

    ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...

  8. 【转】【React Native开发】

    [React Native开发]React Native控件之ListView组件讲解以及最齐全实例(19)  [React Native开发]React Native控件之Touchable*系列组 ...

  9. React Native开发的通讯录应用

    React Native开发的通讯录应用(使用JavaScript开发原生iOS应用,vczero) 0.前言: 项目地址:https://github.com/vczero/React-Native ...

  10. iOS程序员的React Native开发工具集

    本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...

随机推荐

  1. Abaqus压电材料分析

    目录 1. ABAQUS压电材料定义[快速版] 2. 压电材料的主要特性参数 3. Abaqus 压电分析 1 电响应 2 initial condition & BCs 4 Load 5 M ...

  2. 震惊!C++程序真的从main开始吗?99%的程序员都答错了

    嘿,朋友们好啊!我是小康.今天咱们来聊一个看似简单,但实际上99%的C++程序员都答错的问题:C++程序真的是从main函数开始执行的吗? 如果你毫不犹豫地回答"是",那恭喜你,你 ...

  3. Vulnhub-Node

    利用信息收集拿到路径得到账户密码,下载备份文件,base64解密后,利用fcrackzip爆破zip压缩包,得到一个文件,查看app.js,发现泄露的账户密码,连接ssh,成功连接,利用ubuntu历 ...

  4. 基于近红外与可见光双目摄像头的人脸识别与活体检测,文末附Demo

    基于近红外与可见光双目摄像头的活体人脸检测原理 人脸活体检测(Face Anti-Spoofing)是人脸识别系统中的重要一环,它负责验证捕捉到的人脸是否为真实活体,以抵御各种伪造攻击,如彩色纸张打印 ...

  5. postman发送数组

    postman发送数组 第一种 第二种

  6. selenium自动化测试入门

    Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案. Selenium是用于自动化控制浏览器做各种操作,打开网页,点击按钮,输入表单等等,可以 ...

  7. Content-Encoding:br 是一种什么编码格式?

    一.前言 在之前测试HTTP应答的压缩过程中无意间发现在Google浏览器下出现了 Content-Encoding:br 这种的编码格式,当时我就纳闷了,前面不是一直在研究GZip压缩吗?br压缩又 ...

  8. linux下nginx常用命令

    1.查找nginx路径:whereis nginx2.启动 service nginx start3.查看Nginx的版本号:nginx -V4.停止 nginx -s stop5.退出 nginx ...

  9. C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  10. 深入理解 Java AQS 原理与 ReentrantLock 实现

    目录 一.AQS 简介 二.AQS 核心设计 2.1 核心组成部分 2.2 AQS 的工作原理 2.3 AQS 的关键方法 三.ReentrantLock 与 AQS 的关系 3.1 Reentran ...