sencha touch 相机,相册调用

本文介绍了一个用于SenchaTouch应用的相机及相册调用公共类实现方法,详细展示了如何通过navigator.camera API获取照片,并提供了相机与相册调用的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sencha touch 相机,相册调用

相机,相册调用公共类

//设备相关类
var Phone = {

	    createNew: function() {

	        var phone = {};

	        /*
	          * 获得照片
	         * 参数:
	          * callback - 回调方法,成功回调照片文件、或base64编码串
	         * source  - 相机或相册,CAMEAR/ALBUM
	          * direction - 前镜头或后镜头,FRONT/BACK
	          * width height- 尺寸
	         *
	          */
	         phone.takePhoto = function(parm) {
	        	 console.log(parm);
	            var callbackfn = parm.callback;
	             if(!callbackfn || typeof(callbackfn) !== "function") return;

	            parm.source    = parm.source || 'CAMERA';
	             parm.direction = parm.direction || 'BACK' ;
	             parm.width     = parm.width  || 640;
	             parm.height    = parm.height || 640;

	            // 来源:相机、相册
	            var sourceType;
	             switch(parm.source.toUpperCase()) {
	                 case 'ALBUM':
	                     sourceType = 2;
	                     break;

	                default:
	                     sourceType = 1;
	                     break;
	             }

	            // 相机方向
	            var direction;
	             switch(parm.direction.toUpperCase()) {
	                 case 'FRONT':
	                     direction = 1;
	                     break;

	                default:
	                     direction = 0;
	                     break;
	             }

	            // 相片大小
	            var width  = parm.width;
	             var height = parm.height;

	            if(navigator.camera) {

	                navigator.camera.getPicture(
	                     function(data) {
	                    	 console.log('Camera cleanup success');
	                         callbackfn(/*'data:image/jpeg;base64,' + */data);
	                     },
	                     function(e) {
	                         console.log("Error getting picture: ", e);
	                         callbackfn('');
	                     },
	                     {
	                         quality: 95,

	                        destinationType: 0,

	                        sourceType : sourceType,

	                        allowEdit : true,

	                        encodingType: 0,

	                        targetWidth  : width,
	                         targetHeight : height,

	                        correctOrientation: true,

	                        saveToPhotoAlbum: false,

	                        cameraDirection: direction
	                     }
	                 );

	            } else {
	                 // 没有相机
	                var filename = '‘;
	                console.log('没有相机');
	                callbackfn(filename);
	             }
	         };

	         return phone;
	    }
	 };
	 var phone = Phone.createNew();

下面是相机的调用

//相机
					the_camera : function(){
						var parm = {
								callback : function(filename) {
									if(filename != ''){
										console.log(filename);
										//这里成功以后返回的
									}
								},
								 source:'CAMERA',// 相机或相册,CAMEAR/ALBUM
							     direction:'FRONT',// 前镜头或后镜头,FRONT/BACK
							     width:640, //width
							     height:640 // height
						};
						 phone.takePhoto(parm);
					},

相册的调用

//相册
					photo_album : function(){
						var parm = {
								callback : function(filename) {
									if(filename != ''){
										console.log(filename);
										//跟相机一样,只是传的参数不一样而已
									}
								},
								 source:'ALBUM',// 相机或相册,CAMEAR/ALBUM
							     direction:'FRONT',// 前镜头或后镜头,FRONT/BACK
							     width:640, //width
							     height:640 // height
						};
						 phone.takePhoto(parm);
					},

如果报错
java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider
java.lang.ClassNotFoundException: Didn’t find class “android.support.v4.content.FileProvider”
的话
点击这里https://blog.youkuaiyun.com/weixin_43369058/article/details/85602248

Sencha Touch 是第一个专门设计为移动设备开发 web 应用的 JavaScript 框架,它基于 HTML5 和 CSS3 的 web 标准,全面兼容 Android 和 Apple iOS,通过 Sencha Touch 框架用户可以创建非常像移动设备本地应用的 web 应用,它提供了丰富的华丽的控件和强大的功能,包括对触控事件的增强,数据整合等。本文通过对 Sencha Touch 框架的介绍,使读者对该框架有一定的了解,并通过一些代码示例给用户更详细直观的对 Sencha Touch 框架功能的了解。 ExtJS ExtJS 是为 web 开发人员提供的基于 JavaScript 和 web 标准快速构建可以跨浏览器平台运行的强大的 web 应用程序开发框架。它提供了丰富的用户界面组件和完善的文档资源,并且还有一个最重要的优势就是组件的设计简洁而容易扩展。 Ext GWT Ext GWT 是使用 Java 构建富 web 应用的最快,最有效的框架。它提供了运行性能良好的用户界面控件,并且在界面布局管理和全键盘支持方面有更突出的优势。 等等 Ext Core Ext Core 是一个构建跨浏览器运行的动态 web 应用的 JavaScript 库,它提供了 DOM 查询和元素选择的跨浏览器访问 API,它是一个轻量级的,运行性能良好并且很容易使用的 JavaScript 库。 Ext Designer Ext Designer 是一个帮助用户更快的创建桌面应用程序的可视化的界面图形化工具。 Sencha Touch Sencha Touch 是第一个基于 HTML5 的 Mobile web 应用开发框架。 Sencha Animator Sencha Animator 是一个创建基于 WebKit 浏览器和触屏移动设备运行的 CSS3 动画的工具,用户可以通过它创建出令人惊叹的动画,效果一点也不逊色于 Adobe 的动画工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值