cvVibrate

v1.0.1

httpServer

v1.0.0
©2019 Curlv 浙ICP备15008632号
回到
顶部
Markdown工具 /* Title: cvVibrate Description: cvVibrate */
[Peek](#a1) [Pop](#a2) [Three](#a3) [Long](#a4) [Custom](#a5) [stopVibrate](#a6) [vioceVibrate](#a7) [ringTone](#a8) [stopRingTone](#a9)
#**概述** 振动反馈、震动反馈、短振动、短震动,安卓可以指定振动时长,封装类似IOS触发3dtouch振动反馈,提供IOS下的Peek、Pop、三次连续振动(支持3DTouch的IOS设备都可以使用)等振动反馈,安卓封装振动与IOS相似时长真干反馈,支持自定义时长震动和暂停振动。** ## [实例widget下载地址](http://www.cvvos.com/cvVibrate/master.zip)
#**Peek** Peek振动 Peek(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.Peek(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**Pop** Pop振动 Pop(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.Pop(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**Three** 三次连续振动 Three(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.Three(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**Long** 长振动 Long(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.Long(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**Custom** 自定义时长振动模式(**仅安卓支持自定义时长振动,IOS是支持自定义时间间歇振动**) Custom({params}, callback(ret, err)) ##params time: - 类型: 数字类型;time 有效期,单位(毫秒) - 描述:(必填项)振动的总时长,到时间后停止振动。 ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.Custom({time:2000},function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**stopVibrate** 停止振动 stopVibrate(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.stopVibrate(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 Android系统,可提供的1.0.0及更高版本 iOS系统,可提供的1.0.1及更高版本
#**voiceVibrate** 播放系统默认信息铃声并振动(系统设置静音时不播放铃声) voiceVibrate(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.voiceVibrate(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.1及更高版本
#**ringTone** 根据系统SoundID选择播放手机铃声(系统设置静音时不播放铃声) ringTone(params,callback(ret, err)) ##params SoundID - 类型: 数字类型;SoundID IOS取值参考网站:http://iphonedevwiki.net/index.php/AudioServices 安卓取值:1(消息铃声)2(电话铃声)3(闹钟铃声)任意数字(不通品牌手机存在差异) - 描述:(必填项)系统铃声id。 time: - 类型: 数字类型;time 有效期,单位(毫秒) - 描述:(必填项)铃声播放振动的总时长,到时间后停止振动。 duration: - 类型: 数字类型;duration 有效期,单位(毫秒) - 描述:(选填项)铃声循环间隔,调节循环次数。(time存在时必填项) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.ringTone(function( { SoundID: 1, time: 7000, duration: 1000 } ,ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.1及更高版本
#**stopVibrate** 停止铃声和振动(不能停止Custom、Long等纯震动接口) stopRingTone(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var cvVibrate = api.require('cvVibrate'); cvVibrate.stopRingTone(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.1及更高版本
/* Title: httpServer Description: httpServer */
[start](#a1) [stop](#a2) [getIp](#a3) [addEventListener](#a4) [response](#a5) [ipSync](#a6) [portSync](#a7) [wwwSync](#a8) [runSync](#a9) [responseSync](#a10)
#**概述** [httpServer](http://www.cvvos.com)是一个手机端提供轻量级的Web Server服务的模块。模块具有响应监听能力,更好的方便APIcloud开发者,纯粹利用JS处理网页请求以及响应返回数据。模块内封装了传统http的GET、POST请求,可以像服务器一样处理网页请求,处理响应。当然如果你懂内网映射外网,开发app成为服务器也不是什么难事。举个例子,利用本模块开发类似APP【Airmore】:通过局域网打开网页控制app文件上传、下载、控制等等。更多的利用方式由开发者们自己构建利用场景了。【PS:因为自己团队APP利用本模块,所以会长期更新,[最新文档](http://www.cvvos.com)会最先更新在以下[demo](http://www.cvvos.com/httpServer/master.zip)。】 ## [实例widget下载地址](http://www.cvvos.com/httpServer/master.zip) #**论坛示例** 为帮助用户更好更快的使用模块,论坛维护了一个[示例](https://community.apicloud.com/bbs/thread-149382-1-1.html),示例中包含示例代码、知识点讲解、注意事项等,供您参考。
#**start** 开启HTTP服务,开启指定端口,指定手机文件路径为根目录供网页访问。 注意:1.安卓请勿重复两次执行start接口,会造成stop接口失效,导致关闭服务器失灵(提供运行状态检测同步接口runSync,可以避免)。 2.APP切换至后台,HTTP服务暂停,无法访问,切回后恢复访问。 start({params},callback(ret, err)) ##params www - 类型: 字符类型; - 描述:(必填项)开启服务的真实文件路径。 - 备注:支持api的真实路径函数,如:api.fsDir+"/文件夹名",或者是其他模块提供的真实地址路径类似如下: /var/mobile/Containers/Data/Application/4E376FDE-D595-4E08-B0A4-A06561B31000/Documents/uzfs/A123456789 - 推荐使用: api.fsDir【清缓存时不清除】 api.cacheDir【清缓存时清除】 - 不推荐使用:api.wgtRootDir【1、不能使用全局加密,否则页面加载出的乱码页面。2、不能实现POST文件上传】 api.boxDir【安卓不能实现POST文件上传】 port - 类型: 数字类型; - 描述: 开启服务的端口号,默认:2633;取值范围0到65535 - 备注:例如内网地址:http://192.168.0.1:2633 即对应2633部分。安卓手机,不建议取80、8080、433等常用接口,普遍存在端口占有情况导致无法访问; ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,当前模式振动是否触发成功。 ,www: "/var/mobile/Containers/Data/Application/4E376FDE-D595-4E08-B0A4-A06561B31000/Documents/uzfs/A123456789" //字符类型;启动服务器的文件夹真实路径。 ,port: "2633" //字符类型;启动服务器的端口。 ,ip: true //字符类型;启动服务器的IP。目前只提供ipv4,手机开热点时返回手机热点IP,无任何网络返回null; } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var httpServer = api.require('httpServer'); httpServer.start( { www:api.fsDir, port:2633 },function(ret, err){ alert(JSON.stringify(ret)); }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**stop** 关闭HTTP服务。 stop(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,关闭成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var httpServer = api.require('httpServer'); httpServer.status(function(ret, err){ if(ret.status){ alert("关闭成功"); }else{ alert('关闭失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**getIp** 异步获取IP。 getIp(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { ip:"192.168.0.128", //字符类型;目前只提供ipv4,手机开热点时返回手机热点IP,无任何网络返回null; status: true //布尔型;true||false,IP获取成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var httpServer = api.require('httpServer'); httpServer.getIp(function(ret, err){ if(ret.status){ alert("触发成功"); }else{ alert('触发失败'); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**addEventListener** 网页请求后的监听接口。网页被加载或者POST或者GET请求后,监听接口收到数据,并对数据开始处理保存响应等操作,最后可以用response或者responseSync接口作出当次请求的响应。 addEventListener(callback(ret, err)) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: 例如:POST带两个二进制文件上传请求 http://192.168.0.128:2633/aa/index.html?bb=123&cc=456 上传的文件名:432.jpg和789.png(安卓版:文件名是中文上传会被保存时重命名) ```js { sid: "157535859456782309", //字符类型;18位请求识别码,response、responseSync接口做请求响应时需要使用。 method: "POST", //字符类型;GET||POST,请求类型。 url: "/aa/index.html", //字符类型;当次请求的文件,包含相对根目录的文件路径。 query: {bb:"123",cc:"456"}, //对象类型;对应url请求下?后的url数据和POST的data数据。 files: [ {name:"432.jpg",path:"/aa/432.jpg"}, // 保存文件夹名会于url中的相对aa路径对应,没有时会对应新建文件夹。 {name:"789.png",path:"/aa/789.png"} ] //数组类型;多个文件时累加。文件名和全路径(超大文件上传时文件名会提前输出,数据后置保存) } ``` 重要提示:例子中因为存在url参数(即?后面的或者文件上传),请求进入response或者responseSync接口30秒等待响应,而不会取读取/aa/index.html输出页面。正常页面加载的请求请不要后面带?参数,保证请求文件存在即可。 err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var httpServer = api.require('httpServer'); httpServer.addEventListener(function(ret){ alert(JSON.stringify(ret)); if (ret.query){ httpServer.responseSync({sid:ret.sid,data:{xiang:ret.query}}); }else{ console.log(JSON.stringify(ret.url)); } }); ``` 为之方便跨Frame和Win监听数据需求的开发者,本模块另外提供api.addEventListener的监听接收数据,两个addEventListener二选一不能同时使用,示例代码如下 ```js api.addEventListener({ name: 'httpServer' }, function(ret){var res=ret.value; if (res.query){ httpServer.response({sid:res.sid,data:{xiang:res.query.aa}}); }else{ console.log(JSON.stringify(res.url)); } }); ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**response** 异步请求响应接口(addEventListener收到带参数监听,就会进入30秒等待响应,如果不写响应代码,则该请求30秒后回调页面400) response({params}, callback(ret, err)) ##params sid - 类型: 字符类型;addEventListener监听到后自动产生18位请求识别码; - 描述:(必填项) data - 类型: 对象类型;需要响应给当次的所有自定义数据。 - 描述:(必填项) ##callback(ret, err) ret: - 类型:JSON对象 - 内部字段: ```js { status: true //布尔型;true||false,响应成功。 } ``` err: - 类型:JSON对象 - 内部字段: ```js { code: -1 //数字类型; //错误码: //-1(未知错误) } ``` ##示例代码 ```js var httpServer = api.require('httpServer'); httpServer.response( {sid:res.sid, //res为addEventListener监听到的数据; data:{xiang:res.query.aa} },function(ret,err){ console.log(JSON.stringify(ret)); } ); ``` ##特别注意: 因为responseSync执行后,页面会接收到执行url的数据结果是以字符串的形式接收,输出到页面,所以非页面数据ajax请求时,模块网页端的代码,需要通过 JSON.parse(ret)或ret=eval('('+ret+')')等方法进行字符串转换json; ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**ipSync** 同步获取IP; ipSync() ##示例代码 ```js var httpServer = api.require('httpServer'); var ip=httpServer.ipSync(); //字符类型,目前只提供ipv4,手机开热点时返回手机热点IP,无任何网络返回null; ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**portSync** 同步获取端口; portSync() ##示例代码 ```js var httpServer = api.require('httpServer'); var port=httpServer.portSync(); //字符类型,目前开启服务的端口号; ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**wwwSync** 同步获取当前提供访问的真实文件路径; wwwSync() ```js var httpServer = api.require('httpServer'); var www=httpServer.wwwSync(); //字符类型,目前提供访问的真实文件路径;例如:/var/mobile/Containers/Data/Application/4E376FDE-D595-4E08-B0A4-A06561B31000/Documents/uzfs/A123456789 ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**runSync** 同步获取当前服务的开启状态; runSync(); ##示例代码 ```js var httpServer = api.require('httpServer'); var isrun=httpServer.runSync(); //布尔型;true||false,是否运行。 ``` ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本
#**responseSync** 同步请求响应接口(addEventListener收到带参数监听,就会进入30秒等待响应,如果不写响应代码,则该请求30秒后回调页面400); responseSync({params}); ##params sid - 类型: 字符类型;addEventListener监听到后自动产生18位请求识别码; - 描述:(必填项) data - 类型: 对象类型;需要响应给当次的所有自定义数据。 - 描述:(必填项) ##示例代码 ```js var httpServer = api.require('httpServer'); var isresponse=httpServer.responseSync({sid:ret.sid,data:{xiang:ret.query}}); //布尔型;true||false,是否响应成功。 ``` ##特别注意: 因为responseSync执行后,页面会接收到执行url的数据结果是以字符串的形式接收,输出到页面,所以非页面数据ajax请求时,模块网页端的代码,需要通过 JSON.parse(ret)或ret=eval('('+ret+')')等方法进行字符串转换json; ##可用性 iOS系统,Android系统 可提供的1.0.0及更高版本