indoorLocation
来自于:数位传媒科技 立即使用
startLocation registerLocationListener registerCycleLocationListener unregisterLocationListener unregisterCycleLocationListener
概述
简介
欢迎您使用数位传媒科技的场景识别模块,使移动设备应用快速具备获取用户室内精准场景识别的能力。
目前仅支持Android平台
获取AppId与AppKey
场景识别SDK需要数位授权的AppId和AppKey,开发测试使用的AppId和AppKey由数位提供。在使用模块之前,您需要申请您的应用的AppId和AppKey,申请的权限分别的为测试权限和正式权限,测试权限请求300次/天,正式权限请求2000次/天。请阅读资质审核要求及下载服务申请表格,填写相关信息后发送邮件至bd@nf-3.com
邮箱。
服务增额申请
如果您在使用本模块的过程中,限定的请求次数不能满足您的需求,您可以下载服务增额申请表,填写相关信息后发送邮件至bd@nf-3.com
邮箱。
资质审核
- 个人开发者,需提供身份证正反面照片,要求图像清晰,文字清晰,不可残缺。
- 企业开发者,需提供营业执照、法人身份证正反面照片,要求图像清晰,文字清晰,不可残缺。
开发指南
设置config.xml文件
您的应用使用模块时,需要在您应用的config.xml中确保以下参数配置。
<preference name="autoUpdate" value="true" />
<preference name="smartUpdate" value="true" />
<preference name="debug" value="false" />
<permission name="readPhoneState" />
<permission name="location" />
<permission name="fileSystem" />
<permission name="internet" />
<meta-data name="com.shuwei.location.APP_KEY" value="您申请的APP_KEY" />
<meta-data name="com.shuwei.location.APP_ID" value="您申请的APP_ID" />
<meta-data name="debugMode" value="false"/>
其中的debugMode
参数,为模块的调试参数,帮助您在应用模块的前期,调试返回的数据。您的应用在正式发布时,请确定该参数设置为false
。
权限配置
为了不影响您应用的用户体验,场景识别模块不会主动申请权限(申请权限会弹对话框),模块只会检查您的应用有没有相关的权限。
为了保证您的应用正常运行,请保证应用的minSdkVersion=14
及其以上。用户使用您的应用时,如果不打开位置权限
,我们将无法返回场景识别数据。
接口文档
startLocation
主动发起场景信息请求
startLocation(callback(ret,err))
callback(ret,err)
ret:
- 类型:JSON对象
- 内部字段:
{
code: "" //string, 成功码
msg: "" //string,成功信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : 0 //int, 错误码
msg : "" //string, 错误信息
}
registerLocationListener
获取主动场景信息的返回结果,请在apiready
中使用该方法。
registerLocationListener(callback(ret,err))
callback(ret,err)
ret:
- 类型:JSON对象
- 内部字段:
{
timestamp: "" //string, 请求结果的时间戳
city: "" //string,城市
region: "" //string, 区域
area: "" //string, 商圈
name: "" //string, 名称
tag: "" //string, 标签
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : 0 //int, 错误码
msg : "" //string, 错误信息
}
registerCycleLocationListener
模块会隔一定周期(5分钟)进行一次场景触发,开发者不需要执行任何触发操作,如果需要得到周期的触发的结果,注册此接口。不需要此结果,则不注册此接口,模块也不会和服务器发起请求。请在apiready
中使用该方法。
registerCycleLocationListener(callback(ret,err))
callback(ret,err)
ret:
- 类型:JSON对象
- 内部字段:
{
timestamp: "" //string, 请求结果的时间戳
city: "" //string,城市
region: "" //string, 区域
area: "" //string, 商圈
name: "" //string, 名称
tag: "" //string, 标签
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : 0 //int, 错误码
msg : "" //string, 错误信息
}
unregisterLocationListener
注销主动场景触发的回调
unregisterLocationListener()
unregisterCycleLocationListener
注销定期场景触发的回调
unregisterCycleLocationListener()
示例代码
var indoorLocation = null;
apiready = function() {
indoorLocation = api.require("indoorLocation");
console.log(indoorLocation);
indoorLocation.registerLocationListener(function(ret, err) {
if (ret) {
console.log(JSON.stringify(ret));
var locationData = ret;
$('#locate_subtitle').nextAll().remove();
for (var key in locationData) {
var str = '<p class="mc-text">';
str += key + ":" + locationData[key];
str += '</p>';
$('#locate_info').append(str);
}
} else {
$('#locate_subtitle').nextAll().remove();
alert(JSON.stringify(err));
console.log(JSON.stringify(err));
}
});
indoorLocation.registerCycleLocationListener(function(ret, err) {
if (ret) {
console.log(JSON.stringify(ret));
$('#recycle_locate_subtitle').nextAll().remove();
for (var key in ret) {
var str = '<p class="mc-text">';
str += key + ":" + ret[key];
str += "</p>";
$("#recycle_locate_info").append(str);
}
} else {
alert(JSON.stringify(err));
}
});
}
function startLocation() {
indoorLocation.startLocation(function(ret, err) {
if (ret) {
console.log(JSON.stringify(ret));
} else {
console.log(JSON.stringify(err));
}
});
}
function unregisterLocation() {
$('#locate_subtitle').nextAll().remove();
indoorLocation.unregisterLocationListener();
}
function unregisterRecycleLocation() {
$('#recycle_locate_subtitle').nextAll().remove();
indoorLocation.unregisterCycleLocationListener();
}
结果码说明
retCode | msg | remark |
---|---|---|
0 | OK | 成功 |
100001 | System error | 服务器错误 |
100002 | Environment error | 环境错误 |
100003 | Miss required parameter | 缺少必传参数 |
100004 | Parameter value invalid | 参数格式错误 |
100005 | Sign error | 签名错误 |
100006 | Package name error | 包名错误 |
100007 | Request data is null | 请求数据为空 |
100008 | Lack authorization | 限制访问。缺少头部授权信息 |
100009 | Restricted access.App TPS reach limit | 限制访问。应用每秒事务数达到上限 |
100010 | Restricted access.Transaction reach daily limit | 限制访问。达到每天事务数配额上限 |
100011 | Restricted access.Transaction reach daily limit | 限制访问。达到每天事务数配额上限 |
201001 | No result | 定位失败 |
203004 | AppId invalid | appId无效 |
203005 | App is disabled | app不可用 |
203006 | App type error | app类型错误 |
启动码说明
code | msg | remark |
---|---|---|
200 | OK | 启动请求成功 |
400 | Failed | 启动请求失败 |