APP开发增加地理定位功能 腾讯定位SDK getCurrentPosition 获取当前位置

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

getCurrentPosition 获取当前位置

核心代码示例,详情参阅demo

$("#cnt").hide();
var result = $("#result").text("定位中...");    
$('html,body').animate({scrollTop: $('#view').offset().top}, 1200);

//发起定位单次定位(watch 为 false)
jsBridge.qqLoc.getCurrentPosition({
  //可选, 连续定位, 默认 false
  //调用 jsBridge.qqLoc.stop() 停止定位
  watch : false,
  //可选,连续定位时间间隔(秒),最低1秒,默认3
  watchInterval: 3,
  //可选,布尔类型, true = 不需要地址信息,默认 false (需要)
  //不需要地址信息时的定位速度更快,消耗更少的流量
  notAddress   : false,
  //可选,连续定位通知栏标题,默认为应用名称
  notifyTitle  : "",
  //可选,连续定位通知栏内容
  notifyContent: "持续定位中..."
}, function(succ, data) {
  //jsBridge.setClipboardText(JSON.stringify(data));
  result.JSONView({
    succ: succ,
    data: data
  });
});

//示例定位结果(模拟数据):
var sample = 
{
    //成功
    success: true,
    address: null,
    name: null,
    //室内定位时返回楼层
    floor: "1000",
    //室内定位时返回建筑ID
    buildingId: "",
    //纬度
    latitude: 30.542879,
    //经度
    longitude: 104.047229,
    //室外GPS定位时返回海拔高度
    altitude: 0,
    //室外GPS定位时返回速度
    speed: 0,
    //方向
    direction: -22.051645187045615,
    //地址
    country: "中国",
    province: "四川省",
    city: "成都市",
    district: "武侯区",
    town: "石羊场街道",
    village: "Unknown",
    street: "天府四街",
    streetNumber: "剑南大道1537号",
    //邮编
    cityCode: "510107",
    //电话区号
    cityPhoneCode: "028",
    bearing: 0,
    //精确度(米)
    accuracy: 40,
    //定位方式
    provider: "network",
    //周边信息
    poi: [
        {
            address: "四川省成都市武侯区剑南大道中段1537号",
            latitude: 30.543404,
            longitude: 104.047569,
            catalog: "房产小区:住宅区:住宅小区",
            name: "佳年华·时代晶座",
            uid: "13166346620311622068",
            distance: 0,
            direction: ""
        },
        {
            address: "四川省成都市武侯区利通时代晶座2幢",
            latitude: 30.542837,
            longitude: 104.047173,
            catalog: "房产小区:房产小区附属",
            name: "佳年华·时代晶座2栋",
            uid: "1306492289682442565",
            distance: 10.7,
            direction: ""
        },
        {
            address: "四川省成都市武侯区天府四街时代金座3栋1911",
            latitude: 30.542694,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "四川创客暖通工程有限公司",
            uid: "10882588705945394131",
            distance: 35.5,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道与天府四街交叉口东北方向120米",
            latitude: 30.542688,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "成都灵动美绘科技有限公司",
            uid: "15341516959025700688",
            distance: 35.9,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道中段1589号时代晶座(天府四街交汇处)",
            latitude: 30.542686,
            longitude: 104.046967,
            catalog: "医疗保健:专科医院:整形",
            name: "紫藤花语医美连锁(高新门诊部)",
            uid: "2915740464587222983",
            distance: 36.1,
            direction: ""
        }
    ]
}

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
$("#cnt").hide();
var result = $("#result").text("定位中...");    
$('html,body').animate({scrollTop: $('#view').offset().top}, 1200);

//发起定位单次定位(watch 为 false)
jsBridge.qqLoc.getCurrentPosition({
  //可选, 连续定位, 默认 false
  //调用 jsBridge.qqLoc.stop() 停止定位
  watch : false,
  //可选,连续定位时间间隔(秒),最低1秒,默认3
  watchInterval: 3,
  //可选,布尔类型, true = 不需要地址信息,默认 false (需要)
  //不需要地址信息时的定位速度更快,消耗更少的流量
  notAddress   : false,
  //可选,连续定位通知栏标题,默认为应用名称
  notifyTitle  : "",
  //可选,连续定位通知栏内容
  notifyContent: "持续定位中..."
}, function(succ, data) {
  //jsBridge.setClipboardText(JSON.stringify(data));
  result.JSONView({
    succ: succ,
    data: data
  });
});

//示例定位结果(模拟数据):
var sample = 
{
    //成功
    success: true,
    address: null,
    name: null,
    //室内定位时返回楼层
    floor: "1000",
    //室内定位时返回建筑ID
    buildingId: "",
    //纬度
    latitude: 30.542879,
    //经度
    longitude: 104.047229,
    //室外GPS定位时返回海拔高度
    altitude: 0,
    //室外GPS定位时返回速度
    speed: 0,
    //方向
    direction: -22.051645187045615,
    //地址
    country: "中国",
    province: "四川省",
    city: "成都市",
    district: "武侯区",
    town: "石羊场街道",
    village: "Unknown",
    street: "天府四街",
    streetNumber: "剑南大道1537号",
    //邮编
    cityCode: "510107",
    //电话区号
    cityPhoneCode: "028",
    bearing: 0,
    //精确度(米)
    accuracy: 40,
    //定位方式
    provider: "network",
    //周边信息
    poi: [
        {
            address: "四川省成都市武侯区剑南大道中段1537号",
            latitude: 30.543404,
            longitude: 104.047569,
            catalog: "房产小区:住宅区:住宅小区",
            name: "佳年华·时代晶座",
            uid: "13166346620311622068",
            distance: 0,
            direction: ""
        },
        {
            address: "四川省成都市武侯区利通时代晶座2幢",
            latitude: 30.542837,
            longitude: 104.047173,
            catalog: "房产小区:房产小区附属",
            name: "佳年华·时代晶座2栋",
            uid: "1306492289682442565",
            distance: 10.7,
            direction: ""
        },
        {
            address: "四川省成都市武侯区天府四街时代金座3栋1911",
            latitude: 30.542694,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "四川创客暖通工程有限公司",
            uid: "10882588705945394131",
            distance: 35.5,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道与天府四街交叉口东北方向120米",
            latitude: 30.542688,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "成都灵动美绘科技有限公司",
            uid: "15341516959025700688",
            distance: 35.9,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道中段1589号时代晶座(天府四街交汇处)",
            latitude: 30.542686,
            longitude: 104.046967,
            catalog: "医疗保健:专科医院:整形",
            name: "紫藤花语医美连锁(高新门诊部)",
            uid: "2915740464587222983",
            distance: 36.1,
            direction: ""
        }
    ]
}

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
$("#cnt").hide();
var result = $("#result").text("定位中...");    
$('html,body').animate({scrollTop: $('#view').offset().top}, 1200);

//发起定位单次定位(watch 为 false)
jsBridge.qqLoc.getCurrentPosition({
  //可选, 连续定位, 默认 false
  //调用 jsBridge.qqLoc.stop() 停止定位
  watch : false,
  //可选,连续定位时间间隔(秒),最低1秒,默认3
  watchInterval: 3,
  //可选,布尔类型, true = 不需要地址信息,默认 false (需要)
  //不需要地址信息时的定位速度更快,消耗更少的流量
  notAddress   : false,
  //可选,连续定位通知栏标题,默认为应用名称
  notifyTitle  : "",
  //可选,连续定位通知栏内容
  notifyContent: "持续定位中..."
}, function(succ, data) {
  //jsBridge.setClipboardText(JSON.stringify(data));
  result.JSONView({
    succ: succ,
    data: data
  });
});

//示例定位结果(模拟数据):
var sample = 
{
    //成功
    success: true,
    address: null,
    name: null,
    //室内定位时返回楼层
    floor: "1000",
    //室内定位时返回建筑ID
    buildingId: "",
    //纬度
    latitude: 30.542879,
    //经度
    longitude: 104.047229,
    //室外GPS定位时返回海拔高度
    altitude: 0,
    //室外GPS定位时返回速度
    speed: 0,
    //方向
    direction: -22.051645187045615,
    //地址
    country: "中国",
    province: "四川省",
    city: "成都市",
    district: "武侯区",
    town: "石羊场街道",
    village: "Unknown",
    street: "天府四街",
    streetNumber: "剑南大道1537号",
    //邮编
    cityCode: "510107",
    //电话区号
    cityPhoneCode: "028",
    bearing: 0,
    //精确度(米)
    accuracy: 40,
    //定位方式
    provider: "network",
    //周边信息
    poi: [
        {
            address: "四川省成都市武侯区剑南大道中段1537号",
            latitude: 30.543404,
            longitude: 104.047569,
            catalog: "房产小区:住宅区:住宅小区",
            name: "佳年华·时代晶座",
            uid: "13166346620311622068",
            distance: 0,
            direction: ""
        },
        {
            address: "四川省成都市武侯区利通时代晶座2幢",
            latitude: 30.542837,
            longitude: 104.047173,
            catalog: "房产小区:房产小区附属",
            name: "佳年华·时代晶座2栋",
            uid: "1306492289682442565",
            distance: 10.7,
            direction: ""
        },
        {
            address: "四川省成都市武侯区天府四街时代金座3栋1911",
            latitude: 30.542694,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "四川创客暖通工程有限公司",
            uid: "10882588705945394131",
            distance: 35.5,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道与天府四街交叉口东北方向120米",
            latitude: 30.542688,
            longitude: 104.046967,
            catalog: "公司企业:公司企业",
            name: "成都灵动美绘科技有限公司",
            uid: "15341516959025700688",
            distance: 35.9,
            direction: ""
        },
        {
            address: "四川省成都市武侯区剑南大道中段1589号时代晶座(天府四街交汇处)",
            latitude: 30.542686,
            longitude: 104.046967,
            catalog: "医疗保健:专科医院:整形",
            name: "紫藤花语医美连锁(高新门诊部)",
            uid: "2915740464587222983",
            distance: 36.1,
            direction: ""
        }
    ]
}

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

打包的APP提示缺少定位权限如何处理?

我们在使用一门APP打包平台制作APP的时候,如果打开APP使用定位权限的时候有下图的提示,我们应该如何处理呢?

这个提示首先看一下设置里面的定位权限有没有正常开启

如果权限是正常开启的,问题就在APP没有定位权限,需要在配置界面打包地理定位插件,首先点击我的应用里面的应用配置按钮

在配置移动版界面找到H5地理定位功能

勾选打包这个插件

最后还需要重新生成新版本,在手机上安装新版本才会生效