CN106685726A - 基于react‑native实现智能家居监控系统 - Google Patents

基于react‑native实现智能家居监控系统 Download PDF

Info

Publication number
CN106685726A
CN106685726A CN201710018229.1A CN201710018229A CN106685726A CN 106685726 A CN106685726 A CN 106685726A CN 201710018229 A CN201710018229 A CN 201710018229A CN 106685726 A CN106685726 A CN 106685726A
Authority
CN
China
Prior art keywords
javascript
module
native
data
react
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710018229.1A
Other languages
English (en)
Inventor
付蔚
廖海波
王平
赖宜荣
杜亮
郑方雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201710018229.1A priority Critical patent/CN106685726A/zh
Publication of CN106685726A publication Critical patent/CN106685726A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast

Abstract

本发明涉及一种基于react‑native实现智能家居监控系统,包括UI层,JavaScript层和平台适配层;所述UI层包括用户界面UI以及页面逻辑;所述JavaScript层包括react‑native主体框架本身,以及针对智能家居移动应用需求所封装的JavaScript扩展模块;所述平台适配层用于对JavaScript扩展模块的Native进行适配。本发明的智能家居监控系统同时适配了Android和iOS,极大的提高了开发效率和降低了维护成本。

Description

基于react-native实现智能家居监控系统
技术领域
本发明涉及智能家居及物联网技术领域,特别涉及一种基于react-native实现智能家居监控系统。
背景技术
智能家居系统是一个集硬件、软件和通信等多种技术为一体的应用系统,其中移动终端作为用户操作行为的接口,拥有远程控制、监测等多种功能。通常这类控制软件都是基于独立的平台完成独立的应用开发,来满足其控制需求。目前最主流的操作系统是Android和iOS,在开发同一款应用时,不得不有两组人员来开发和维护两套代码,这无疑是一种非常耗费人力资源的解决方案。
在react-native出现之前,移动软件跨平台的解决方案多数是采用基于web的框架,如phoneGap、html5等。但是,这类框架有一个非常重大的缺陷就是用户体验的问题,这类框架在iOS上的体验还不错,但是在Android上就非常卡顿了。如果说,用这类框架只开发iOS软件,也就失去的跨平台的意义了。React-native是互联网公司Facebook开源的移终端应用开发的框架,可以使用JavaScript和React来开发Android和iOS的原生应用。但是,react-native提供的组件和API基本都是针对UI的,不能满足智能家居监控系统的需求。我们可以通过抽象公共的功能模块,在react-native的基础上做原生模块的扩展,以此来完成智能家居监控系统的开发,从而降低成本,提高开发效率。
发明内容
有鉴于此,本发明的目的在于提供一种基于react-native实现智能家居监控系统。
本发明的目的是通过以下技术方案来实现的,一种基于react-native实现智能家居监控系统,包括UI层,JavaScript层和平台适配层;
所述UI层包括用户界面UI以及页面逻辑;
所述JavaScript层包括react-native主体框架本身,以及针对智能家居移动应用需求所封装的JavaScript扩展模块;
所述平台适配层用于对JavaScript扩展模块的Native进行适配。
进一步,所述JavaScript扩展模块包括数据缓存模块、消息通信模块、视频监控模块和设备控制模块;
所述数据缓存模块,通过消息通信模块与家庭网关网络通信并解析得到环境数据、安防数据、能耗数据以及设备控制命令,环境数据、安防数据、能耗数据以及设备控制命令通过JavaScript传递给平台适配层进行关联数据库存储;
所述消息通信模块使用JavaScript封装消息通信常用的操作接口,调用平台适配层的消息通信模块扩展的方法,与家庭网关进行网络通信,完成设备控制命令的下发和环境数据、安防数据、能耗数据的上传;
所述视频监控模块使用JavaScript封装常用的视频监控操作接口,调用平台适配层的视频监控模块扩展的方法,完成摄像头的操作控制和参数设置;
所述设备控制模块,提取数据缓存模块中的控制命令,并通过消息通信模块将控制命令下发到家庭网关。
进一步,所述对JavaScript扩展模块的Native进行适配包括db缓存文件模块扩展、消息通信模块扩展和视频监控模块扩展;
所述db缓存模块扩展使用原生语言封装数据库常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用;
所述消息通信模块扩展使用原生语言封装UDP常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用;
所述视频监控模块扩展使用原生语言封装视频监控常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用。
由于采用以上技术方案,本发明具有以下优点:
UI层使用JavaScript作为开发语言,采用react-native的UI组件,能够快速的开发UI界面以及同时适配Android和iOS;JavaScript层除了可以直接使用react-native框架本身的API,更将大部分与智能家居监控系统相关的扩展模块进行了封装,供UI层页面逻辑调用,无需关注这部分代码使用于何种平台,只需专注业务逻辑,提高开发效率;原生适配层为JavaScript层中所需要调用原生API的方法做Native适配,使用callback函数完成与JavaScript层的数据交互。最终完成智能家居监控系统的功能需求,同时适配了Android和iOS,极大的提高了开发效率和降低了维护成本。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明的基于react-native实现智能家居监控系统原理框图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为本发明的原理框图,如图所示,基于react-native实现智能家居监控系统,包括UI层、JavaScript层、原生适配层。
所述UI层包括用户UI界面和页面逻辑,具体实现步骤为:
步骤一、在App根组件中设置App是否登录的状态this.state.isLogined,根据this.state.isLogined的值判定用户是否登录,从而在根组件中判定渲染登录组件或主页面组件,并使用AsyncStorage组件异步存储user信息;
步骤二、在根组件中设置路由组件Navigator,通过route.params将参数传递到子组件中,子组件通过添加onPress属性调用this.props.navigator的push或pop方法,选择跳转到新页面或返回上级页面;
步骤三、在路由组件中通过initialRoute设置路由初始化组件,渲染主页面,主页面中根据自己的需求编写UI界面。
JavaScript层包括react-native主体框架本身,以及针对智能家居需求所封装的几个JavaScript扩展模块,包括数据缓存模块、消息通信模块、视频监控模块和设备控制模块等。
所述数据缓存模块,通过消息通信模块与家庭网关网络通信并解析得到环境数据、安防数据、能耗数据以及设备控制命令,环境数据、安防数据、能耗数据以及设备控制命令通过JavaScript传递给平台适配层进行关联数据库存储。
所述数据缓存模块是在JavaScript层通过使用JS封装Sqlite3常用的API接口,供上层的UI界面调用,具体实现步骤为:
步骤一、引入Native组件NativeModules,通过NativeModules拿到平台适配层封装的Sqlite原生模块;
步骤二、封装常用的打开、关闭、增、删、改、查等操作在sqlite.js中,供上层的UI界面调用;
步骤三、在消息通信模块中,将从家庭网关中收到的环境数据、安防数据等解析出来,再调用sqlite.js封装好的API,将数据存入到sqlite3数据库中,当数据库中的数据发生改变时,再通过this.setState方法,更新UI中的环境数据、能耗数据和触发安防报警等功能。
所述消息通信模块使用JavaScript封装消息通信常用的操作接口,调用平台适配层的消息通信模块扩展的方法,与家庭网关进行网络通信,完成设备控制命令的下发和环境数据、安防数据、能耗数据的上传。
所述消息通信模块是在JavaScript层使用JS封装Udp常用的API接口,供上层的UI界面调用,具体的实现步骤为:
步骤一、引入Native组件NativeModules,通过NativeModules获取到Udp原生模块;
步骤二、封装createSocket方法创建一个Udp套接字、bind方法绑定本地端口、send方法将数据发送到指定的ip和端口、on监听某个ip和端口广播的数据、error方法对时间错误的处理、close方法关闭套接字在udpSocket.js中,供上层的UI层调用;
所述视频监控模块使用JavaScript封装常用的视频监控操作接口,调用平台适配层的视频监控模块扩展的方法,完成摄像头的操作控制和参数设置。
所述视频监控模块是在JavaScript层使用JS封装视频监控常用的操作接口,供上层的UI界面调用,具体实现步骤如下:
步骤一、引入Native组件NativeModules,通过NativeModules获取到VedioControl原生模块;
步骤二、封装打开、关闭、上移、下移、左移、右移等方法,供上层的UI界面逻辑调用;
步骤三、封装设置监控参数等方法,包括摄像头的ip、端口、用户信息等,供上层的UI界面逻辑调用。
所述设备控制模块,提取数据缓存模块中的控制命令,并通过消息通信模块将控制命令下发到家庭网关。
所述设备控制模块是在JavaScript层对消息通信模块以及数据缓存模块的调用的封装,供上层UI界面调用,具体实现步骤如下:
步骤一、引入udpSocket.js和sqlite.js;
步骤二、调用udpSocket.js的方法,创建一个udpSocket,并绑定本地端口;
步骤三、调用sqlite的方法,查询到db文件中存储的控制命令配置文件的存储路径,并解析获取到控制命令;
步骤四、调用udpSocket.js的send方法,将控制数据发送到家庭网关的ip和端口;
步骤五、发送成功后,通过this.setState方法更新UI组件的状态。
所述平台适配层对上述相对应的移动平台做扩展模块的Native(Android和iOS)适配,完成JavaScript层的JS与平台适配层的原生语言数据交互,包括db缓存文件模块扩展、消息通信模块扩展和视频监控模块扩展等:
所述db缓存文件模块扩展,分别在Android和iOS平台中使用原生语言对JavaScript层的数据缓存模块做Native适配,具体实现步骤如下:
步骤一、iOS中定义一个sqlite类实现RCTBridgeModule协议,Android中定义一个sqlite类继承ReactContextBaseJavaModule类;
步骤二、iOS使用Objective-c语言,Android使用java语言编写常用的打开、关闭、增、删、改、查等操作及错误事件处理方法;
步骤三、iOS使用RCT_EXPORT_METHOD()宏来声明方法,Android使用Java注解@ReactMethod,将原生方法导出,并使用回调函数callback完成JavaScript与原生语言的数据交互。
所述消息通信模块扩展,分别在Android和iOS平台中使用原生语言对JavaScript层的消息通信模块做Native适配,具体实现步骤如下:
步骤一、iOS中定义一个UdpSocket类实现RCTBridgeModule协议,Android中定义一个UdpSocket类继承ReactContextBaseJavaModule类;
步骤二、使用原生语言编写createSocket、bind、send、close、ReceiveData等方法;
步骤三、iOS使用RCT_EXPORT_METHOD()宏来声明方法,Android使用Java注解@ReactMethod,将上述原生方法导出,并使用回调函数callback完成JavaScript与原生语言的数据交互。
所述视频监控模块扩展,接入第三方的视频监控SDK,并分别在Android和iOS平台使用原生语言对JavaScript层的视频监控做Native适配,具体实现步骤如下:
步骤一、引入第三方的视频监控SDK,并初始化;
步骤二、iOS通过把UIView传递给第三方视频SDK去进行视频流解码绘制,Android使用Activity的SurfaceHolder传递给第三方视频SDK完成视频流的解码绘制,从而播放视频;
步骤三、使用原生语言编写打开、关闭、上移、下移、左移、右移、设置监控参数等方法,并使用回调函数callback完成JavaScript与原生语言的数据交互,完成UI的控制。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (3)

1.一种基于react-native实现智能家居监控系统,其特征在于:包括UI层,JavaScript层和平台适配层;
所述UI层包括用户界面UI以及页面逻辑;
所述JavaScript层包括react-native主体框架本身,以及针对智能家居移动应用需求所封装的JavaScript扩展模块;
所述平台适配层用于对JavaScript扩展模块的Native进行适配。
2.根据权利要求1所述的基于react-native实现智能家居监控系统,其特征在于:所述JavaScript扩展模块包括数据缓存模块、消息通信模块、视频监控模块和设备控制模块;
所述数据缓存模块,通过消息通信模块与家庭网关网络通信并解析得到环境数据、安防数据、能耗数据以及设备控制命令,环境数据、安防数据、能耗数据以及设备控制命令通过JavaScript传递给平台适配层进行关联数据库存储;
所述消息通信模块使用JavaScript封装消息通信常用的操作接口,调用平台适配层的消息通信模块扩展的方法,与家庭网关进行网络通信,完成设备控制命令的下发和环境数据、安防数据、能耗数据的上传;
所述视频监控模块使用JavaScript封装常用的视频监控操作接口,调用平台适配层的视频监控模块扩展的方法,完成摄像头的操作控制和参数设置;
所述设备控制模块,提取数据缓存模块中的控制命令,并通过消息通信模块将控制命令下发到家庭网关。
3.根据权利要求2所述的基于react-native实现智能家居监控系统,其特征在于:所述对JavaScript扩展模块的Native进行适配包括db缓存文件模块扩展、消息通信模块扩展和视频监控模块扩展;
所述db缓存模块扩展使用原生语言封装数据库常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用;
所述消息通信模块扩展使用原生语言封装UDP常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用;
所述视频监控模块扩展使用原生语言封装视频监控常用的操作接口,并将这些接口导出,供JavaScript层相应的JS方法调用。
CN201710018229.1A 2017-01-11 2017-01-11 基于react‑native实现智能家居监控系统 Pending CN106685726A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710018229.1A CN106685726A (zh) 2017-01-11 2017-01-11 基于react‑native实现智能家居监控系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710018229.1A CN106685726A (zh) 2017-01-11 2017-01-11 基于react‑native实现智能家居监控系统

Publications (1)

Publication Number Publication Date
CN106685726A true CN106685726A (zh) 2017-05-17

Family

ID=58850408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710018229.1A Pending CN106685726A (zh) 2017-01-11 2017-01-11 基于react‑native实现智能家居监控系统

Country Status (1)

Country Link
CN (1) CN106685726A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682238A (zh) * 2017-09-15 2018-02-09 广州神马移动信息科技有限公司 智能家居平台设备及终端电子设备
CN107678741A (zh) * 2017-10-09 2018-02-09 武汉斗鱼网络科技有限公司 列表视图的实现方法、装置、可读存储介质及设备
CN108595160A (zh) * 2018-05-16 2018-09-28 福建天泉教育科技有限公司 Js调用原生对象的方法、存储介质
CN108804573A (zh) * 2018-05-23 2018-11-13 北京五八信息技术有限公司 一种数据库的跨平台处理方法、装置、设备及存储介质
CN109213547A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 ReactNative下拉刷新实现方法、存储介质、电子设备及方法
CN109240697A (zh) * 2017-05-22 2019-01-18 腾讯科技(深圳)有限公司 调用处理方法及装置、存储介质
CN114143032A (zh) * 2021-11-01 2022-03-04 北京银盾泰安网络科技有限公司 一种基于ssh的pc端互访系统及其交互方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573129A (zh) * 2015-11-10 2016-05-11 华南理工大学 基于Cordova的跨平台智能家居移动终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573129A (zh) * 2015-11-10 2016-05-11 华南理工大学 基于Cordova的跨平台智能家居移动终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
付蔚等: "智能家居系统嵌入式家庭服务器设计与实现", 《自动化与仪表》 *
柯兢: "基于JSON-RPC协议的可穿戴设备跨平台开发", 《华南理工大学工程硕士学位论文》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109240697A (zh) * 2017-05-22 2019-01-18 腾讯科技(深圳)有限公司 调用处理方法及装置、存储介质
CN109240697B (zh) * 2017-05-22 2021-02-05 腾讯科技(深圳)有限公司 调用处理方法及装置、存储介质
CN109213547A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 ReactNative下拉刷新实现方法、存储介质、电子设备及方法
CN109213547B (zh) * 2017-07-01 2021-10-15 武汉斗鱼网络科技有限公司 ReactNative下拉刷新实现方法、存储介质、电子设备及方法
CN107682238A (zh) * 2017-09-15 2018-02-09 广州神马移动信息科技有限公司 智能家居平台设备及终端电子设备
CN107678741A (zh) * 2017-10-09 2018-02-09 武汉斗鱼网络科技有限公司 列表视图的实现方法、装置、可读存储介质及设备
CN107678741B (zh) * 2017-10-09 2020-09-08 武汉斗鱼网络科技有限公司 列表视图的实现方法、装置、可读存储介质及设备
CN108595160A (zh) * 2018-05-16 2018-09-28 福建天泉教育科技有限公司 Js调用原生对象的方法、存储介质
CN108804573A (zh) * 2018-05-23 2018-11-13 北京五八信息技术有限公司 一种数据库的跨平台处理方法、装置、设备及存储介质
CN114143032A (zh) * 2021-11-01 2022-03-04 北京银盾泰安网络科技有限公司 一种基于ssh的pc端互访系统及其交互方法
CN114143032B (zh) * 2021-11-01 2023-07-07 北京银盾泰安网络科技有限公司 一种基于ssh的pc端互访系统及其交互方法

Similar Documents

Publication Publication Date Title
CN106685726A (zh) 基于react‑native实现智能家居监控系统
CN101826987B (zh) 一种基于融合开放网络的混合服务支撑系统及方法
US11194999B2 (en) Integrated facial recognition method and system
CN105573129B (zh) 基于Cordova的跨平台智能家居移动终端
CN104636139B (zh) 一种可视化跨平台移动应用开发与生成系统
CN108170740A (zh) 数据迁移方法、系统和计算机可读存储介质
CN106815015B (zh) 一种ios中视图组织方法及系统
CN102902537B (zh) 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架
CN103179133B (zh) 基于实体类的客户端与服务器通信的方法
CN103513976B (zh) 业务流程建模方法及装置
CN110580174B (zh) 应用组件生成方法、服务器及终端
TWI751387B (zh) 軟體定義驅動的ict服務端對端協作系統
CN102693238B (zh) Widget应用方法、系统及多媒体终端
CN105306677A (zh) 智能设备的控制方法、装置及系统
CN106610837A (zh) 一种应用程序的开发方法及开发平台
CN104570980A (zh) 基于b/s架构的数控加工生产线跨平台远程监控系统
CN103607303B (zh) 一种信令流程分析系统和方法
CN101425012A (zh) 基于模型自动化生成用例脚本的方法及装置
CN102999371A (zh) 基于Lua脚本的人机界面开发方法及系统
CN103581295A (zh) 一种基于多业务多网络架构的移动融合客户端系统
CN106603298A (zh) 基于ForCES协议的智能设备控制管理方法
CN109508182A (zh) 快速生成指令的方法、服务器以及计算机存储介质
CN104932330A (zh) 一种安防联动平台
CN113852718A (zh) 语音通道建立方法、装置、电子设备及存储介质
CN103399752A (zh) 基于互联网服务的手机应用连锁反应系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170517