ydbopen说明文档-大发官方网址

ydbopen说明文档


目录

概述

ydbopen通过js远程的打开、关闭、创建、修改app本地sqllite数据库的任何一处,助力您开发出更优秀的app。

通过js远程的增删改查本地文件。通过使用远程下载功能,您可以随时随地将您需要的文件下载到您所需要的app本地。

此文档面向网页开发者介绍ydbopen如何使用及相关注意事项,需要注意的是必须开启云开发插件之后,ydbopen里的方法才会生效。

ydbopen使用步骤

步骤一:引入js文件

在需要调用js接口的页面引入如下js文件,:

步骤二:调用ydbopen的相关方法

                例如: /* ydbopen跨域写法 */
                ydbopen.call("ajax", {
                    url: '你的url地址',
                    method: 'post',
                    data: { username: nameobj.val(), userkey: pwdobj.val() },
                    file: { headimg: headobj.val(), cardimg: cardobj.val() },
                    cache: false,
                    timeout: 30,
                    datatype: 'json'
                }, function (ret, err) {
                    if (ret) {
                        layer.open({
                            content: json.stringify(ret),
                            btn: ['确定']
                        });
                    } else {
                        layer.open({
                            content: '错误码:'   err.code   ';错误信息:'   err.msg   '网络状态码:'   err.statuscode,
                            btn: ['确定']
                        });
                    };
                });
                //特别说明:ydbopen的调用要放到页面尾部,或者放入页面加载完事件中
                //方法一:jquery 中:$(function(){} 括号内写你的内容
                //方法二:使用body的onload属性,onload='somefunctionswithydbopen()'
                //方法三:window.onload=function(){//somefunctionsdowithydbopen}//用window的onload事件,窗体加载完毕的时候
            

接口调用说明

跨域访问 ajax

                 /* 示例 */
                ydbopen.call("ajax", {
                    url: '你的url地址',
                    method: 'post',
                    data: { username: nameobj.val(), userkey: pwdobj.val() },
                    file: { headimg: headobj.val(), cardimg: cardobj.val() },
                    cache: false,
                    timeout: 30,
                    datatype: 'json'
                }, function (ret, err) {
                    if (ret) {
                        alert(json.stringify(ret));                       
                    } else {
                        alert('错误码:'   err.code   ';错误信息:'   err.msg   '网络状态码:'   err.statuscode);
                    };
                });
                //参数说明:输入参数:json对象
参数 类型 解释
url 字符型 跨域访问的接口地址
method 字符型 访问类型,如get,post,delete,put等
data object 提交的键值对如{username:"qike",password:"1234"}
file object 多文件上传的键值对如{headimg:"xxx"},可省略
cache 布尔型 默认false,可省略
timeout 整型 超时时间,默认30秒,可省略
datatype 字符型 json,xml,text等
//输出参数:
参数 类型 解释
ret 不定 根据datatype类型而定
err json {code:1,msg:"操作成功",statuscode:200}

数据库操作类

数据库创建打开接口 dbopen

                   /* 示例 */
                   ydbopen.call("dbopen", dbname, function (ret) {
		            if (ret.status) {
		            alert(ret.msg);
		            } else {
		            alert(ret.msg);
		            }
		    });
               // 说明:输入参数:dbname,如 "weblsq.db"。根据sqlite库名称判断,有则打开,无则创建;
               //返回结果:{status: true/false,msg:"结果描述或错误原因" }
            

数据库关闭接口 dbclose

   
                     /* 示例 */说明:关闭数据库;
                     ydbopen.call("dbclose", "dbname", function (ret) {
		               if (ret.status) {
		                   alert(ret.msg);
		                    } else {
		                    alert(ret.msg);
		                  }
		               });
                   // 参数说明: 输入参数: 数据库名 dbname,如 "weblsq.db"。
                   //返回结果:{status: true/false,msg:"结果描述或错误原因" }
            

判断表是否存在 tabexist

                   /* 示例 */
                   ydbopen.call("tabexist", "name", function (ret) {
		            if (ret.status) {
		            alert("表名:"   name   "已存在" ret.msg);
		              } else {
		             }
		           });
                    // 参数说明:输入参数:字符型 表名,如tbuserinfo;
                    //返回结果:{status: true/false,msg:"结果描述或错误原因" }
            

执行sql语句 execsql

                     /* 示例 */
                     var createsql = "create table tbname(id integer,title varchar,content text,time varchar)";
                     ydbopen.call("execsql", sqlstr ,function(ret) {
                      if (!ret.status) {
                         alert(ret.msg);
                        }
                     });
                    // 参数说明:输入参数:字符型,待执行的sql语句;
                   //返回结果:{status: true/false,msg:"结果描述或错误原因" }
            

查询sql语句 query

                /* 示例 */
                var querysql = "select * from tbname";
                 ydbopen.call("query", querysql, function (ret) {
                if (ret.status) {
                    var str = ret.msg;
                    if (ret.data.length > 0) {
                        for (var i = 0; i < ret.data.length; i  ) {
                            str  = ""   ret.data[i].title   ""   ret.data[i].time   "";
                        }
                    } else {
                        str = "该表中暂无数据";
                    }
                }
            });
                    // 参数说明:输入参数:字符型,待查询的sql语句;
                    //返回结果:{ status: true/false,data:[数据集json数据,....],msg:"结果描述或错误原因" }
            

文件及文件夹操作

文件夹操作

文件夹是否存在 direxist

               /* 示例 */
               ydbopen.call("direxist", dir, function (ret) {
		          if (ret.status) {
		            alert("文件夹【"   dir   "】已存在:" ret.msg);
		           } else {
		            
		         }
		     });
                //输入参数:dir 字符型,文件夹名称,可以含多级,如“abc","abc\def\xyz";	
                //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

创建文件夹 mkdir

                     /* 示例 */
                     ydbopen.call("mkdir", dir, function (ret1) {
		                if (ret1.status) {
		                    alert("文件夹["   dir   "]创建成功!" ret1.msg);
		                }
		            });
                    // 输入参数:dir 字符型,待创建的文件夹名称,可以含有多级路径;
                    //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

删除文件夹 deletedir

                       //ret:{status:true/false}
                       //异常情况,文件正在使用,文件夹不存在
                        /* 示例 */
                        ydbopen.call("deldir", dir, function (ret) {
		                    if (ret.status) {
		                        alert(ret.msg);
		                    } else {
		                        alert(ret.msg);
		                    }
		                });
                    //参数说明:输入参数:dir 字符型,文件夹内容,可以含多级路径,如“dira”,“a\b\c\d”,“a”;
                   //返回结果: { status: true/false,msg:"结果描述或错误原因" }
            

文件夹命名 rendir

                    var newdir = "srcddd";
		            //src,trg不能在同一文件夹
		            //异常:文件夹不存在,文件夹相同
		            /* 示例 */
                    ydbopen.call("rendir", { src: dira, trg: newdir }, function (ret) {
		                if (ret.status) {
		                    alert(ret.msg);
		                } else {
		                    alert(ret.msg);
		                }
		            });
                   //参数说明:输入参数:{src:源路径,trg:目标路径}
                   //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

获取知道文件夹中内容列表 readdir

                     //ret: {status:true/false,data:[{name:"a.txt",isdir:false,modifydate:"2015-10-17 12:59:38",filesize:0.85<单位m>},....]}
		            //异常信息可能文件夹不存在或文件夹不是文件夹
		            /* 示例 */
                    ydbopen.call("readdir", { path: dira, filetype: "*.*" }, function (ret) {
		                if (ret.status) {
		                    var srchtml = ret.msg;
		                    if (ret.data.length > 0) {
		                        for (var i = 0; i < ret.data.length; i  ) {
		                            srchtml  = ret.data[i].name   "  "   ret.data[i].isdir   "  "   ret.data[i].modifydate   "  "   ret.data[i].filesize;
		                        }
		                    }
		                    alert("文件夹列表:\n\n"   srchtml);
		                } else {
		                    alert(ret.msg);
		                }
		            });
                    //输入参数:{ "path": dira, "filetype": "*.*" }
               
参数 类型 注释
path 字符型 源文件夹名称
filetype 字符型 文件类型,可选 默认 *.*
//返回结果:{status:true/false,data:[{name:"文件名",isdir:true,modifydate:"2015-10-21 12:00:900",filesize:0.5},..],msg:"获取成功"} //返回参数说明:
参数 类型 注释
name 字符型 文件或文件夹名称
isdir 布尔型 标识name对应的是否为文件夹
modifydate 字符型 标识文件修改时间
filesize 浮点型 标识文件大小单位m,文件夹为0

文件操作

文件是否存在 fileexist

                   /* 示例 */
                   ydbopen.call("fileexist", fname, function (ret) {
		           if (ret.status) {
		            //ret: {status:true/false,content:"文件内容"}		           
		            } else {
		            alert(ret.msg);
		          }
		       });
                 // 输入参数:fname 字符型,文件夹 文件名或文件名;
                 //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

创建文件 createfile

                    /* 示例 */
                    ydbopen.call("createfile", { path: fname, default: "这是文件默认内容", encoding: "utf-8" }, function (ret1) {
		                if (ret1.status) {
		                    alert("文件:"   fname   ",创建成功!"  ret1.msg);
		                } else {
		                    alert(ret1.msg);
		                }
		            });
                    //输入参数:json对象;
                    
参数 类型 注释
path 字符型 待创建的文件路径,如“a/qike.txt”
default 字符型 默认的文件内容;可空,如“”/“这是文件内容”
encoding 字符型 标识文件编码;可空,默认为utf-8,可以为gbk,gb2312,utf-8
//返回结果:{ status: true/false,msg:"结果描述或错误原因" }

删除文件 deletefile

                    /* 示例 */
                    ydbopen.call("delfile", file, function (ret) {
		                if (ret.status) {
		                    alert(ret.msg);
		                } else {
		                    alert(ret.msg);
		                }
		            });
                    // 参数说明:输入参数:字符型,标识文件名,如“aa.txt”,“dira\a.txt”;
                    //返回结果: { status: true/false,msg:"结果描述或错误原因" }
            

文件命名 renfile

                    /* 示例 */
                    var fname = dira   "/"   filename;
                    var foname = dira   "/"   "qike.lst";
                    //src,trg需在同一文件夹
                    //异常:文件不存在,文件正在使用,不在同一文件夹			        
                    ydbopen.call("renfile", { src: fname, trg: foname }, function (ret) {
			            if (ret.status) {
			                alert(ret.msg);
			            } else {
			                alert(ret.msg);
			            }
			        });
                   // 输入参数:{src:源路径,trg:目标路径}
                   //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

获取指定文件内容 readalltext

                     /* 示例 */
                     ydbopen.call("readalltext", { filepath: fname, encoding: "utf-8" }, function (ret1) {
		                if (ret1.status) {
		                    alert(ret1.content ":" ret1.msg);
		                }
		            });
                    //参数说明:输入参数:{filepath:文件名,encoding:"utf-8"}
                     
参数 类型 注释
filepath 字符型 文件名称
encoding 字符型 文件编码,可选 默认 utf-8,可以为gbk,gb2312,utf-8
//返回结果:{status:true/false,count:"文件内容",msg:"结果描述"}

写入内容到指定文件 writealltext

                    var fname = dira   "/"   filename;
                    //覆盖式写入
                    /* 示例 */
                    ydbopen.call("writealltext", { filepath: fname, filecontent: "这是写入的全部内容!!\n\r", encoding: "utf-8" }, function (ret) {
			            if (ret.status) {
			                alert(ret.msg);
			            } else {
			                alert(ret.msg);
			            }
			        });
                    //输入参数:{ filepath: fname, filecontent: "内容!!", encoding:"utf-8" }
                  
参数 类型 注释
filepath 字符型 文件名称
encoding 字符型 文件编码,可选 默认 utf-8,可以为gbk,gb2312,utf-8
filecontent 字符型 待写入的文件内容
//返回结果:{status:true/false,msg:"结果描述"} 字符型,为文件内容,异常或失败则为空; 说明:文件不存在是则自动创建,存在则覆盖;

追加文件内容 appendtext

                    /* 示例 */
                    ydbopen.call("appendtext", { filepath: fname, appendtext: "这是追加的内容!!\n\r" ,encoding: "utf-8"}, function (ret2) {
                        if (ret2.status) {
                            alert(ret2.msg);
                        }
                    });
                  //输入参数:{ filepath: fname, appendtext: "追加的内容!!" ,encoding: "utf-8"}
                  
参数 类型 注释
filepath 字符型 文件名称
appendtext 字符型 待追加的内容
encoding 编码 utf-8、gbk、gb2312
//返回结果: {status:true/false,msg:"结果描述"}

文件下载 download

                   //ret: {status:true/false,filename:"本地物理路径file:///"}
                   //异常信息可能链接不存在,或下载终端,网络异常等
                   /* 示例 */
                    ydbopen.call("download", {
		                url: '要下载的文件路径',
		                trgname: dirb
		            }, function (ret, err) {
		                if (ret.status) {
		                    alert("下载成功:"   ret.filename);
		                } else {
		                    alert(err.msg);
		                }
		            });
                    //输入参数:{url:"要下载的文件路径",trgname:"下载后的路径及名称"}
                    
参数 类型 注释
url 字符型 待下载路径
trgname 字符型 下载后的名称和路径
返回结果:两个参数,ret,err ret {status:true/false,filename:"保存后的物理路径",msg:"结果描述"}
参数 类型 注释
status 整型 1、成功;0、失败
filename 字符型 下载后的物理路径名称
err:{code:1,msg:"操作成功",statuscode:200}
参数 类型 注释
code 整型 1、成功;0、失败
msg 字符型 结果描述
statuscode 整型 网络状态码

文件夹或文件复制 copyto

                    //覆盖式拷贝
                    //ret:{status:true/false}
                    //异常:可能文件不存在、目标文件正在使用等;
                    /* 示例 */
                    ydbopen.call("copyto", { src: fsrc, trg: ftrg }, function (ret) {
		                if (ret.status) {
		                    alert("文件"   fsrc   "拷贝到"   ftrg   "成功::"   ret.msg);
		                } else {
		                    alert(ret.msg);
		                }
		            });
                    // 参数说明:输入参数:{src:源路径,trg:目标路径}
                    //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
            

文件夹或文件移动 moveto

                    var fonamd = dira   "/"   "qiqp.lst";
                    var ftrg = dirb   "/"   "qq.dat";
                    //文件移动等于:复制 删除源文件
                    //异常信息可能文件不存在或正在使用
                    /* 示例 */
                    ydbopen.call("moveto", { src: fonamd, trg: ftrg }, function (ret) {
			            if (ret.status) {
			                alert("文件"   fonamd   "移到"   ftrg   "成功::"   ret.msg);
			            } else {
			                alert(ret.msg);
			            }
			        });
                    //输入参数:{src:源路径,trg:目标路径} 
                    //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                    // 注释:moveto等于copy   delete;
            

将相对路径转换成绝对路径 relpath2abspath

                    //ret: {status:true/false,path:"file:///xxx"}
                    /* 示例 */
                    ydbopen.call("relpath2abspath", dira, function (ret) {
		                if (ret.status) {
		                    alert("srcdir:["   dira   "]abspath:["   ret.path   "]msg:[" ret.msg "]");
		                } else {
		                    alert(ret.msg);
		                }
		            });                
                    //输入参数:字符型 ,标识文件夹或文件名;
                    //说明:支持文件夹和文件;
                    //返回结果:{status:true/false,path:"对应的物理路径",msg:"结果描述"}
            

压缩文件 zip

                    //文件压缩: 参数 files可换成 filetype:"*.lst",若同时存在则 filetype优先级高
                    //ret:{status:true/false}
                    /* 示例 */
                    ydbopen.call("zip", { dirname: dira, files: ["weblsq.lst", "qiqi.lst"], targetname: "weblsq.zip" }, function (ret) {
		                if (ret.status) {
		                    alert(ret.msg);
		                } else {
		                    alert(ret.msg);
		                }
		            });
                    //输入参数:{ dirname: dira, files: ["weblsq.lst", "qiqi.lst"],  targetname: "weblsq.zip" }
参数 类型 注释
dirname 字符型 文件夹名称
files 数组型 待压缩的文件列表
filetype 字符型 文件过滤支持多个,如“*.txt”,“*.txt;*.log;*.pdf”
password 字符型 压缩包密码,可选
targetname 字符型 标识压缩后文件的存放位置可为文件夹名或文件夹 文件名
//说明:files和filetype互斥,filetype优先; //返回结果:{status:true/false,msg:"结果描述"}

解压文件 unzip

                    /* 示例 */
                    ydbopen.call("unzip", { filename: zipfile,trgdir: trgdir }, function (ret) {
		                if (ret.status) {
		                    alert(ret.msg  ":" ret.abspath);
		                } else {
		                    alert("zip解压失败:" ret.msg);
		                }
		            });
                    //输入参数:{ filename: zipfile, password: "12345", trgdir: trgdir }
	
参数 类型 注释
filename 字符型 zip文件名称
password 数组型 压缩包密码,可选
trgdir 字符型 解压路径,为文件夹,不空
返回结果:{status:true/false,abspath:"解压后的物理路径",msg:"结果描述"}

判断网络此刻状态 netstate

                    /* 示例 */
                    ydbopen.call("netstate", null, function (ret) {
		            if (ret.status) {
		                var msg = "wifi 不可用";
		                switch (ret.state) {
		                    case 0:
		                        msg = "wifi 不可用";
		                        break;
		                    case 1:
		                        msg = "wifi 可用";
		                        break;
		                    case 2:
		                        msg = "gprs 不可用";
		                        break;
		                    case 3:
		                        msg = "gprs 可用";
		                        break;
		                }
		                alert("state:["   msg   "]msg:[" ret.msg "]");
		            } else {
		                alert(ret.msg);
		            }
		        });
                    //输入参数:无;
                    //返回结果:{status:true/false, state:状态码, msg:"结果描述"}
                    状态码说明:
                   -1:默认值   status为false时
                    0:wifi 不可用
                    1:wifi 可用
                    2:gprs 不可用
                    3:gprs 可用
            

问题反馈

邮箱地址:[email protected]

邮件主题:【ydbopen反馈】

邮件内容说明:

用简明的语言描述问题所在,并讲清楚遇到该问题的场景,可附上截屏图片,我们团队会尽快处理你的反馈。