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. 【攻防世界】warmup

    warmup (反序列化与sql注入) 题目来源 攻防世界 NO.GFSJ0999 题目描述 题目提示:平平无奇的输入框 打开网址页面如下,没有有用信息. 题目给了附件,直接下载,得到源码如下: in ...

  2. LCP 11. 期望个数统计

    地址:https://leetcode-cn.com/problems/qi-wang-ge-shu-tong-ji/ <?php /** 某互联网公司一年一度的春招开始了,一共有 n 名面试者 ...

  3. C# WebClient调用WebService

    WebClient调用WebService (文末下载完整代码) 先上代码: object[] inObjects = new[] { "14630, 14631" }; Http ...

  4. 制作ubuntu22.04的根文件系统

    amd64 点击查看代码 制作Ubuntu 22.04的根文件系统涉及到几个关键步骤.以下是详细的步骤说明,包括创建目录结构.安装基本软件包以及配置系统. ### 步骤1:准备环境 首先,确保你的开发 ...

  5. C#弃元表达式的用法

    原文地址:http://cshelloworld.com/home/detail/1803462343674433536 弃元符号是什么 弃元符号在C#中只是一个下划线 _,当程序员不想关注某些变量的 ...

  6. html5文本标签

    标题文本 h1.h2.h3.h4.h5.h6 其中 h1.h2.h3是比较常用的.h3.h4.h5.h6相对来说用的会少一点,除非结构层次比较深才会使用. 段落文本 p <p>这是一个段落 ...

  7. linux中如何判断一个rpm是手动安装还是通过yum安装的

    现状 对于一个不熟悉的服务器或者是虽然是自己的服务器,但历史比较久远,对于上面安装了的一些软件包,我们记忆都慢慢模糊了. 我今天遇到一个情况,在安装一个工具x2openEuler时,安装失败,提示依赖 ...

  8. 【BUG】axios 长数字精度丢失问题

    问题原因 出现改问题是于javascript 整数范围问题 java 中 Long 类型 -2的63次方 - 2的63次方减去1 但是javascript整数范围确没有那么大,导致Long数字过大前端 ...

  9. RAFT光流估计

    RAFT Introduction RAFT: Recurrent All-Pairs Field Transforms for Optical Flow:观其名便知道这是一篇关于光流估计的论文. 模 ...

  10. 【Java】字符串常用操作

    字符的常用技巧 char c; 字母的顺序:c - 'A'.c - 'a' 字母大小写转换:c - 'a' + 'A'.c - 'A' + 'a' 数字字符转换为数字:c - '0' String.S ...