以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  微信中打开网页自动获取用户地址,如何不弹出弹出框  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127723)

--  作者:xluoping
--  发布时间:2018/11/20 18:52:00
--  微信中打开网页自动获取用户地址,如何不弹出弹出框
如下JS,微信公众号中打开网页自动获取用户地理位置时,总是会弹出 地理位置授权 的弹出框,如何做到默认不弹出?

 function getLocation(){
               var options={
                   enableHighAccuracy:true, 
                   maximumAge:1000
               }
               if(navigator.geolocation){
                   //浏览器支持geolocation
                   navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
                   
               }else{
                   //浏览器不支持geolocation
               }
           }
           //成功时
           function onSuccess(position){
               //返回用户位置
               //经度
               var longitude =position.coords.longitude;
               //纬度
               var latitude = position.coords.latitude;
              // alert("成功"); 
            //alert(longitude + "|" + latitude);
              var result = sendAjaxText(longitude + "|" + latitude,"baidumap.htm","",false);
              var myDate = new Date();  //获取系统当前时间
              var juli = sendAjaxText(longitude + "|" + latitude + "|" + document.getElementById("单位定位").value,"baiduju.htm","",false);
              var youx = document.getElementById("打卡距离").value
              document.getElementById("打卡信息").innerHTML ="经度:" + longitude + "|纬度:" + latitude + "|" + result;

           }

           //失败时
           function onError(error){
               switch(error.code){
                   case 1:
                   alert("位置服务被拒绝");
                   break;
                   case 2:
                   alert("暂时获取不到位置信息");
                   break;
                   case 3:
                   alert("获取信息超时");
                   break;
                   case 4:
                    alert("未知错误");
                   break;
               }
           }

getLocation()

--  作者:有点甜
--  发布时间:2018/11/20 19:02:00
--  

这个没办法,必须会弹出的。

 

如果在公众号里面,你可以直接用jssdk获取的,如

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=101097&authorid=0&page=0&star=1

 


--  作者:xluoping
--  发布时间:2018/11/21 9:06:00
--  
GetJsSignature 和扫描实例中一致,以下是网页代码,不能 alert 经度纬度 ,请问问题出在哪里?

Dim e As RequestEventArgs = args(0)  \'网页函数开始输入收款和支出
Dim wb As New weui
wb.AppendHTML("<script src=\'http://res.wx.qq.com/open/js/jweixin-1.2.0.js\'></script>",True) \'引入JS-SDK库
wb.AppendHTML("<script src=\'./js/qqmap.js\'></script>") \'引入脚本文件
\'在页面注入权限验证配置
Dim st As New Date(1970,1,1,8,0,0)
Dim appid As String = "wxac4b451413cd0fa1" \'开发者ID
Dim timestamp As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳
Dim noncestr As String = Rand.NextString(16) \'随机字符
Dim url As String  = e.Request.URL.ToString \'当前页面地址
Dim signature As String = Functions.Execute("GetJsSignature", noncestr, timestamp, url) \'生成权限验证签名
Dim cfg As String = "wx.config({appId:\'{0}\',timestamp:{1},nonceStr:\'{2}\',signature:\'{3}\',jsApiList:[\'getLocation\']});"
wb.AppendHTML("<script>" & CExp(cfg,appid,timestamp,noncestr,signature) & "</script>",True)
\'开始正常生成网页内容

e.WriteString(wb.Build) \'生成网页


qqmap.js 如下:

wx.getLocation({
type: \'wgs84\', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入\'gcj02\'
success: function (res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
var speed = res.speed; // 速度,以米/每秒计
var accuracy = res.accuracy; // 位置精度
   alert(latitude + \':\' + longitude);
}
});

--  作者:有点甜
--  发布时间:2018/11/21 9:30:00
--  

1、首先,你的网页,必须在微信浏览器打开,才能使用 jssdk;

 

2、下载一个微信的web调试器,看报什么错 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140