uniapp组件uni-file-picker中设置使用照相机和相册权限的操作方法

 更新时间:2022年11月14日 11:00:31   作者:youmi_sunshine  
这篇文章主要介绍了uniapp组件uni-file-picker中设置使用照相机和相册的权限,在uniapp中,我们通常会使用uni-file-picker这个组件,但是这个组件中,有点缺陷,就是没有对这个功能的传值设置,这里就要给组件进行修改了,需要的朋友可以参考下

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

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

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

props: {
		....以上省略	
			sizeType: {
				type: Array,
				default () {
					return ['original', 'compressed']
				}
			},
 
            //这是新加的变量,默认值是相册和照相机都有的
			sourceType: {
				type: Array,
				default () {
					return ['camera','album']
				}
			}
},

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

/**
 * 选择文件并上传
*/
chooseFiles() {		
	const _extname = get_extname(this.fileExtname)
	// 获取后缀
	uniCloud
		.chooseAndUploadFile({
				type: this.fileMediatype,
				compressed: false,
                //sourceType为新添加的控制照相机与相册的传值变量
				sourceType: this.sourceType,
				sizeType: this.sizeType,
				// TODO 如果为空,video 有问题
				extension: _extname.length > 0 ? _extname : undefined,
				count: this.limitLength - this.files.length, //默认9
				onChooseFile: this.chooseFileCallback,
				onUploadProgress: progressEvent => {
					this.setProgress(progressEvent, progressEvent.index)
				}
		})
		.then(result => {
			this.setSuccessAndError(result.tempFiles)
		})
		.catch(err => {
			console.log('选择失败', err)
		})
},

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

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

4、js部分写法如下:

<script>
export default {
	data() {
		return{
           mentouValue:'',
           sourceType1:['camera'], 
           sourceType2:['album'], 
        }
    },
    methods:{
        //选择图片
        mentouSelect(e){
			console.log("选择图片",e)
		},
 
        //删除图片
        mentouDelete(){
			this.mentouValue = ''
		},
    }
}
</script>

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

相关文章

  • vue实现简易的双向数据绑定

    vue实现简易的双向数据绑定

    这篇文章主要介绍了vue如何实现简易的双向数据绑定,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-12-12
  • vue实现GitHub的第三方授权方法示例

    vue实现GitHub的第三方授权方法示例

    本文主要介绍了vue实现GitHub的第三方授权,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • vue+el-select 多数据分页搜索组件的实现

    vue+el-select 多数据分页搜索组件的实现

    本文主要介绍了vue+el-select 多数据分页搜索组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • Vue3+Canvas实现简易的贪吃蛇游戏

    Vue3+Canvas实现简易的贪吃蛇游戏

    贪吃蛇作为一个经典的小游戏,是很多人儿时的记忆,当时的掌机、诺基亚手机里面都有它的身影。本文将用Vue3 Canvas来复刻一下这款游戏,感兴趣的可以了解一下
    2022-07-07
  • 在nginx上部署vue项目(history模式)的方法

    在nginx上部署vue项目(history模式)的方法

    vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载。这篇文章主要介绍了在nginx上部署vue项目(history模式),需要的朋友可以参考下
    2017-12-12
  • vue使用element-ui tabs切换echarts解决宽度100%方式

    vue使用element-ui tabs切换echarts解决宽度100%方式

    这篇文章主要介绍了vue使用element-ui tabs切换echarts解决宽度100%方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 前端vue播放m3u8、flv、mp4视频的方法示例

    前端vue播放m3u8、flv、mp4视频的方法示例

    这篇文章主要给大家介绍了关于前端vue播放m3u8、flv、mp4视频的方法,随着前端大屏页面的逐渐壮大,客户的需求也越来越多,大屏上面展示的事物也越来越丰富,需要的朋友可以参考下
    2023-07-07
  • 关于Vue.nextTick()的正确使用方法浅析

    关于Vue.nextTick()的正确使用方法浅析

    最近在项目中遇到了一个需求,我们通过Vue.nextTick()来解决这一需求,但发现网上这方面的资料较少,所以自己来总结下,下面这篇文章主要给大家介绍了关于Vue.nextTick()正确使用方法的相关资料,需要的朋友可以参考下。
    2017-08-08
  • Vue子组件调用父组件事件的3种方法实例

    Vue子组件调用父组件事件的3种方法实例

    大家在做vue开发过程中经常遇到父组件需要调用子组件方法或者子组件需要调用父组件的方法的情况,这篇文章主要给大家介绍了关于Vue子组件调用父组件事件的3种方法,需要的朋友可以参考下
    2024-01-01
  • 如何使用Vuex+Vue.js构建单页应用

    如何使用Vuex+Vue.js构建单页应用

    这篇文章主要教大家如何使用Vuex+Vue.js构建单页应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论