现在有个需求:每隔一段时间需向后台服务器返回当前用户的经纬度坐标.

ionic 官方提供的有定位插件cordova-plugin-geolocation,兼容ios和android版本,网上查资料说最新版的插件已经删除掉的Android版定位的代码,改为基于系统浏览器(chrome内核)进行定位。至于为什么这样做,也有人问过同样的问题,作者的回答是这样比原生定位更快更准确。经过调试,成功过,但是一段时间后就不能用了,提示信息主要就是说不能使用http的协议(非安全的协议),还有一部分人说是因为国内网络的问题,这个问题估计也是个原因吧...

于是乎去网上找适合安卓使用的定位插件: Cordova/ionic 百度定位Android版插件

  1. 首先申请百度地图android版sdk的appkey,需要用到安卓签名证书的sha1值+应用的包名(不清楚的同学百度ionic 安卓签名和ionic 包名,必须打包成release版,并对其进行签名在测试机上测试)
  2. 下载插件
    ionic cordova plugin add https://github.com/mrwutong/cordova-qdc-baidu-location --variable API_KEY="你的ak码"
  3. 具体的使用可以查看官方插件仓库
  4. 调试:必须打包成release版,并对其进行签名在测试机上测试

使用中遇到的问题:

  1. ReferenceError: baidu_location is not defined, 解决办法: 在使用之前 declare var baidu_location: any; 引入 baidu_location,详情请去网上搜索ionic 如何引入自定义的插件

  2. 获取坐标为5e-324, 解决办法:查看返回的locType是否为505(申请的appkey不合法或者没有对app进行签名),具体的定位返回错误码:Android 定位SDK定位 返回错误码

  3. 设备没有获取位置的权限, 解决办法:官方提供"ionic-native/android-permissions"插件,具体使用办法查看官方文档 Android Permissions

ionic 3 安卓手机获取经纬度坐标的更多相关文章

  1. 利用百度地图API,获取经纬度坐标

    利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...

  2. php项目有负载,$_SERVER['HTTP_X_FORWARDED_FOR']函数在不同系统中获取到的值形式不一样,ios系统苹果手机只能获取到一个ip(113.87.214.xxx),而安卓手机获取到的是2个ip中间逗号隔开的形式(113.87.214.xxx , xxx.xxx.xxx.xxx)

    这次由于有个抽奖活动功能,苹果手机每次都抽奖失败,安卓手机每次都抽奖失败(5台ios手机,8台Android手机). 错误日志查看是因为,抽奖用户的ip记录进数据库时出错,之前都是拿到ip直接插入数据 ...

  3. 安卓手机获取IP地址

    public class IpGetUtil { public static String getIPAddress(Context context) { NetworkInfo info = ((C ...

  4. MacOS下Terminal获取GPS经纬度坐标

    通过命令行直接获取经纬度坐标MacOS 首先下载WhereAmI,最新版本: https://github.com/robmathers/WhereAmI/releases/download/v1.1 ...

  5. C# JackLib系列之如何获取地球上两经纬度坐标点间的距离

    获取地球上两经纬度坐标点间的距离,利用[大圆距离公式]   A diagram illustrating great-circle distance (drawn in red) between tw ...

  6. 【转】android 安卓APP获取手机设备信息和手机号码的代码示例

    http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...

  7. Android GPS获取当前经纬度坐标

    APP中可能会遇到一种需求,就是将当前所在位置的坐标传到server上,今天我提供三种途径去获取经纬度坐标信息,第一种是通过Android API来实现,另外一种通过百度地图API来实现,第三种通过天 ...

  8. 使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置

    最近项目需要,稍微研究一下html5获取当前地理位置的问题. 获取当前位置的经纬度很简单,一句代码就搞定 navigator.geolocation.getCurrentPosition(functi ...

  9. error while obtaining ui hierarchy xml file...用 uiautomatorviewer 获取安卓手机软件页面时报错

    Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't ...

随机推荐

  1. WCF之endpoint的binding属性

    最近在回顾之前做的wcf项目时,发现这个binding的属性有BasicHttpBinding,WSHttpBinding,webHttpBinding等几种方式.但是其中的区别当时未深入研究.现在网 ...

  2. K-query SPOJ - KQUERY 离线 线段树/树状数组 区间大于K的个数

    题意: 给一个数列,一些询问,问你区间$[l.r]$大于$K$的个数 题解: 又一个"人尽皆知傻逼题"? 我们用一个01序列表示当前询问时,该位置的数字是否对答案有贡献, 显然,对 ...

  3. GBT MBR

    MBR最大支持2.2TB磁盘,它无法处理大于2.2TB容量的磁盘.MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区. GPT的全称是Globally ...

  4. 关于iwinfo的调试

    在调试 主动扫描时,调用命令 “iwinfo  wlan0 scan”时, 在iwinfo中添加的调试语句没有打印和记录到log中去. 后查看iwinfo的makefile发现,在生成iwinfo程序 ...

  5. mybatis:三种参数传递(转载)

    转载自:https://www.2cto.com/database/201409/338155.html 第一种方案 DAO层的函数方法 Public User selectUser(String n ...

  6. maven项目部署到Tomcat

    1.安装Tomcat,地址:http://tomcat.apache.org,我安装的版本为9.0.0.M22,安装的目录为C:\apache-tomcat,设置环境变量CATALINA_HOME为C ...

  7. 8 张图帮你一步步看清 async/await 和 promise 的执行顺序(转)

    https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651555491&idx=1&sn=73779f84c289d9 ...

  8. Linux Oracle bash: “sqlplus / as sysdba”: command not found 解决方法

    bash: sqlplus: command not found 解决方法 注:本文来源于 <   bash: sqlplus: command not found 解决方法   > 1: ...

  9. 使用 mod_rewrite 来修改 Confluence 6 的 URLs

    备注:这个页面的文档是 Apache 的配置,而不是 Confluence 自己的配置.Atlassian 将会对 Confluence 的配置提供支持,但是我们不能保证能够对你所有在配置 Apach ...

  10. android 使用opencv

    1.将已有的项目名称改名字,但一直报错 Error:A problem occurred configuring project ':app'.> executing external nati ...