《PhoneGap移动应用开发手册》——1.6节调整位置传感器更新时间间隔

简介:

本节书摘来自异步社区《PhoneGap移动应用开发手册》一书中的第1章,第1.6节调整位置传感器更新时间间隔,作者 【英】Matt Gifford,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 调整位置传感器更新时间间隔
PhoneGap移动应用开发手册
使用getCurrentPosition方法,可以获取以GPS坐标表示的设备位置。本例中,通过设定的间隔持续获取更新信息,以获取当前位置。

实现步骤
通过传递一个包含多个参数的可选项,设置时间间隔,提高精确度。

(1)创建HTML初始化框架,并添加需求的cordova- 2.0.0.js文件。


3296a5e172779b6adf66791bfc2bca227b43d6df

(4)现在添加onDeviceReady函数执行startWatch方法,代码如下。


91fc73de3ea41eaa12ea432b65c5e27a88819f4c

(5)创建startWatch函数。首先,创建options变量保存传入该函数的可选参数。设置frequency值为5000毫秒(5秒),并将enableHighAccuacy设置为true。

(6)下一步,将watchPosition方法赋给先前定义的变量watchID,此变量用来检查当下位置是否正被监视。

(7)传递已设置的其他参数,将options变量传递给watchPosition方法。


791cc95645fc999af1d1a1ab244df23af0b607d0

(8)初始调用函数创建完成后,现在开始设计在成功回应后执行的onSuccess函数。将返回的position对象作为参数传入该函数。

(9)声明一些变量来保存从响应中获得的详细信息,它们以timestamp、latitude、longitude和accuracy变量的形式出现。同时需要创建一个元素变量,引用用于显示输出信息的geolocation div元素。

(10)通过访问position对象的属性,将返回值赋给相关的变量。

(11)最后,将这些变量设置连接为字符串,并将其设置为div元素中的HTML。


2e01f35ef8fb890b467584e4f3d08a024a467e30

(13)运行程序时,输出效果如图1.8所示。


bd216a627a059f3765c928022510b9ce74091680

实现原理
PhoneGap API中的watchPosition方法以异步函数方式运行,持续检查设备当前位置的变化。一旦检测到设备位置发生变化,将以position对象的形式返回当前地理位置信息。

在持续检测的循环过程中,onSuccess负责处理成功的响应,并将返回值显示到屏幕上。

相关内容
getcurrentPosition和watchPosition函数中有3个可选的参数。

enablehighaccuracy:布尔值变量。决定用户选择的定位精度。默认(false)情况下,使用移动或网元网络获取位置信息。若设置为true,则会使用更加精确的定位方式,如卫星定位。
Timeout:Number类型变量,单位为毫秒,定义获取成功响应的最大等待时间。
MaximunAge:Number类型变量,单位为毫秒,如果缓存的数值小于指定的时间,则使用MaximumAge。

安卓设备中必须将enableHighAccuracy设置为true,才能成功返回位置结果。
清除更新时间间隔
用户可以停止持续的位置请求,或通过程序调用PhongGap API中的clearWatch方法清除更新间隔。清除更新时间间隔、停止检测的方法,与清除通过持续更新获取的加速计数据的方法,完全一样。

相关文章
|
移动开发 JavaScript Android开发
PhoneGap:免费开源的 HTML5 移动应用开发平台
  PhoneGap 是一个免费开源的开发框架,让 Web 开发人员能够使用熟悉的 HTML,CSS 和 JavaScript 构建跨平台的移动本地应用。通过 PhoneGap 框架提供的 JavaScript API 能够以非常简单的方式调用移动设备的核心功能,包括地理位置,摄像头,加速器,通讯录,多媒体,文件和网络等功能。
1391 0
|
开发框架 Dart Android开发
移动应用开发中的创新之路:探索跨平台解决方案
【9月更文挑战第21天】在移动应用的海洋中,开发者们面临着一个不断变化的挑战——如何在多个操作系统上提供无缝的用户体验。本文将探讨跨平台开发的魅力与挑战,并深入分析Flutter框架如何成为现代开发者的利器。我们将通过实际代码示例,揭示Flutter简化开发流程、提高生产效率的秘密。从Dart语言的基础到热重载的便捷性,本文旨在为读者提供一次全面而深刻的跨平台开发之旅。
|
C# Android开发 虚拟化
C# 一分钟浅谈:MAUI 跨平台移动应用开发
.NET MAUI 是 Microsoft 推出的跨平台框架,支持 Windows、macOS、iOS 和 Android。本文从基础概念入手,探讨 MAUI 的常见问题、易错点及解决方案,并通过代码示例详细说明。涵盖平台特定代码、XAML 语法、数据绑定、性能优化和调试技巧等内容,帮助开发者更好地掌握 .NET MAUI。
1292 55
|
开发框架 前端开发 Android开发
移动应用开发中的跨平台策略与实践
【9月更文挑战第34天】本文将深入探讨移动应用开发的跨平台策略,包括对React Native、Flutter和Xamarin等流行框架的比较。文章还将分享一些实用的跨平台开发技巧和最佳实践,帮助开发者在多个平台上高效地构建和维护应用。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和指导。
|
开发框架 数据安全/隐私保护 开发者
Flutter 是一款强大的跨平台移动应用开发框架,本文深入探讨了其布局与样式设计
Flutter 是一款强大的跨平台移动应用开发框架,本文深入探讨了其布局与样式设计,涵盖布局基础、常用组件、样式设计、实战应用、响应式布局及性能优化等方面,助力开发者打造精美用户界面。
385 7
|
开发框架 Dart 前端开发
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。本文从 Flutter 简介、特点、开发环境搭建、应用架构、组件详解、路由管理、状态管理、与原生代码交互、性能优化、应用发布与部署及未来趋势等方面,全面解析 Flutter 技术,助你掌握这一前沿开发工具。
1188 8
|
前端开发 Android开发 开发者
移动应用开发的未来:探索跨平台解决方案##
在移动开发的海洋中,跨平台框架如同一艘能够穿梭于iOS和Android两大操作系统之间的航船。本文将探讨这艘航船的构造—从它的起源、它的引擎(技术架构),到它能抵达的岸边(应用场景)。我们将启航,一探究竟如何在波涛汹涌的市场中找到自己的航线。 ##
201 3