调用微信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 > 0)
            {
                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 = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) +
             Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2)));
            s = s * EARTH_RADIUS;
            s = Math.Round(s * 10000) / 10000;
            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>
时间: 2024-08-25 20:25:58

调用微信JsAPI端获取位置的相关文章

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

项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好.但是调试接口超级麻烦. 具体实现:前端代码(vue)(前端用到 vux) <template> <div class="main"> <group title="打印机参数" label-width="5.5em"&g

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

说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的. 首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( 主要是JavaScript)对不同域名的服务器接口进行跨站调用.一般,只要网站的 协议名protocol(HTTP.ftp等). 主机host. 端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域. 既然是说公众号开发的事,要想在前端调用jssdk,先要通过config接口注

使用微信jsapi时获取jsapi_ticket失败问题

问题描述 系统上线之后运行良好,昨天下午开始突然报 "微信jsapi初始化失败"的错误提示 排查 1.开启使用了jsapi的页面的wx.config的debug,提示signature签名错误 2.既然签名错误就一步步打印获取这个数据的步骤上的中间数据,看是哪个错了 3.结果是用php curl模拟get  https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsap

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

WGS-84 地心坐标系,即GPS原始坐标体系.在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密.GoogleEarth及GPS芯片使用. 1.GCJ-02火星坐标系,国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差.高德.腾讯.Google中国地图使用.国内最广泛使用的坐标体系: 2.其他坐标体系:一般都是由GCJ-02进过偏移算法得到的.这种体系就根据每个公司的不同,坐标体系都不一样了.比如,百度的BD-09坐标.搜狗坐标等 本回答由网友推荐 wxm

微信小程序获取位置

获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const longitude = res.longitude const speed = res.speed const accuracy = res.accuracy } }) wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 打开地图 wx.getLocat

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

微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息 (注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位 <map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location style="width: 100%;

asp.net mvc内微信pc端、H5、JsApi支付方式总结

转自:http://www.80cxy.com/Blog/ArticleView?arId=201912122203555530g0wwI8 本文提供技术支持QQ:806693619   V:kwstugdb 微信提供了各种支付方式,有针对手机APP开发的支付方式,有针对pc web端的,手机端的等,pc端支付使用场景是在pc端完整内使用的支付方式,JsApi只能在微信内被调用,H5不限于微信内使用,手机端浏览器内也可以使用,个人理解的不知道对不对,本文主要介绍pc端.H5.JsApi支付方式,

微信jsApI及微信分享对应在手机浏览器的调用总结。

摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript Interface)的文章,不过随着微信官方的调整,部分API已经不能直接使用,比如类似直接分享到朋友圈 WeixinJSBridge.invoke('shareTimeline',data,callback) 这样的功能,直接调用,会得到一个访问拒绝的response.后来重新调研了下,整理出来了

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地(转)

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地 我是应用在微信中,自定义菜单,菜单直接链接到这个HTML5页面,获取当前位置后,页面中定好目的地,这样打开页面后直接进入导航页面 可以省下先发送位置信息后,点确定再出导航,省一步, <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"> <meta name="viewpor