敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20240925.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ 腾讯位置服务 定位;
$("#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: "" } ] }
1. watch 参数设为 true 即为实时连续定位,当用户位置发生变化时会收到回调通知;
2. Android 8 以上会在手机状态通知栏放置持续定位的前台服务通知,以降低应用被系统杀掉的概率;部分设备默认禁止了 APP 通知,可打包 本地通知 插件,调用 jsBridge.notification.requestAuth 检查是否开启了通知权限,如果没有通知权限可调用 jsBridge.appSettings() 引导用户开启权限;
3. Android 10 以上系统会申请后台定位权限(ACCESS_BACKGROUND_LOCATION),用户可选择 “始终允许” 或 “仅在使用该应用期间允许”;
4. Android 11 申请后台定位权限时不再出现 “始终允许” 选项,此时只能引导用户进入应用设置授予始终允许后台定位的权限;
5. 调用 jsBridge.appSettings() 可以打开应用设置;
var i = 0; var cnt = $("#cnt").show().text(""); var result = $("#result").text("定位中..."); $('html,body').animate({scrollTop: $('#view').offset().top}, 1200); //发起定位,开启后请拿着手机走起来 //在室外开启GPS定位会更准确 jsBridge.qqLoc.getCurrentPosition({ watch: true, watchInterval: 3, //不需要地址信息时的定位速度更快,消耗更少的流量 notAddress : true, notifyTitle : "我的APP", notifyContent: "持续定位中..." }, function(succ, data){ cnt.text("第 " + (++i) + " 次位置回调: "); result.JSONView({ succ: succ, data: data }); });
停止定位
//停止定位 jsBridge.qqLoc.stop();
定位结果 (position 回调参数):