cordova插件file使用时遇到的一个平台相关的问题
使用cordova-plugin-file可以帮助我们方便的操作app中的图片等文件,分享一下我在用该插件从图库读取图片时遇到的一个平台相关的小问题。
使用场景,我会在APP中新增一张图片,会有一个可点击的【保存】按钮,点击时将图片copy到自己新建的目录下。
在Android平台下(小米5),选中图片之后,系统的路径形式是:“file://路径+图片名.后缀名+?+时间戳”的方式。而iOS平台是一个“file://路径+图片名.后缀名”的方式。
在Android平台下需要对图片路径字符串进行截取,把?后面的字符串截取调,只保留前面部分。
1 // fileItem是一个图片对象,filePath是真正的路径 2 if($ionicPlatform.isIOS){ 3 fileItem.filePath = fileItem.filePath.substring(0, fileItem.filePath.length);//iOS 平台选的图片生成路径中没有'?',返回-1, substring 不接受负值 会返回空 4 5 }else { 6 fileItem.filePath = fileItem.filePath.substring(0, fileItem.filePath.lastIndexOf("?")); 7 } 8 //或者 9 fileItem.filePath = fileItem.filePath.substring(0, fileItem.filePath.lastIndexOf("?")=== -1 ? fileItem.filePath.length : fileItem.filePath.lastIndexOf("?")); 10 //这样不同平台下,文件路径就可以个格式化为"file://.../image.jpeg"
不可统一写成
fileItem.filePath = fileItem.filePath.substring(0, fileItem.filePath.lastIndexOf("?"));
这里在iOS平台下回返回-1,而substring不接受负数,否则会返回空数组[]。导致格式化的路径失败。
具体的cordova-plugin-file的更多操作文件的函数请参考
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
2016-07-04 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection