cordova插件file使用时遇到的一个平台相关的问题
2017-07-04 13:03
405 查看
使用cordova-plugin-file可以帮助我们方便的操作app中的图片等文件,分享一下我在用该插件从图库读取图片时遇到的一个平台相关的小问题。
使用场景,我会在APP中新增一张图片,会有一个可点击的【保存】按钮,点击时将图片copy到自己新建的目录下。
在Android平台下(小米5),选中图片之后,系统的路径形式是:“file://路径+图片名.后缀名+?+时间戳”的方式。而iOS平台是一个“file://路径+图片名.后缀名”的方式。
在Android平台下需要对图片路径字符串进行截取,把?后面的字符串截取调,只保留前面部分。
不可统一写成
fileItem.filePath = fileItem.filePath.substring(0, fileItem.filePath.lastIndexOf("?"));
这里在iOS平台下回返回-1,而substring不接受负数,否则会返回空数组[]。导致格式化的路径失败。
具体的cordova-plugin-file的更多操作文件的函数请参考
http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#file-system-layouts
https://github.com/apache/cordova-plugin-file
使用场景,我会在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的更多操作文件的函数请参考
http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#file-system-layouts
https://github.com/apache/cordova-plugin-file
相关文章推荐
- 使用CocoaPods遇到一个问题:The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update ....
- 使用移动端页面iScroll插件遇到的一个checkbox选择的问题
- Cordova项目中遇到的一个插件安装的问题
- 基于cordova app应用中使用swiper(插件)操作DOM多平台表现不一致问题
- cordova iOS 下插件的使用遇到的问题和解决方法
- cordova项目中local-notification插件的使用问题及解决(安卓平台)
- 近期一个称重设备微信端开发前端知识点,及使用插件遇到的常见问题
- 后台使用Spring MVC 4.15 版本 通过 ajaxFileUpload plugin插件上传文件相应时引起的一个小问题,Chrome、Firefox中出现SyntaxError:unexpected token <
- 使用Cascadingdropdown控件遇到的一个问题
- 使用Mencoder进行视频转换遇到的问题和相关解决方案
- myeclipse中使用debug时遇到的一个小问题
- 【已解决,看后文】使用BlogEngine.net的扩展插件Silverlight Player Extension遇到的问题
- 使用AjaxPro与Session交互时遇到一个问题
- 记录:在ASP.NET中使用ActiveX插件时遇到的问题
- IE7中使用AJAX遇到的一个问题
- 使用Ajax遇到一个问题
- SimpleDateFormt 使用中遇到的一个小问题
- pligg9.7beta的后HTML编辑器插件的安装(tinymce_2_1_1_1)(以及使用中遇到的点滴问题解决办法)
- 在使用BizTalk时遇到一个很郁闷的问题
- 使用dom4j解析xml文件时遇到一个怪问题