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端获取位置的更多相关文章

  1. 微信开发者工具获取位置错误(定位到北京)---调用wx.getLocation不出现获取定位提示

    微信开发者工具获取不到自己当前的位置可能是以下几个原因: 1.调用wx.getLocation方法之后需要在app.json中声明permission字段 { "pages": [ ...

  2. .net Core 调用微信Jsapi接口,H5解析二维码

    项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好 ...

  3. 微信公众平台开发——为何不能在网页调用微信jsapi?

    说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的. 首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( ...

  4. 微信小程序 获取位置、移动选点、逆地址解析

    WGS- 地心坐标系,即GPS原始坐标体系.在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密.GoogleEarth及GPS芯片使用. .GCJ-02火星坐标系,国测局02年发布的坐标体 ...

  5. [小程序]微信小程序获取位置展示地图并标注信息

    1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...

  6. 微信小程序获取位置

    获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const ...

  7. 微信小程序~获取位置信息

    微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息 (注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位 & ...

  8. #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据

    上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...

  9. .Net微信网页开发之JSSDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取讲解

    前言: 因为接下来会有几篇关于微信JS-SDK功能使用的文章,主要会对微信分享,获取设备信息,获取地理位置,微信扫一扫这几个功能进行讲解.而这几个功能都是围绕着微信JS-SDK实现的,首先使用微信JS ...

随机推荐

  1. Java类WebServer及中间件拿webshell方法总结

    0.序 原文名称:Tomcat.Weblogic.JBoss.GlassFish.Resin.Websphere弱口令及拿webshell方法总结 原文from:http://www.hack80.c ...

  2. ios下fixed回复框bug的解决方案

    前几天做一个移动端的页面,要加个像微信那样附着在底部的回复框,按照做PC端网页的思路,首先是用fixed,在安卓上测了一下是好的,结果到朋友的iphone6p上就不行了,点击输入框之后它总会跳到屏幕中 ...

  3. C语言回顾-字符串指针

    1.字符串指针 char *变量名="字符串内容"; char ch='b'; char *p1=&ch; char *str="C Language" ...

  4. Recover lost Confluence password

    confluence重置admin密码 复方法: 1. 运行此sql 找到你的管理员帐户: select u.id, u.user_name, u.active from cwd_user u joi ...

  5. anagularJs指令的controller,link,compile有什么不同

    /directives.js增加exampleDirective phonecatDirectives.directive('exampleDirective', function() { retur ...

  6. C#开发Windows服务 入门

    Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序. 服务可以在计算机启动时自动启动,可以暂停和重新启动而且 ...

  7. 用Paint Tool SAI绘制漫画

    漫画绘图软件 Paint Tool SAI是一个来自日本的小巧的漫画辅助绘图软件,只有11M大小. 这个没有任何现成的模板和组件,只能自己一笔一笔的话,画笔.图层等功能与Photoshop类似,但没有 ...

  8. 响应式编程 Part.01 (Layout and MVVM)

    内部技术交流会PPT Keywords Less Requirejs Mvvm Bootstrap kendo 下载完整PPT

  9. Android EditText中插入话题模块的删除处理方法

    在 EditText 中添加话题 或者是 @某人 时 看起来挺简单,实际操作会有很多坑爹的问题 private String mTopic: //光标保持在话题的末尾 mInputEdit.setOn ...

  10. win7下matlab2016a配置libsvm

    1.下载libsvm https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.解压到matlab2016a的安装目录的toolbox下 例如我的D:\Program ...