经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
uniapp组件uni-file-picker中设置使用照相机和相册权限的操作方法
来源:jb51  时间:2022/11/17 8:48:45  对本文有异议

在写uniapp项目中,对于上传图片有时会有这样的需求:只可使用照相机拍摄上传,不可使用相册。

在uniapp中,我们通常会使用uni-file-picker这个组件,但是这个组件中,有点缺陷,就是没有对这个功能的传值设置,这里就要给组件进行修改了。

1、在uni-file-picker组件中的uni-file-picker.vue中的js部分,找到props添加一个变量,如下:

  1. props: {
  2. ....以上省略
  3. sizeType: {
  4. type: Array,
  5. default () {
  6. return ['original', 'compressed']
  7. }
  8. },
  9. //这是新加的变量,默认值是相册和照相机都有的
  10. sourceType: {
  11. type: Array,
  12. default () {
  13. return ['camera','album']
  14. }
  15. }
  16. },

2、在uni-file-picker组件中的uni-file-picker.vue中的js部分,找到chooseFiles()函数,添加sourceType的传值,如下:

  1. /**
  2. * 选择文件并上传
  3. */
  4. chooseFiles() {
  5. const _extname = get_extname(this.fileExtname)
  6. // 获取后缀
  7. uniCloud
  8. .chooseAndUploadFile({
  9. type: this.fileMediatype,
  10. compressed: false,
  11. //sourceType为新添加的控制照相机与相册的传值变量
  12. sourceType: this.sourceType,
  13. sizeType: this.sizeType,
  14. // TODO 如果为空,video 有问题
  15. extension: _extname.length > 0 ? _extname : undefined,
  16. count: this.limitLength - this.files.length, //默认9
  17. onChooseFile: this.chooseFileCallback,
  18. onUploadProgress: progressEvent => {
  19. this.setProgress(progressEvent, progressEvent.index)
  20. }
  21. })
  22. .then(result => {
  23. this.setSuccessAndError(result.tempFiles)
  24. })
  25. .catch(err => {
  26. console.log('选择失败', err)
  27. })
  28. },

3、在页面调用模板中使用改组件,使用 :sourceType或者 :source-type来控制照相机与相册的使用权限,如下:

  1. <template>
  2. <view class="container">
  3. <!--设置只能使用照相机 :sourceType="sourceType1" -->
  4. <view class="upload-box">
  5. <view class="pic-desc">照片1</view>
  6. <uni-file-picker v-model="mentouValue" return-type="object" fileMediatype="image" mode="grid" :sourceType="sourceType1" :auto-upload="false" @select="mentouSelect" @delete="mentouDelete"/>
  7. </view>
  8. <!--设置只能使用照相机 则 :sourceType="sourceType2" -->
  9. <!--若都可以使用,则不用此变量,默认都可以使用的-->
  10. </view>
  11. <template>

4、js部分写法如下:

  1. <script>
  2. export default {
  3. data() {
  4. return{
  5. mentouValue:'',
  6. sourceType1:['camera'],
  7. sourceType2:['album'],
  8. }
  9. },
  10. methods:{
  11. //选择图片
  12. mentouSelect(e){
  13. console.log("选择图片",e)
  14. },
  15. //删除图片
  16. mentouDelete(){
  17. this.mentouValue = ''
  18. },
  19. }
  20. }
  21. </script>

到此这篇关于uniapp组件uni-file-picker中设置使用照相机和相册的权限的文章就介绍到这了,更多相关uniapp组件uni-file-picker相册权限内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号