CN107347179A - 一种基于ReactNative实现LBS的方法 - Google Patents
一种基于ReactNative实现LBS的方法 Download PDFInfo
- Publication number
- CN107347179A CN107347179A CN201710723909.3A CN201710723909A CN107347179A CN 107347179 A CN107347179 A CN 107347179A CN 201710723909 A CN201710723909 A CN 201710723909A CN 107347179 A CN107347179 A CN 107347179A
- Authority
- CN
- China
- Prior art keywords
- web pages
- react native
- lbs
- react
- native
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
Abstract
本发明涉及一种基于React Native实现LBS的方法,属于移动App开发技术领域;为了解决跨手机平台的位置服务的技术问题;具体步骤包括:开发者在React Native页面中引入兼容Android和IOS的封装后的网页组件,在React Native网页组件中编写脚本程序,脚本程序调用第三方平台API,第三方平台API访问终端设备的GPS,获取终端设备所在地的经纬度,实现终端设备定位,第三方平台API渲染以定位点为中心的区域地图,建立React Native与网页组件双向通讯,实现LBS定位功能;本方法在React Native框架兼容Android和iOS平台的良好特性下,使用其提供的网页组件<WebView>实现LBS功能,体现出其在项目实践中开发成本小、开发周期短、跨平台、便于维护等优点。
Description
技术领域
本发明涉及一种基于React Native实现LBS的方法,属于移动App开发技术领域。
背景技术
目前,很多社交、生活服务类的移动端App(应用程序)都使用了LBS(Location-Based Service,地理位置服务)。通过借助第三方平台,例如百度地图、高德地图、腾讯地图等,开发者可以有效调用其丰富的API(应用程序编程接口),例如JavaScript API、URI API等,实现个性化服务。
通常情况下,开发一款移动应用要面向Android和iOS系统,也就是主流的安卓手机和苹果手机。软件公司需要配置专门的针对不同平台的开发人员,因为两者的开发环境、开发语言、开发工具等差异迥然。具体而言,Android系统一般在Windows操作系统下,使用Android Studio(或Eclipse)开发工具,用Java语言编程;iOS系统一般在Mac OS(X)操作系统,使用Xcode开发工具,用Objective-C(或Swift)语言编程。所以,平台的差异意味着开发人员需要具备不同的开发技能,软件公司一般也要配置Android和iOS开发人员。每当应用中增加一个功能或解决一处公共的bug,那么就要同时开发或维护。
如果开发一款同时面向Android和iOS的位置服务应用,开发人员还需要针对不同平台分别下载SDK,在工程项目中配置环境,调用API实现位置服务功能。由于SDK的封装及调用所使用的语言不同,所以开发周期也相对较长。
发明内容
本发明为了解决跨手机平台的位置服务的技术问题,提供了一种基于ReactNative实现LBS的方法。
本发明技术方案如下:
一种基于React Native实现LBS的方法,具体步骤包括:
步骤a、开发者在React Native页面中引入兼容Android和IOS的封装后的网页组件;
步骤b、在React Native网页组件中编写脚本程序,脚本程序调用第三方平台API,第三方平台API访问终端设备的GPS,获取终端设备所在地的经纬度,实现终端设备定位,第三方平台API渲染以定位点为中心的区域地图;
步骤c、建立React Native与网页组件双向通讯,实现LBS定位功能;
(1)React Native调用后台数据库获取信息数据,并将信息数据传递至网页组件;
(2)网页组件通过脚本程序调用第三方平台API,脚本程序将得到的信息数据绘制成用户所用的坐标点图标以及信息窗口内容;
(3)用户点击坐标点图标后,网页页面会弹出信息窗口,选择从网页组件返回React Native,实现LBS定位。
本发明的有益效果:该方法在React Native框架兼容Android和iOS平台的良好特性下,使用其提供的网页组件<WebView>实现LBS功能,体现出其在项目实践中开发成本小、开发周期短、跨平台、便于维护等优点。
附图说明
图1为本发明一种基于React Native实现LBS的方法的示意图。
具体实施方式
下面结合附图对本发明作进一步阐述。
如图1所示,一种基于React Native实现LBS的方法,具体是一种通过Facebook公司开源的移动端JavaScript框架React Native实现跨手机平台的位置服务的方法,ReactNative可以快速部署和开发跨平台App,与原生开发所用地图SDK不同,React Native在页面中直接引用网页组件<WebView>,该网页组件<WebView>加载网页,起到类似浏览器的作用,调用第三方平台API(本文以百度地图为例),通过脚本程序渲染页面内容,完成地图渲染、地理定位,以及交互行为,从而实现LBS功能,并且使LBS在React Native框架下可以敏捷开发和扩展。
具体步骤包括:
步骤a、开发者在React Native页面中引入了很多常用的兼容Android和iOS的封装组件,例如视图组件<View>、文本组件<Text>、图片组件<Image>等,这些组件在每个平台的显示遵循对应的原生风格,并在很大程度上做到了代码重用,即同一份代码只需要稍作修改,就可以在不同平台渲染相同的视图。
其中,开发者在React Native页面中引入网页组件<WebView>。React Native的网页组件<WebView>是兼容Android和iOS的封装后的网页组件,可以加载HTML、CSS、JavaScript,能够像浏览器一样加载网页,开发者在网页中渲染地图,并尝试开发更丰富的位置服务功能。
步骤b、网页组件<WebView>调用百度地图JavaScript API渲染内容。在ReactNative网页组件<WebView>中编写脚本程序JavaScript代码,脚本程序调用第三方平台百度地图JavaScript API,第三方平台百度地图JavaScript API访问终端设备的GPS,获取终端设备所在地的经纬度,从而实现终端设备定位,第三方平台百度地图JavaScript API渲染以定位点为中心的区域地图(也可以根据需求渲染目标区域及缩放级别)。
JavaScript API目前的版本是2.0,开发者需要以个人开发者身份或者企业用户身份申请密钥,方可使用。两者在服务、并发调用等服务条款有不同的标准,视开发需求而异。申请密钥后,直接在网页的头部引用库文件,并在连接地址中添加密钥参数,即可使用。
步骤c、建立React Native与网页组件<WebView>双向通讯,实现LBS定位。
这一步是实现LBS功能的关键,因为虽然有了地图定位,但应用却没有给用户带来实质性的服务功能,因此在React Native与网页组件<WebView>间需要建立通讯机制,通过交互行为,增强服务体验。通讯机制的建立分为以下三步:
(1)React Native调用后台数据库获取餐饮、银行或定制化的显示信息数据(例如坐标点经纬度、名称、图片或其它字段),并以发送数据方法postMessage()将信息数据传递至网页组件<WebView>。
(2)网页组件<WebView>通过脚本程序调用第三方平台百度地图JavaScript API,脚本程序将得到的信息数据绘制成用户所用的坐标点图标以及信息窗口内容。
(3)用户点击坐标点图标后,网页页面会弹出信息窗口,选择点击“导航”或者“详细”按键触发事件,该操作指令从网页组件<WebView>返回给React Native端。ReactNative端调用获取数据方法onMessage()接收操作指令,跳转到导航页面或详情页面,从而实现LBS定位。
需要注意的是,React Native版本<0.37(截至撰文为止,React Native的最新版本为0.42),需要引用第三方开源组件react-native-webview-bridge,因为在RN早先版本,官方并没有提供网页组件<WebView>的通讯方法。<WebViewBridge>组件实际上是对网页组件<WebView>的再次封装,增加了传递信息的方法。React Native>=0.37,即在0.37版本中Facebook的React Native团队对<WebView>增加了通讯方法,即从RN传递到网页组件<WebView>信息的postMessage()方法,RN接收网页组件<WebView>信息的onMessage()方法,所以使用该范围的RN版本创建项目时无需再引用react-native-webview-bridge组件了。
Claims (1)
1.一种基于React Native实现LBS的方法,其特征在于,具体步骤包括:
步骤a、开发者在React Native页面中引入兼容Android和IOS的封装后的网页组件;
步骤b、在React Native网页组件中编写脚本程序,脚本程序调用第三方平台API,第三方平台API访问终端设备的GPS,获取终端设备所在地的经纬度,实现终端设备定位,第三方平台API渲染以定位点为中心的区域地图;
步骤c、建立React Native与网页组件双向通讯,实现LBS定位功能;
(1)React Native调用后台数据库获取信息数据,并将信息数据传递至网页组件;
(2)网页组件通过脚本程序调用第三方平台API,脚本程序将得到的信息数据绘制成用户所用的坐标点图标以及信息窗口内容;
(3)用户点击坐标点图标后,网页页面会弹出信息窗口,选择从网页组件返回ReactNative,实现LBS定位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189959 | 2017-03-28 | ||
CN2017101899598 | 2017-03-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107347179A true CN107347179A (zh) | 2017-11-14 |
Family
ID=60257275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710723909.3A Pending CN107347179A (zh) | 2017-03-28 | 2017-08-22 | 一种基于ReactNative实现LBS的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107347179A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019214539A1 (zh) * | 2018-05-08 | 2019-11-14 | 阿里巴巴集团控股有限公司 | 一种文档展示方法和装置 |
CN111045758A (zh) * | 2018-10-12 | 2020-04-21 | 北京密境和风科技有限公司 | 视图处理方法、装置、电子设备及计算机存储介质 |
CN113793072A (zh) * | 2021-10-22 | 2021-12-14 | 北京理工新源信息科技有限公司 | 一种基于移动端疫情防控监测信息综合管理系统 |
CN114071356A (zh) * | 2021-12-01 | 2022-02-18 | 西安中诺通讯有限公司 | 一种终端定位服务的业务管理方法、装置及终端 |
CN114356452A (zh) * | 2021-12-31 | 2022-04-15 | 必要鸿源(北京)科技有限公司 | 定位结果信息的获取方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012133898A1 (ja) * | 2011-03-31 | 2012-10-04 | 学校法人埼玉医科大学 | 未変性Cochlin-tomoprotein(CTP)に反応する抗体及びそれを用いたCTPの測定方法 |
EP2571899A1 (en) * | 2010-05-18 | 2013-03-27 | Syddansk Universitet | Novel c3c epitope, antibodies binding thereto, and use thereof |
CN106354832A (zh) * | 2016-08-31 | 2017-01-25 | 广州品唯软件有限公司 | 一种数据发布方法、设备及系统 |
CN106371874A (zh) * | 2016-08-31 | 2017-02-01 | 广州品唯软件有限公司 | 一种插件数据加载方法及设备 |
-
2017
- 2017-08-22 CN CN201710723909.3A patent/CN107347179A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2571899A1 (en) * | 2010-05-18 | 2013-03-27 | Syddansk Universitet | Novel c3c epitope, antibodies binding thereto, and use thereof |
WO2012133898A1 (ja) * | 2011-03-31 | 2012-10-04 | 学校法人埼玉医科大学 | 未変性Cochlin-tomoprotein(CTP)に反応する抗体及びそれを用いたCTPの測定方法 |
CN106354832A (zh) * | 2016-08-31 | 2017-01-25 | 广州品唯软件有限公司 | 一种数据发布方法、设备及系统 |
CN106371874A (zh) * | 2016-08-31 | 2017-02-01 | 广州品唯软件有限公司 | 一种插件数据加载方法及设备 |
Non-Patent Citations (1)
Title |
---|
王中生,韩康: "基于物联网的智能停车系统研究设计", 《微型机与应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019214539A1 (zh) * | 2018-05-08 | 2019-11-14 | 阿里巴巴集团控股有限公司 | 一种文档展示方法和装置 |
CN110457656A (zh) * | 2018-05-08 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 一种文档展示方法和装置 |
CN110457656B (zh) * | 2018-05-08 | 2022-05-24 | 阿里巴巴集团控股有限公司 | 一种文档展示方法、装置和机器可读介质 |
CN111045758A (zh) * | 2018-10-12 | 2020-04-21 | 北京密境和风科技有限公司 | 视图处理方法、装置、电子设备及计算机存储介质 |
CN113793072A (zh) * | 2021-10-22 | 2021-12-14 | 北京理工新源信息科技有限公司 | 一种基于移动端疫情防控监测信息综合管理系统 |
CN113793072B (zh) * | 2021-10-22 | 2024-03-22 | 北京理工新源信息科技有限公司 | 一种基于移动端疫情防控监测信息综合管理系统 |
CN114071356A (zh) * | 2021-12-01 | 2022-02-18 | 西安中诺通讯有限公司 | 一种终端定位服务的业务管理方法、装置及终端 |
CN114071356B (zh) * | 2021-12-01 | 2023-12-19 | 西安中诺通讯有限公司 | 一种终端定位服务的业务管理方法、装置及终端 |
CN114356452A (zh) * | 2021-12-31 | 2022-04-15 | 必要鸿源(北京)科技有限公司 | 定位结果信息的获取方法、装置、电子设备及存储介质 |
CN114356452B (zh) * | 2021-12-31 | 2024-03-19 | 必要鸿源(北京)科技有限公司 | 定位结果信息的获取方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107347179A (zh) | 一种基于ReactNative实现LBS的方法 | |
CN106569794B (zh) | 应用程序开发装置 | |
CN103049320B (zh) | 在浏览器中启动外部应用程序的方法和装置 | |
CN105955744A (zh) | 一种移动跨平台开发系统及方法 | |
CN104580499A (zh) | 用于精准标注位置的方法和设备 | |
CN110874217B (zh) | 快应用的界面显示方法、装置及存储介质 | |
KR101892702B1 (ko) | 멀티 플랫폼을 지원하는 앱 저작 서버, 장치 및 방법 | |
CN106970946A (zh) | 一种页面显示方法及装置 | |
JP2022505656A (ja) | サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム | |
CN106775862A (zh) | 应用加载方法及装置 | |
CN107704499A (zh) | 一种应用程序的页面跳转控制方法及装置 | |
CN110851240B (zh) | 功能调用方法、装置及存储介质 | |
CN114168460A (zh) | 混合开发中前端代码的远程调试方法、设备及存储介质 | |
CN110865863B (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN109445770B (zh) | 一种错误码的处理方法、装置、介质及设备 | |
CN107895120B (zh) | 跨平台应用中数据处理方法、装置、电子设备和存储介质 | |
KR20180027023A (ko) | 앱 개발을 위한 통합 개발 환경을 제공하는 앱 저작 장치 및 방법 | |
KR101937485B1 (ko) | 하이브리드 앱 개발 플랫폼 및 이를 이용한 개발방법 | |
KR20130014203A (ko) | 스마트 기기에서의 다중 운영체제 플랫폼 | |
CN105978958A (zh) | 用于精准标注位置的方法和设备 | |
CN110865864A (zh) | 快应用的界面显示方法、装置、设备及存储介质 | |
CN113050936B (zh) | 基于集成开发环境的前端数据处理方法及装置 | |
TWI641984B (zh) | 供終端裝置與網站互動的方法、提供網路服務予終端裝置的方法以及供終端裝置與網站互動的計算機程式產品 | |
CN111338961B (zh) | 应用调试方法及装置、电子设备及存储介质 | |
KR102173840B1 (ko) | 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171114 |
|
WD01 | Invention patent application deemed withdrawn after publication |