复制一份JSSDK环境,创建一份index.html文件,结构如图7.1所示。

图7.1  7.1节文件结构

在location.js中,封装“getLocation”接口,如下:

01	wxJSSDK.location = function(locationApi){
02	    if(wxJSSDK.isReady){	//wxJSSDK.isReady 查看微信JSSDK是否初始化完毕
03	        if(locationApi){
04	            locationApi.getLocation && wx.getLocation({		//获取地理位置接口
05	                success: function (res) {
06	                    locationApi.getLocation.success &&
07	locationApi.getLocation.success(res);
08	                }
09	            });
10	        }else{
11	            console.log("缺少配置参数");
12	        }
13	    }else{
14	        console.log("抱歉,wx没有初始化完毕,请等待wx初始化完毕,再调用位置接口服
15	务。");
16	    }
17	}

  在index.html文件中,增加“获取地理位置”按钮,以及显示获取之后的位置信息,代码结构,如下:

01      <!DOCTYPE html>
02      <html lang="en">
03      <head>
04               <metacharset="UTF-8">
05         <meta name="viewport" content="width=device-width,initial-scale=1.0,
06      minimum-scale=1, maximum-scale=1.0,user-scalable=no">
07         <title>第7章 7.1节 位置操作接口</title>
08         <!--依赖文件:jQuery-->
09         <script src="./js/jquery-1.11.2.min.js"></script>
10         <!--依赖文件:微信的JSSDK源文件-->
11         <scriptsrc="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
12         <!--依赖文件:coolie-->
13         <script src="./js/cookie.js"></script>
14         <!--JSSDK的环境-->
15         <script src="./js/wxJSSDK.js"></script>
16         <!--引入检测API的位置服务-->
17         <script src="location.js"></script>
18         <style>
19             input{
20                 width: 100%;
21                 padding: 0.2em;
22                 background-color: #5eb95e;
23                 font-size: 1.4em;
24                 background-image: linear-gradient(to bottom, #62c462, #57a957);
25                 background-repeat: repeat-x;
26                 color: #ffffff;
27                 text-align: center;
28                 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
29                 border-radius: 0.3em;
30             }
31             #info{
32                 border-left: 3px solid#03a9f4;
33                 background-color: #5eb95e;
34                 color: #ffffff;
35                 border-radius: 0.3em;
36                 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
37             }
38         </style>
39      </head>
40      <body>
41         <h1 style="font-size: 8em">:)</h1>
42         <b style="font-size: 3em">位置操作接口!</b><br/><br />
43         <div id="info">
44             <p>纬度:<em id="latitude">无</em></p>
45             <p>经度:<em id="longitude">无</em></p>
46             <p>速度:<em id="speed">无</em></p>
47             <p>位置精度:<em id="accuracy">无</em></p>
48         </div>
49         <input type="button" value="获取当前地理位置信息" id="getLocation" />
50      </body>
51      </html>

  

然后在location.js中增加响应事件,代码如下:

01	window.onload = function(){
02	    var latitude,longitude, speed ,accuracy; 		// 位置信息初始变量
03	    $("#getLocation").click(function(){			// 获取地理位置接口
04	        wxJSSDK.location({
05	            getLocation:{
06	                success:function (res) {
07	                    latitude = res.latitude; 		// 纬度,浮点数,范围为90 ~ -90
08	                    $("#latitude").html(latitude);
09	                    longitude = res.longitude; 	// 经度,浮点数,范围为180 ~ -180。
10	                    $("#longitude").html(longitude);
11	                    speed = res.speed; 		// 速度,以米/每秒计
12	                    $("#speed").html(speed);
13	                    accuracy = res.accuracy; 	// 位置精度
14	                    $("#accuracy").html(accuracy);
15	                }
16	            }
17	        });
18    	});
19	}

  

最后记得在JSSDK的配置环境中加入“getLocation”API的权限。

【代码解释】

“getLocation”的位置成功后,会返回“纬度”、“经度”、“速度”、“位置精度”的相关信息。当点击“获取位置”的按钮之后,微信会弹出提示信息,如图7.2所示。获取位置服务成功之后的结果如图7.3所示。

图7.2 微信JSSDK获取位置信息提示

图7.3  获取位置服务成功的信息

《微信公众平台网页开发实战——HTML5+JSSDK混合开发解密》

欢迎一起交流本书

微信公众平台网页开发实战--3.利用JSSDK在网页中获取地理位置(HTML5+jQuery)的更多相关文章

  1. 【课程分享】ASP.NET MVC5&amp;微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发)

    对这个课程有兴趣的,能够联系我QQ2748165793 基础知识储备 ASP.NET MVC 5基础(6讲) 第一讲-初识ASP.NET MVC并搭建整合开发环境 第二讲-深入MVC开发模式 第三讲- ...

  2. 微信公众平台应用开发:方法、技巧与案例--柳峰,Java语言版本

    他本人的博客:http://blog.csdn.net/lyq8479 作者简介: 刘运强,网名“柳峰”,资深微信公众平台应用开发工程师,国内微信公众平台应用开发的先驱之一,项目经验丰富.他还是一位资 ...

  3. 基于微信公众平台的开发(清华大学第二讲)_Alien的笔记

    基于微信公众平台的开发(清华大学第二讲)_Alien的笔记 基于微信公众平台的开发(清华大学第二讲)

  4. 微信公众平台PHP开发

    p=932" style="color: rgb(255, 153, 0); text-decoration: none;">微信公众平台PHP开发 2013.05 ...

  5. 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

    本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...

  6. 用node.js进行微信公众平台的开发

    基本原理 用nodejs怎样来实现对微信公众平台的开发呢? 别的就不多说了,先来简单介绍微信公众平台的基本原理. 微信服务器就相当于一个转发服务器,终端(手机.Pad等)发起请求至微信服务器,微信服务 ...

  7. C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取

    一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...

  8. 微信公众平台java开发详解(工程代码+解析)

    原文:http://blog.csdn.net/pamchen/article/details/38718947 说明:本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初 ...

  9. 微信公众平台java开发具体解释(project代码+解析)

    说明: 本次的教程主要是对微信公众平台开发人员模式的解说,网络上非常多类似文章,但非常多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行解说分 ...

随机推荐

  1. Code Page Identifiers - Copy from Microsoft

    Code Page Identifiers 78 out of 94 rated this helpful - Rate this topic   The following table define ...

  2. 2.XML实体注入漏洞攻与防

    XML实体注入基础 当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件.执行系统命令.探测内网端口.攻击内网网站等危害. 简单了解XML以后,我们知道要在XML中使用特殊字符,需要使用实体字符 ...

  3. 网页编程技术与实例 PDF扫描版

    本书主要包括:Web的概念,使用网页编辑工具制作网页,HTML语言的基本结构,JavaScrip和VBScript脚本语言的编程方法,ASP的概念,ASP对象的属性.方法和事件,SQL语言,数据库建议 ...

  4. Unity中限制轴向移动范围Mathf.Clamp

    Mathf.Clamp   在游戏中,为了限制玩家的某一轴向的移动不超过一定的范围,可以用Mathf.Clamp来解决 Mathf.Clamp(float value,float min,float ...

  5. [WIP]Vue 基础

    创建: 2019/05/30 https://cn.vuejs.org/v2/guide/  安装 初期选择直接嵌入 <!-- 开发环境版本,包含了有帮助的命令行警告 --> <sc ...

  6. Yahoo Progamming Contest 2019D(DP,思维)

    #include<bits/stdc++.h>using namespace std;long long n,v,a,b,c,d,e;int main(){    scanf(" ...

  7. 《OD大数据实战》Spark入门实例

    一.环境搭建 1. 编译spark 1.3.0 1)安装apache-maven-3.0.5 2)下载并解压 spark-1.3.0.tgz 3)修改make-distribution.sh  VER ...

  8. 三层登录——VB.NET版

    前言 由于下面的机房收费系统重构自己要用VB.NET进行重构,所以在敲三层登录的时候,实践了一份C#版三层登录,接着就是VB.NET版的三层登录.话说还有七层登录,一下子感觉三层又矮小了.万丈高楼平地 ...

  9. 洛谷P1083 借教室

    P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...

  10. Mysql-15-mysql分布式应用

    1.分布式应用的概念和优势 分布式数据库是指利用高速网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库.分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的 ...