从零开始学习Hbuilder(三)

1. IO模块管理本地文件系统

用于对文件系统的目录浏览、文件的读取、文件的写入等操作

1.1 resolveLocalFileSystemURL

通过URL参数获取目录对象或文件对象

    plus.io.resolveLocalFileSystemURL(relativePath, entry => { 
    //如果文件存在,则直接获取本地文件
      console.log("文件已存在=" + relativePath);
    }, e => { //如果文件不存在,联网下载文件
      console.log("文件不存在,联网下载=" + relativePath);
    });
1.2 FileReader

文件系统中的读取文件对象,用于获取文件的内容

    plus.io.requestFileSystem( plus.io.PRIVATE_WWW, function(fs){
        // fs.root是根目录操作对象DirectoryEntry
        fs.root.getFile('config.xml',{create:true}, function(fileEntry){
            fileEntry.file( function(file){
                var fileReader = new plus.io.FileReader();
                alert("getFile:" + JSON.stringify(file));
                fileReader.readAsText(file, 'utf-8');
                fileReader.onloadend = function(evt) {
                    alert("11" + evt);
                    alert("evt.target" + evt.target);
                    alert(evt.target.result);
                }
                alert(file.size + '--' + file.name);
            } );
        });
    } );

FileReader对象是从设备文件系统读取文件FileReader对象是从设备文件系统读取文件的一种方式,文件以文本或者Base64编码的字符串形式读出来

方法:

  • abort: 终止文件读取操作
  • readAsDataURL: 以URL编码格式读取文件数据内容
  • readAsText: 以文本格式读取文件数据内容

事件:

  • onloadstart: 读取文件开始时的回调函数
  • onload: 读取文件成功完成的回调函数
  • onabort: 取消读取文件时的回调函数
  • onerror: 文件读取操作失败时调用的回调函数
  • onloadend: 文件读取操作完成时的回调函数

2 plus.runtime.openFile

打开下载的文件

3 plus.zipZip 模块

管理文件压缩和解压,通过plus.zip可获取压缩管理对象

3.1 compress

压缩生成Zip文件

void plus.zip.compress(src, zipfile, successCB, errorCB);
*   src 必选 *要压缩的源文件路径,支持文件路径或目录

*   zipfile 必选 *压缩后保存的Zip文件路径

*   successCB 压缩Zip文件操作成功回调,在压缩操作成功时调用

*   errorCB 可选 *压缩Zip文件操作失败回调,在压缩操作失败时调用

3.2 decompress

解压缩Zip文件

void plus.zip.decompress( zipfile, target, successCB, errorCB);

4 downloader模块

管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作

4.1 createDownload

新建下载任务

// 创建下载任务
function createDownload() {
    var dtask = plus.downloader.createDownload("http://www.abc.com/a.doc", {}, 
        function(d, status){
            // 下载完成
            if(status == 200){ 
                console.log("Download success: " + d.filename);
            } else {
             console.log("Download failed: " + status); 
            }  
        }
    );
    dtask.start(); 
}

5 nativeObj管理系统原生对象

5.1 Bitmap 原生图片对象

原生图片对象会占用较大的内存资源,在使用时需谨慎管理,当图片不再使用时应该及时调用clear方法进行销毁

5.2 loadBase64Data

加载Base64编码格式图片到Bitmap对象

// 获取图片的base64格式数据
var data = null;
var img = new Image();
img.onload = function(){
    var cx = cimg.getContext('2d');
    cimg.width = img.width;
    cimg.height = img.height;
    cx.drawImage( img, 0, 0 );
    data = cimg.toDataURL();
}
img.src = 'logo.png';
// 加载Base64编码格式图片到Bitmap对象
function loadDataImage(){
    bitmap.loadBase64Data( data, function(){
        console.log("加载Base64图片数据成功");
    }, function(){
        console.log('加载Base64图片数据失败:'+JSON.stringify(e));
    } );
}
5.3 load

加载Bitmap图片

var bitmap = new plus.nativeObj.Bitmap("test");
// 从本地加载Bitmap图片
bitmap.load('icon.png',function(){
    console.log('加载图片成功');
},function(e){
    console.log('加载图片失败:'+JSON.stringify(e));
});
5.4 save

保存图片

function plusReady(){
    wc = plus.webview.currentWebview();
    bitmap = new plus.nativeObj.Bitmap("test","_www/bimap/capture.png");
    // 将webview内容绘制到Bitmap对象中
    wc.draw(bitmap,function(){
        console.log('绘制图片成功');
        bitmap.save("_www/bimap/capture.png");
    },function(e){
        console.log('绘制图片失败:'+JSON.stringify(e));
    });
}
5.5

6 gallery模块

管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能

6.1 pick

从系统相册选择文件(图片或视频)

animation: (Boolean 类型 )是否显示系统相册文件选择界面的动画
filename: (String 类型 )选择文件保存的路径

filter: (GalleryFilter 类型 )相册中选择文件类型过滤器
系统相册选择器中可选择的文件类型,可设置为仅选择图片文件(“image”)、视频文件(“video”)或所有文件(“none”),默认值为“image”。
maximum: (Number 类型 )最多选择的图片数量
仅在支持多选时有效,取值范围为1到Infinity,默认值为Infinity,即不限制选择的图片数。 如果设置的值非法则使用默认值Infinity。
multiple: (Boolean 类型 )是否支持多选图片

// 从相册中选择图片 
function galleryImg() {
    // 从相册中选择图片
    console.log("从相册中选择图片:");
    plus.gallery.pick( function(path){
        console.log(path);
    }, function ( e ) {
        console.log( "取消选择图片" );
    }, {filter:"image"} );
}
// 从相册中选择多张图片 
function galleryImgs(){
    // 从相册中选择图片
    console.log("从相册中选择多张图片:");
    plus.gallery.pick( function(e){
        for(var i in e.files){
            console.log(e.files[i]);
        }
    }, function ( e ) {
        console.log( "取消选择图片" );
    },{filter:"image",multiple:true});
}
6.2 save

保存文件到系统相册中。
每次仅能保存一个文件,支持图片文件(jpg/jpeg、png、bmp等格式)和视频文件(3gp、mov等格式)

// 保存图片到相册中 
function savePicture() {
    plus.gallery.save( "_doc/a.jpg", function () {
        alert( "保存图片到相册成功" );
    } );
}

你可能感兴趣的:(从零开始学习Hbuilder(三))