调用微信JsAPI端获取位置
public partial class test : BasePage
{
protected test()
{
AccessPage = PageWebType.WX;
} protected string app_Id
{
get { return ViewState["app_Id"].ToString(); }
set { ViewState["app_Id"] = value; }
} protected string timestamp
{
get { return ViewState["timestamp"].ToString(); }
set { ViewState["timestamp"] = value; }
} protected string nonceStr
{
get { return ViewState["nonceStr"].ToString(); }
set { ViewState["nonceStr"] = value; }
} protected string signature
{
get { return ViewState["signature"].ToString(); }
set { ViewState["signature"] = value; }
} protected string ticket
{
get { return ViewState["ticket"].ToString(); }
set { ViewState["ticket"] = value; }
} protected string open_id
{
get { return ViewState["open_id"].ToString(); }
set { ViewState["open_id"] = value; }
} protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitData(); lblInfo.Text = GetPointDistance(22.724623, 113.31403, 22.72464, 113.31404).ToString();
}
} private void InitData()
{
//绑定js接口调用参数
var url = System.Configuration.ConfigurationManager.AppSettings["RootUrl"].ToString();
if (url.Length > )
{
var query = Request.Url.Query;
var strUrl = url + "/app/css/test.aspx" + query;
JsSignatureModel jsModel = new JsAPIOprate().GetJsApiSignature(CssUnionID, strUrl);
if (jsModel != null)
{
app_Id = jsModel.app_id;
signature = jsModel.signature;
nonceStr = jsModel.noncestr;
timestamp = jsModel.timestamp;
ticket = jsModel.ticket;
}
}
open_id = GetQueryString("open_id");
hideOpen_id.Value = open_id;
} private const double EARTH_RADIUS = 6378.137;//地球半径
private static double Rad(double d)
{
return d * Math.PI / 180.0;
}
/// <summary>
/// 返回两经纬度距离(千米)
/// </summary>
/// <param name="lat1">纬度1</param>
/// <param name="lng1">经度1</param>
/// <param name="lat2">纬度2</param>
/// <param name="lng2">经度2</param>
/// <returns></returns>
private double GetPointDistance(double lat1, double lng1, double lat2, double lng2)
{
double radLat1 = Rad(lat1);
double radLat2 = Rad(lat2);
double a = radLat1 - radLat2;
double b = Rad(lng1) - Rad(lng2); double s = * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / ), ) +
Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / ), )));
s = s * EARTH_RADIUS;
s = Math.Round(s * ) / ;
return s;
}
}
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<script type="text/javascript" src="../../js/jquery.1.11.1.min.js"></script>
<script type="text/javascript" src="../../js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
$(function () {
wx.config({
debug: false,
appId: '<%=app_Id%>',
timestamp: <%=timestamp%>,
nonceStr: '<%=nonceStr%>',
signature: '<%=signature%>',
jsApiList: [
'checkJsApi',
'getLocation'
]
});
wx.ready(function () {
var isCheck=false;
wx.checkJsApi({
jsApiList: [
'checkJsApi',
'getLocation'
],
success: function (res) {
//alert(JSON.stringify(res));
isCheck=res.checkResult.getLocation;
}
});
document.querySelector('#btnLocation').onclick = function () {
if(!isCheck){
msgtip("您的微信版本不支持获取位置!");
return;
}
wx.getLocation({
success: function (res) {
alert(JSON.stringify(res));
},
cancel: function (res) {
alert('发生错误');
}
});
};
});
wx.error(function (res) {
alert(res.errMsg);
}); }); </script>
</head>
<body>
<form id="form1" runat="server">
<header class="ui-header ui-header-positive ui-border-b">
<i class="ui-icon-return" onclick="history.back()"></i><h1>获取地址位置</h1><a href="Default.aspx?open_id=" class="sp-back sp-home"></a>
</header>
<div class="panel-body" style="margin-top:45px;">
<input type="button" id="btnLocation" value="取得位置" />
<asp:Literal ID="lblInfo" runat="server"></asp:Literal>
</div>
<div class="ui-poptips ui-poptips-warn" id="divInfo" style="display:none;">
<div class="ui-poptips-cnt"><i></i><span id="spntool"></span></div><input type="hidden" id="hideCard_no" />
</div><div id="datePlugin"></div><asp:HiddenField ID="hideOpen_id" runat="server" />
</form>
</body>
</html>
调用微信JsAPI端获取位置的更多相关文章
- 微信开发者工具获取位置错误(定位到北京)---调用wx.getLocation不出现获取定位提示
微信开发者工具获取不到自己当前的位置可能是以下几个原因: 1.调用wx.getLocation方法之后需要在app.json中声明permission字段 { "pages": [ ...
- .net Core 调用微信Jsapi接口,H5解析二维码
项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好 ...
- 微信公众平台开发——为何不能在网页调用微信jsapi?
说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的. 首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( ...
- 微信小程序 获取位置、移动选点、逆地址解析
WGS- 地心坐标系,即GPS原始坐标体系.在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密.GoogleEarth及GPS芯片使用. .GCJ-02火星坐标系,国测局02年发布的坐标体 ...
- [小程序]微信小程序获取位置展示地图并标注信息
1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...
- 微信小程序获取位置
获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const ...
- 微信小程序~获取位置信息
微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息 (注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位 & ...
- #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据
上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...
- .Net微信网页开发之JSSDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取讲解
前言: 因为接下来会有几篇关于微信JS-SDK功能使用的文章,主要会对微信分享,获取设备信息,获取地理位置,微信扫一扫这几个功能进行讲解.而这几个功能都是围绕着微信JS-SDK实现的,首先使用微信JS ...
随机推荐
- Linux (Centos)操作MySql命令
1.安装MySql服务端命令: yum install mysql-server yum install mysql-devel 2.安装MySql客户端 yum install mysql 3.启动 ...
- PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌
-自测1. 打印沙漏() 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号 ...
- CAS学习笔记(一)
近期做单点登录,看了一些CAS资料,做下总结 一.cas简介 全名:Central Authentication Service 特点: 1.开源的.多协议的 SSO 解决方案: Protocols ...
- activiti 里面各个方法理解
/** Return the intent that started this activity. */public Intent getIntent() { return mIntent;} pub ...
- DataList删除操作
<asp:DataList ID="fileList" runat="server" RepeatColumns="1" Repeat ...
- HBase完全分布模式安装
假设Hadoop已经成功安装. 实验环境如下: centos 6.4 hadoop-0.20.2 hbase-0.90.5 用户名root hadoop安装目录:/root/bin/had ...
- 如何运用TurboDemo创建视频示例
TurboDemo不仅可以速抓取屏幕截图,而且可高效制作出时尚美观的介绍.演示动画.软件模拟以及使用说明.下面的例子将会告诉使用者们如何分步创建一个视频示例,帮助使用者们快速的上手: 1.开启Turb ...
- html布局小练习(百度首页)
绝对定位百度首页练习 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- 开源监控利器grafana
前言: 做运维的很重要的基础工作就是监控,之前都是统计数据入库,然后前端js图表插件出图,费时费力,可定制性差 前几天接触到了ELK(logstash, elasticsearch, kibana)这 ...
- tinyshop框架教程已在腾讯课堂开课
php就业网简介:www.php91.net,专注于Thinkphp框架教程的php框架学习中心.同时也有小崔老师自学php的教程,与你一起成长哦 同时,php就业网教程部分:http://www.p ...