ios10不能定位 window.navigator.geolocation.getCurrentPosition(定位第一节)

原文连接:

https://blog.csdn.net/michael_ouyang/article/details/54137709

--------------------------------------------------------- 

问题分析:

目前由于许多苹果用户都升级到了iOS系统,苹果的iOS 10已经正式对外推送,相信很多用户已经更新到了最新的系统。然而,如果web站没有及时支持https协议的话,当很多用户在iOS 10下访问很多网站时,会发现都无法进行正常精确定位,导致部分网站的周边推荐服务无法正常使用。为何在iOS 10下无法获取当前位置信息?这是因为在iOS 10中,苹果对webkit定位权限进行了修改,所有定位请求的页面必须是https协议的。如果是非https网页,在http协议下通过html5原生定位接口会返回错误,也就是无法正常定位到用户的具体位置,而已经支持https的网站则不会受影响。

 

   目前提供的解决方案:

  1、将网站的http设置为Https。

  2、通过第三方解决,这也是我目前使用的方法。

 

 

   首先看以下两段代码:


代码段一:

          1、在页面引入js

 

 
  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>

  2. <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

 

 

         2、获得定位方法  window.navigator.geolocation.getCurrentPosition:通过手机的webKit定位(目前ios系统对非https网站不提供支持)

 

 
  1. navigator.geolocation.getCurrentPosition(translatePoint); //定位

  2. function translatePoint(position) {

  3. var currentLat = position.coords.latitude;

  4. var currentLon = position.coords.longitude;

  5. SetCookie("curLat", currentLat, 1);//设置cookie

  6. SetCookie("curLng", currentLon, 1);//设置cookie

  7. var gpsPoint = new BMap.Point(currentLon, currentLat);

  8.  
  9. var pt = new BMap.Point(currentLon, currentLat);

  10. var geoc = new BMap.Geocoder();

  11. geoc.getLocation(pt, function (rs) {

  12. var addComp = rs.addressComponents;

  13. SetCookie("curLat", currentLat, 1); //设置cookie

  14. SetCookie("curLng", currentLon, 1); //设置cookie

  15. //alert(JSON.stringify(addComp));

  16. var city = addComp.city;

  17. //获得具体街道信息

  18. var texts = addComp.district + "-" + addComp.street + "-" + addComp.streetNumber;

  19. $("#nowRoad").text(texts);

  20. });

  21. }


 

 

代码段二:

          1、在页面引入js

 

 
  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>

  2. <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

 

 

           2、获得定位方法

 

 
  1. var geolocation = new BMap.Geolocation();

  2. geolocation.getCurrentPosition(function (r) {

  3. if (this.getStatus() == BMAP_STATUS_SUCCESS) {

  4. var mk = new BMap.Marker(r.point);

  5. currentLat = r.point.lat;

  6. currentLon = r.point.lng;

  7. SetCookie("curLat", currentLat, 1); //设置cookie

  8. SetCookie("curLng", currentLon, 1); //设置cookie

  9. var pt = new BMap.Point(currentLon, currentLat);

  10. var geoc = new BMap.Geocoder();

  11. geoc.getLocation(pt, function (rs) {

  12. var addComp = rs.addressComponents;

  13. SetCookie("curLat", currentLat, 1); //设置cookie

  14. SetCookie("curLng", currentLon, 1); //设置cookie

  15.  
  16. var city = addComp.city;

  17. var addComp = rs.addressComponents;

  18. var texts = addComp.district + "-" + addComp.street + "-" + addComp.streetNumber;

  19. //获取地理位置成功,跳转

  20.  
  21. });

  22. }

  23. });

 

以上两端代码中,最大的不同点在于:

第一段代码使用的是

window.navigator.geolocation.getCurrentPosition()

此方法是通过UIwebview的内核webKit进行定位

 

第二段代码使用的是

var geolocation = new BMap.Geolocation();  
geolocation.getCurrentPosition()

此方式是使用了百度api

附相关连接:http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html

 

 

另外,值得注意的一个问题是:

使用window.navigator.geolocation.getCurrentPosition() 获取到的一个经纬度,还不能直接使用,还需要经过解密,才能获取到准备的地理位置

想知道如何把这个位置进行解密转换,请留意下一遍文章

http://blog.csdn.net/michael_ouyang/article/details/54378338

 

原文链接:http://blog.csdn.net/for12/article/details/52803787

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php网站无法显示,php – 在UTF-8网站上无法正确显示的字符

我已经完成了我能想到的一切,但是在这个网页上没有正确显示特殊字符.例如,在数据库中它是&#xff1a;但在网站上它是&#xff1a;Nouveaux R&#xfffd;alistes这是我检查过的一切……数据库设置为UTF-8&#xff1a;该页面是用NetBeans编写的,文档编码设置为UTF-8&#xff1a…

ios如何获取gps坐标(定位第二节)

原文连接&#xff1a; https://blog.csdn.net/michael_ouyang/article/details/54378338 -------------------------------------------------------------------- 在上一篇文章&#xff0c;解决ios 10不能定位的问题&#xff0c;把navigator.geolocation.getCurrentPosition…

java并发编程——线程池的工作原理与源码解读

2019独角兽企业重金招聘Python工程师标准>>> 线程池的简单介绍 基于多核CPU的发展&#xff0c;使得多线程开发日趋流行。然而线程的创建和销毁&#xff0c;都涉及到系统调用&#xff0c;比较消耗系统资源&#xff0c;所以就引入了线程池技术&#xff0c;避免频繁的线…

php pcre回溯攻击,php preg_match pcre回溯绕过

原理需要知识:正则NFA回溯原理&#xff0c;php的pcre.backtrack_limit设置。正则NFA回溯原理正则表达式是一个可以被"有限状态自动机"接受的语言类。"有限状态自动机",拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移…

电驴更新地址

emule是通过ED2K网络和KAD网络寻找、连接其他emule客户端的&#xff0c;所以服务器列表和KAD节点文件是emule的必需文件。 有些新手由于下载官方原版emule压缩包或其他未集成这些必需文件的emule压缩包&#xff0c;从而出现“连接不上ED2K与KAD”问题。所以学会下载更新服务器…

Vue CLI 3 可以使用 TypeScript 生成新工程

TypeScript 支持 在 Vue 2.5.0 中&#xff0c;我们大大改进了类型声明以更好地使用默认的基于对象的 API。同时此版本也引入了一些其它变化&#xff0c;需要开发者作出相应的升级。阅读博客文章了解更多详情。 发布为 NPM 包的官方声明文件 静态类型系统能帮助你有效防止许多潜…

手机端本地图片或者拍照的上传功能

原文连接 https://blog.csdn.net/m0_37852904/article/details/78550136 ---------------------------------------------------------- 最近刚好在做手机端的图片上传功能&#xff0c;便记录下 html&#xff1a; <input type"file" class"hide" i…

php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能

背景 手上有一个这样的系统&#xff1a;后台可以直接新建项目(网站)&#xff0c;只需输入项目名称、访问域名(二级)以及其他一些额外信息&#xff0c;就可自动生成一个模板网站。大致原理是&#xff1a;提交这些信息的时候&#xff0c;后台会给项目新建一个目录&#xff0c;并把…

IOS内购详解

介绍 最近开发的一款APP上架被驳回了&#xff0c;理由是&#xff1a; 上架的APP是培训类&#xff0c;里面金牌视频课程需要购买&#xff0c;Android端使用支付宝&#xff0c;微信支付。 苹果规定 数字化内容、App功能以及服务等&#xff0c;需要使用内购 真实世界中的服务(…

汇编中的函数调用与递归

栈帧的结构 倘若我们要想搞清楚过程的实现&#xff0c;就必须先知道栈帧的结构是如何构成的。栈帧其实可以认为是程序栈的一段&#xff0c;而程序栈又是存储器的一段&#xff0c;因此栈帧说到底还是存储器的一段。那么既然是一段&#xff0c;肯定有两个端点&#xff0c;这个不需…

php 相亲 段子,精彩的男女幽默段子

精彩的男女幽默段子。撒嬌老婆洗完澡對老公撒嬌說&#xff1a;老公&#xff0c;抱我到床上去吧。老公看了看老婆&#xff0c;冷冷的回答道&#xff1a;我還是把床搬過來吧&#xff01;所以&#xff0c;撒嬌還是要看體型&#xff01;單身老公說&#xff1a;老婆&#xff0c;你不…

Redmine数据库备份及搬家

Bitnami Redmine的备份分2种方式&#xff1a; 1.导出数据库 2.整个目录搬家 不管是哪种都想停掉服务&#xff0c;redmine相关的服务有以下5个&#xff1a; redmineApache   redmineMySQL   redmineSubversion   redmineThin1   redmineThin2 可以打开windows服务控制面…

且看BCH开启的“信用本位”时代

​​​ 且看BCH开启的“信用本位”时代 比特币向来被称为“金本位”的互联网实验&#xff0c;由于中本聪先生的天才发明&#xff0c;POW机制给予了比特币与黄金同样的生产模式。所以&#xff0c;时至今日&#xff0c;BCE依然自称为“数字黄金”。 只可惜&#xff0c;“一叶障目…

oracle设置临时表空间,Oracle临时表空间查看、添加临时表空间数据文件、修改默认临时表空间 方法!...

--查表空间使用率情况(含临时表空间)SELECT d.tablespace_name "Name", d.status "Status",TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), 99,999,990.90) "Size (M)",TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0), 0) / 1024 / 1024,99999999.99) US…

Redmine项目管理工具安装

Redmine免费开源的项目管理工具 下载 一键安装工具 https://bitnami.com/stack/redmine/installer 安装 Redmine一键安装工具集成了php服务&#xff0c;mysql服务。尽管安装就好。 安装完成后&#xff0c;在开始菜单&#xff0c;找到-----Bitnami Redmine Stack--------Bi…

Oracle创建假脱机文件,oracle – 在sqlplus中假脱机csv文件时的标头格式

我需要使用sqlplus从Oracle中的表中调整csv.以下是所需的格式&#xff1a;"HOST_SITE_TX_ID","SITE_ID","SITETX_TX_ID","SITETX_HELP_ID""664436565","16","2195301","0""664700792&qu…

方便微信公众号等手机网页调试插件eruda和vConsole

原文地址&#xff1a;https://blog.csdn.net/qq_39234840/article/details/80951710 ---------------------------------------------------------- 调试插件一&#xff1a;eruda&#xff08;推荐&#xff0c;因为比vConsole功能多&#xff09; <script src"//cdn.js…

HDU 3530Subsequence(单调队列)

题意 题目链接 给出$n$个数&#xff0c;找出最长的区间&#xff0c;使得区间中最大数$-$最小数 $> m$ 且$< k$ Sol 考虑维护两个单调队列。 一个维护$1 - i$的最大值&#xff0c;一个维护$1 - i$的最小值。 至于两个限制条件。 $<k$可以通过调整队首来满足 $>a$可以…

oracle权限培训,Java培训-ORACLE数据库学习【2】用户权限

查询用户拥有的权限&#xff1a;1.查看所有用户&#xff1a;select *from dba_users;select *from all_users;select *from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限)&#xff1a;select *from dba_sys_privs;select *from user_sys_privs; 3.查看…