javascript原生移动云编程10 - 如何调用相机并上传下载图片视频
来源:互联网 发布:淘宝助理上传宝贝慢 编辑:程序博客网 时间:2024/05/18 03:58
用javascript在码实云平台上,可以在云里编写原生的移动应用。移动应用经常需要用手机拍照或摄像,并且把照片视频上传到云存储里。由于码实平台提供了全面的云服务,多媒体的上传下载就变得非常容易。这个应用实例用到了码实平台的云数据库,因此建议你先熟悉下前面那个如何使用云数据库的教程。
码实平台里,多媒体数据是数据BO的一种字段类型,在数据BO编辑工具里称为“附件”(Attachment)。附件里可以记录多张照片或其他多媒体文件,附件字段本质上是记录了一组多媒体文件在云存储里的存取id数组。本实例包括了两个页面,构成和前面的数据教程完全一样。由于大部分代码相同,这里指讲解新的代码。
页面1的完整代码请到web工具的开源部分查看,其中显示播放照片列表代码如下,关键部分是用码实平台SDK的Mash5.UI.createAttachmentView显示附件。
// Render单条数据UIcreateRow : function (feed) { var context = this.getContext();var row = Ti.UI.createTableViewRow({width : '100%',height : Ti.UI.SIZE,selectionStyle : 0,});var view = Ti.UI.createView({width : Ti.UI.FILL,height : Ti.UI.SIZE,top : '10dip',left : '10dip',right : '10dip',backgroundColor : '#629138',borderRadius : dipToPx(10),layout: 'vertical'});row.add(view);// 显示附件字段,BO的第二个字段var attachments = (feed.bo.Fields[1].Value && feed.bo.Fields[1].Value instanceof Array) ?
if (attachments.length > 0) { // 调用SDK中的方法Mash5.UI.createAttachmentView, 点击可下载图片var attachmentView = Mash5.UI.createAttachmentView(context, {attachments : attachments,width : Ti.UI.SIZE,isEditable : false,});attachmentView.getView().left = '3dip';attachmentView.getView().bottom = '5dip'; view.add(attachmentView.getView());} // 再显示第一个字段,做为图片的说明view.add(Ti.UI.createLabel({bottom : '5dip',color : '#fff',text : feed.bo.Fields[0].Value,left : '10dip',font : {fontSize : '16dip'},}));return row;}
页面2的完整代码请到web工具的开源部分查看,这个页面也是和云数据操作的那个教程雷同。其中引入了相机上传照片的操作,分别定义在如下的两个函数里。Mash5.Tenant.File.uploadFromCamera提供了调用相机拍照并且上传照片的完整功能。而在createParameters里面,我们使用的码实平台SDK提供的Mash5.UI.createProgressDialog来显示标配的照片上传进度条。
startCamera: function(attachView) { var parameters = this.createParameters(attachView); Mash5.Tenant.File.uploadFromCamera({ context: this.getContext(), onprogresschanged: parameters.onprogresschanged, setCancelListener: parameters.setCancelListener }, parameters.onload); },createParameters: function(attachView) { var progressDialog = Mash5.UI.createProgressDialog(); progressDialog.setProgress(0, '正在上传...'); return { onprogresschanged: function(progress) { progressDialog.show(); progressDialog.setProgress(progress, '正在上传...'); }.bind(this), setCancelListener: function(listener) { progressDialog.setCancelListener(listener); }, onload: function(r) { progressDialog.hide(); setTimeout(function() { progressDialog.hide(); }, 600); if (r.success) { var attachment = r.fileInfo; if (attachView && attachment) {attachView.clear();attachView.addAttachment(attachment);} } else { alert(r.message); } }.bind(this) }; },
0 0
- javascript原生移动云编程10 - 如何调用相机并上传下载图片视频
- javascript原生移动云编程11 - 如何调用手机图库中图片
- javascript原生移动云编程7 - 如何调用云数据服务显示实时天气
- javascript原生移动云编程6 - 如何做动画效果
- javascript原生移动云编程9 - 如何使用云数据库读取和保存数据
- javascript原生移动云编程4 - 如何做图文并茂的博客页面UI
- javascript原生移动云编程5 - 如何做互动按钮和页面跳转
- javascript原生移动云编程8 - 如何插入任意web页面
- javascript原生移动云编程14 - 如何隐藏和定制屏幕上部的导航条
- javascript原生移动云编程(编外) - javascript速成答疑
- javascript原生移动云编程2 - 原生移动UI的起点
- android 调用原生相机
- Android 调用系统相机 并得到图片
- 调用系统相机、图库并选择图片
- (笔记)Android调用相机,并接收图片
- javascript原生移动云编程1 - 十分钟做出跨平台原生App
- Android调用相机实现拍照并裁剪图片,调用手机中的相册图片并裁剪图片
- iOS 调用相机 ,相册获取图片 并裁剪为正方形
- 牛人和牛人博客收集
- 如果高中棒球队女子经理读了彼得·德鲁克 书摘1
- javascript原生移动云编程8 - 如何插入任意web页面
- javascript原生移动云编程9 - 如何使用云数据库读取和保存数据
- 解决ubuntu 每次开机 resolv.conf DNS 被清空问题 .
- javascript原生移动云编程10 - 如何调用相机并上传下载图片视频
- centos6.5增加中文输入法
- J-LINK V8固件烧录指导
- 开源项目Docker,是否需要一个开源基金会?
- 外交部:越南渔船携大量炸药进入中国西沙海域
- 【ThinkingInC++】46、特定的数据成员可以在一个const对象里被改变
- 【ThinkingInC++】47、关于宏的使用,探讨使用宏的缺点
- iOS 汉字转拼音
- 【ThinkingInC++】48、用标准C库中的时间函数生成简单的Time类