MUI之Plus篇(移动端头像上传功能)

前言
        MUI框架适合做移动端开发,相对于Element-ui来说,MUI可以调用手机底层接口,如调用手机摄像头、相册等功能。
        plus是H5+APP调用手机接口的一个重要组成部分,使用plus的时候一定要记住,只有plusReady准备好的前提下才能使用plus,使用如下:
        调用手机相册,然后创建上传信息进行图片上传功能:
        对于HTML5+应用的页面有一个很重要的“plurReady”事件,此事件会在页面加载后触发,表示所有HTML5+API都可以使用,在此事件出发之前不能调用HTML5+API,所以应该再次事件回调函数中调用初始化需要调用的HML5+API。点击查看H5+API官方文档

调用H5+API进行移动端头像上传

        经过查看H5+API官方文档发现,移动端上传图片文件大致需要两个步骤,第一步是调用图片的API——Gallery,第二步是调用创建上传任务的一个API——Uploader
        Gallery:Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。
在这里插入图片描述
        Uploader:Uploader模块管理网络上传任务,用于从本地上传各种文件到服务器,并支持跨域访问操作。
在这里插入图片描述
        注:plus报错不用在意,测试阶段,plus代码不能在浏览器上进行测试,会报plus未定义的异常

export default{
	name:'',
	create(){
		this.$mui.init();
		if(windows.plus){//准备plusready
			this.plusReady();
		}else {
			document.addEventListener("plusready",this.plusReady,false);
		}
	},
	methods:{
		plusReady(){
		
		},
		//文件上传
	      createUpload(path) {
	        let _this=this;
	        //上传时的请求路径
	        var task = plus.uploader.createUpload( "http://192.168.191.3:8081/toUploadAvatar?id="+this.user.id,
	          { method:"POST",blocksize:20480000,priority:100 ,retry:0},//一定要用 POST 请求
	          function ( t, status ) {//上传完成之后会调用该方法,不管上传成功与否,都会调用,此方法不是必选,可以不写
	            // 上传完成
	            if ( status == 200 ) {
	              alert( "Upload success: " + t.url );
	              _this.setUserAvatar();
	            } else {
	              alert( "Upload faile: " + status );
	            }
	          }
	        );
	        plus.uploader.clear( task.state );//清除上传任务
	        alert("这是图片路径"+path+"_状态:");
	        //请参考官方文档,试了半天才试出来,,,,
	        //这块我没怎么弄不明白,有没有大佬知道的,指点一二哈哈哈~~~
	        task.addFile(path , {key:"file"} );
	        task.addData( "file", "avatar7" );
	        // task.addEventListener( "statechanged", this.onStateChanged, false );
	        task.start();//开始上传
	      },
	      //调用相册
	      galleryImg() {
	        // 从相册中选择图片
	        let _this = this;
	        console.log("从相册中选择图片:");
	        plus.gallery.pick( function(path){
	        //返回的相册绝对路径path
	        //调用创建上传功能进行图片上传
	          _this.createUpload(path);
	        }, function ( e ) {
	          console.log( "取消选择图片" );
	        }, {filter:"image"} );
	      },
		}
}

        为了防止plus报错从而引起的运行时出错,所以,我们要修改vue.config.js

//vue.config.js
module.exports={
  lintOnSave: false,
}

测试方法

        利用HBuilderX测试,大概流程:手机打开开发者选项,允许USB调试,利用数据线连接电脑,然后在HBuilderX点击运行,真机运行即可。此时手机一定要连通电脑,我用的是360助手,亲测可用。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值