讲给Android程序员看的前端教程(36)——Navigator

自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文视频教程:http://www.stay4it.com/my/course/37

JavaScript客户端领域存的顶层对象Window中有一个属性navigator表示对Navigator对象的引用;该对象包含有关浏览器的信息,比如:名称、浏览器的版本、语言、平台等等。在此,我们通过代码查看与浏览器有关的所有属性及其对应的值。


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>navigatortitle>
head>
<body>
    <script type="text/javascript">
        var nav=window.navigator;
        var result="浏览器信息
"
; for(var propertyName in nav){ result=result+propertyName+":"+window.navigator[propertyName]+"
"
; } document.writeln(result);
script> body> html>

运行后效果图如下所示:

讲给Android程序员看的前端教程(36)——Navigator_第1张图片

哇哈,这么多属性,记不住啊!没事,正常人都记不住的,所以别太在意;熟知几个常用的即可。如果觉得刚才挨个打印属性的方式觉得繁琐的话,你也可以一句话搞定:

console.log(window.navigator);

直接将信息打印至控制台。


Geolocation

在HTML5中新增geolocation属性,利用该属性可以引用Geolocation对象从而实现定位功能。
Geolocation常用方法如下:

  • getCurrentPosition(success, error, options)获取设备当前位置。
    success表示成功得到位置信息时的回调函数,该函数参数为Position对象
    error表示获取位置信息失败时的回调函数,该函数参数为PositionError类型
    options该对象用于设置可选参数;比如:可在该参数中设置超时,缓存等

  • watchPosition(success, error, options)当设备的地理位置发生改变的时候自动调用该方法。该方法的三个参数的含义同getCurrentPosition( )一致,不再赘述。watchPosition( )方法返回一个ID,若需取消监听则可通过 Geolocation.clearWatch( ) 传入该ID实现取消

  • clearWatch(watchID) 终止监听

在了解Geolocation之后,我们就来动手实现定位,请看如下示例:


<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>navigatortitle>
head>
<body>
    <script>
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
    } else {
        alert("您的浏览器不支持地理定位");
    }

    // 获取地理位置成功的回调函数
    function successCallback(position) {
        var longitude = position.coords.longitude;
        var latitude = position.coords.latitude;
        var timestamp= position.timestamp;
        alert("timestamp="+timestamp+",经度=" + longitude + ",纬度=" + latitude);
    }

    // 获取地理位置失败的回调函数
    function errorCallback(error) {
        alert(error.code+" "+ error.message);
    }

    // 额外信息
    var options={
        timeout:2000
    };
    script>
body>
html>

运行后效果图如下所示:

讲给Android程序员看的前端教程(36)——Navigator_第2张图片

在该示例里,我们在定位成功的回调函数中获取了当前的经度、纬度、获取成功时的时间戳。但是请注意,在使用Geolocation之前最好先判断当前设备是否支持定位,毕竟有的浏览器对于HTML5支持得不够好。

你可能感兴趣的:(讲给Android程序员看的前端教程(36)——Navigator)