JavaScript轻应用高级组件-阿里云开发者社区

开发者社区> 开发者小助手> 正文

JavaScript轻应用高级组件

简介: 除了基础的功能组件外,JavaScript轻应用还提供了阿里云智能物联网平台连接以及语音播报等能力,具体介绍如下。
+关注继续查看

1、前言

除了基础的功能组件外,JavaScript轻应用还提供了阿里云智能物联网平台连接以及语音播报等能力,具体介绍如下。

2、iot - 阿里云IoT平台连接组件

示例代码

  1. /* iot - 阿里云IoT连接平台连接组件示例,产品功能定义:
  2. * [功能类型] ------ [功能名称] ------ [标志符] ------ [数据类型]
  3. * 属性 主灯开关 LightSwitch bool (0-关闭 1-开启)
  4. * 服务 开关翻转 ToggleLightSwitch -
  5. * 事件 故障上报 Error 参数标志符:ErrorCode
  6. * */
  7. var iot = require('iot');
  8. var productKey = '';
  9. var deviceName = '';
  10. var deviceSecret = '';
  11. var lightSwitch = 0;
  12. var device = iot.device({
  13. productKey: productKey,
  14. deviceName: deviceName,
  15. deviceSecret: deviceSecret,
  16. region: 'cn-shanghai',
  17. success: function () {
  18. console.log('connect success');
  19. onConnect();
  20. },
  21. fail: function () {
  22. console.log('connect failed');
  23. }
  24. });
  25. function onConnect() {
  26. setInterval(function () {
  27. /** post properties */
  28. lightSwitch = 1 - lightSwitch;
  29. device.postProps({
  30. payload: {
  31. LightSwitch: lightSwitch
  32. },
  33. success: function () {
  34. console.log('postProps success');
  35. },
  36. fail: function () {
  37. console.log('postProps failed');
  38. }
  39. });
  40. /** post events */
  41. device.postEvent({
  42. id: 'Error',
  43. params: {
  44. ErrorCode: 0
  45. },
  46. success: function () {
  47. console.log('postEvent success');
  48. },
  49. fail: function () {
  50. console.log('postEvent failed');
  51. }
  52. });
  53. }, 3000);
  54. }
  55. device.on('connect', function () {
  56. console.log('(re)connected');
  57. });
  58. /* 网络断开事件 */
  59. device.on('disconnect', function () {
  60. console.log('disconnect ');
  61. });
  62. /* 关闭连接事件 */
  63. device.on('close', function () {
  64. console.log('iot client just closed');
  65. });
  66. /* 发生错误事件 */
  67. device.on('error', function (err) {
  68. console.log('error ' + err);
  69. });
  70. /* 云端设置属性事件 */
  71. device.on('props', function (payload) {
  72. console.log('cloud req data is ', payload);
  73. console.log('LightSwitch ', payload.LightSwitch ? 'ON' : 'OFF');
  74. });
  75. /* 云端下发服务事件 */
  76. device.on('service', function (id, payload) {
  77. console.log('received cloud serviceid is ' + id);
  78. console.log('received cloud req_data is ' + payload);
  79. });
  1. var iot = require('iot');
  2. var productKey = '';
  3. var deviceName = '';
  4. var deviceSecret = '';
  5. /* 设备签名 */
  6. iot.sign({
  7. productKey: productKey,
  8. deviceName: deviceName,
  9. deviceSecret: deviceSecret,
  10. region: 'cn-shanghai',
  11. success: function (params) {
  12. console.log('sign success');
  13. console.log(params);
  14. },
  15. fail: function () {
  16. console.log('sign failed');
  17. }
  18. });

device(Object option)

创建 iot 实例,同时会开始尝试连接阿里云IoT平台。iot实例默认开启TLS加密。

入参

属性

类型

必填

描述

productKey

String

设备的prodctKey

deviceName

String

设备的deviceName

deviceSecret

String

设备的deviceSecret

region

String

阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区

success

Function

连接成功时的回调函数

fail

Function

连接失败的回调函数

返回

sign(Object option)

进行设备签名。本接口相对独立,当 iot JSAPI 无法满足要求时,可以使用本接口进行设备认证,然后使用 mqtt JSAPI 接入阿里云物联网平台。设备签名请参考 设备接入Link SDK - 设备签名

入参

属性

类型

必填

描述

productKey

String

设备的prodctKey

deviceName

String

设备的deviceName

deviceSecret

String

设备的deviceSecret

region

String

阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区

success

Function

认证成功的回调函数

fail

Function

认证失败的回调函数

success回调函数参数

Object类型,其属性有:

属性

类型

描述

host

String

可以连接的MQTT服务器域名地址, 根据入参 region 自动计算

port

Number

可以连接的MQTT服务器端口号, 根据标准MQTT协议一般是 1883 或者 443

username

String

连接MQTT服务器时将要使用的用户名

password

String

连接MQTT服务器时将要使用的密码, 和用户名一一对应

clientid

String

连接MQTT服务器时标识设备的自定义ID, 服务器对此不做校验, 鉴权通过 username password 进行

fail回调函数参数

属性

类型

描述

error

String

错误信息

iot 实例

事件

当iot client 连接到iot平台时,触发connect事件。断开重连时也会触发该事件。

当连接断开时,触发'disconnect'事件。

当iot client 关闭时,触发close事件。

当iot云端下发属性设置时,触发props事件。

当iot云端调用设备service时,触发service事件。

当设备跟iot平台通信过程中遇到错误时,触发error事件。

方法

上报属性。

上报事件。

关闭iot实例。

注册iot事件回调函数。

事件:'connect'

当iot client 连接到iot平台时,触发'connect'事件。断开重连时也会触发该事件。

事件:'disconnect'

当连接断开时,触发'disconnect'事件。三元组错误、三元组重复上线、服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。该事件触发时,会自动尝试重连。

事件:'close'

当iot client 关闭时,触发'close'事件。

事件:'props'

当iot云端下发属性设置时,触发'props'事件。

回调函数参数有:

属性

类型

描述

payload

Object

服务端设置设备属性的内容

事件:'service'

当iot云端调用设备service时,触发'service'事件。

回调函数参数有:

属性

类型

描述

id

String

服务标志符,详细请参考什么是物的模型

payload

Object

服务端设置设备属性的内容

事件:'error'

当设备跟iot平台通信过程中遇到错误时,触发'error'事件。'error'事件的回调函数参数有:

属性

类型

描述

error

String

错误信息

iot.postProps(Object options)

上报设备属性。

入参

Object类型,其属性有:

属性

类型

必填

描述

payload

Object

设备定义的属性参数。详细请参考什么是物的模型

success

Function

上报设备属性成功的回调函数

fail

Function

上报设备属性失败的回调函数

iot.postEvent(Object options)

上报设备的事件。

入参

Object类型,其属性有:

属性

类型

必填

描述

id

String

事件标志符,详细请参考什么是物的模型

params

Object

要上报的事件参数

success

Function

上报设备事件成功的回调函数,其函数参数参见下面说明

fail

Function

上报设备事件失败的回调函数

success回调函数参数:

属性

类型

描述

res

String

服务端reply的消息内容

iot.close()

关闭IoT实例。

iot.on(String event, Function callback)

监听事件。

入参

属性

类型

必填

描述

event

String

注册的事件名称

callback

Function

监听事件的回调函数

3、audioplayer - 音频播放组件

示例代码

  1. var audioplayer = require('audioplayer');
  2. var audioplayerState = ['stop', 'paused', 'playing', 'listplay_begin', 'listplay_end', 'error'];
  3. audioplayer.on('stateChange', function(state) {
  4. console.log('audioplayer state: ' + audioplayerState[state]);
  5. });
  6. audioplayer.setVolume(60);
  7. audioplayer.play("/test.mp3");
  8. setTimeout(function() {
  9. console.log("playback pause");
  10. audioplayer.pause();
  11. var position = audioplayer.getPosition();
  12. var duration = audioplayer.getDuration();
  13. console.log('playback progress: ' + position + '/' + duration);
  14. }, 5000)
  15. setTimeout(function() {
  16. console.log("playback resume");
  17. audioplayer.resume();
  18. }, 10000)
  19. setTimeout(function() {
  20. console.log("playback from 1s");
  21. audioplayer.seekto(1);
  22. }, 15000)
  23. setTimeout(function() {
  24. var position = audioplayer.getPosition();
  25. var duration = audioplayer.getDuration();
  26. console.log('playback progress: ' + position + '/' + duration);
  27. }, 16000)
  28. setTimeout(function() {
  29. console.log("playback stop");
  30. audioplayer.stop();
  31. }, 30000)

play(String path)

开始播放指定的音频。

入参

属性

类型

必填

描述

path

String

本地音频文件绝对路径或者音频url。

支持的音频格式:

mp3、wav

返回值

  • Number类型,0:成功,其他:失败。

pause()

暂停播放。

入参

  • 无。

返回值

  • Number类型,0:成功,其他:失败。

resume()

继续播放。

入参

  • 无。

返回值

  • Number类型,0:成功,其他:失败。

stop()

停止播放。

入参

  • 无。

返回值

  • Number类型,0:成功,其他:失败

listPlay(Array paths)

依次播放列表中的音频文件。

入参

  • 音频文件绝对路径数组。

返回值

  • Number类型,0:成功,其他:失败。

setVolume(Number volume)

设置播放音量。

入参

属性

类型

必填

描述

volume

Number

音量大小,取值范围:0-100,默认:40

返回值

  • Number类型,0:成功,其他:失败。

getVolume()

获取当前音量。

入参

  • 无。

返回值

  • Number类型,当前音量大小。

getState()

获取当前播放器状态。

入参

  • 无。

返回值

播放器状态

属性

类型

描述

state

Number

音频播放器当前状态

0 - 播放停止

1 - 播放暂停

2 - 播放开始

3 - 列表播放开始

4 - 列表播放结束

5 - 播放器错误

seekto(Number seconds)

从指定位置处开始播放。

入参

属性

类型

必填

描述

seconds

Number

播放位置,单位:秒

返回值

  • Number类型,0:成功,其他:失败。

getPosition()

获取当前播放进度。

入参

  • 无。

返回值

  • Number类型,当前播放进度,单位:秒。

getDuration()

获取当前音频文件时长。

入参

  • 无。

返回值

  • Number类型,当前播放音频文件时长,单位:秒。

事件:'stateChange'

当播放器状态变化时,触发'stateChange'事件。

回调函数参数有:

属性

类型

描述

state

Number

音频播放器当前状态

0 - 播放停止

1 - 播放暂停

2 - 播放开始

3 - 列表播放开始

4 - 列表播放结束

5 - 播放器错误

开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[译] 为多个品牌和应用构建 React 组件
本文讲的是[译] 为多个品牌和应用构建 React 组件,沃尔玛大家庭由多个不同的品牌组成,其中包括 Sam’s Club, Asda,和例如 Walmart Canada 之类的地区分支。电商应用通常会使用大量类似的功能,例如信用卡组件、登录表单、新手引导、轮播图、导航栏等等。
1076 0
Winjs – 微软开源技术发布的 JavaScript 组件集
  Winjs 是由微软开源技术的开发者推出的一组 JavaScript 组件,包括 ListView、ListView、Tooltip、DatePicker、Ratings 等等,帮助 Web 开发人员使用最好的网站功能解决方案。
753 0
JavaScript轻应用高级组件
除了基础的功能组件外,JavaScript轻应用还提供了阿里云智能物联网平台连接以及语音播报等能力,具体介绍如下。
49 0
JavaScript轻应用网络模块介绍
JavaScript轻应用提供了网络管理相关的功能,APP可以通过JSAPI获取网络相关的信息,并且可以接收网络连接、断开的事件。
48 0
Windows C++ 应用程序通用日志组件(组件及测试程序下载)
引言   众所周知,在调试、跟踪和执行应用程序的过程中,程序的日志能为这些工作提供大量有价值的运行信息。因此,程序的日志对应用程序的运行、维护至关重要。   在如何记录程序日志方面,通常有三种选择:   1、采用Log4CXX等公共开源日志组件:这类日志组件的特点是跨平台且功能比较强大,例如可以把日志发往另一台服务器或记录到数据库中等;另外,可配置性较高,可以通过配置文件或程序代码对日志进行很多个性化设置。
734 0
JavaScript轻应用UI介绍
本文档在此基础上介绍下轻应用UI是如何开发的。与前者相比,从应用代码的文件结构看,需要增加页面文件,并在全局配置中增加页面路径相关的信息即可。
77 0
JavaScript轻应用:UI组件的属性配置
之前的文档已经介绍过,轻应用UI主要包含三部分:页面结构(xml文件)、页面样式(css文件)和页面逻辑(js文件),这里主要介绍一下页面结构的组成。
81 0
1441
文章
305
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载