ARRuler
来自于:AC模块工作室立即使用
isSupported addEventListener open addAnchor clean close hide show
概述
本模块封装了 iOS11 上的 AR 尺子功能。可用手机直接来测量某些产品的长度。使用者只需要拿着手机移动,就可以直接透过手机镜头的画面,测量出你想要丈量的物体长度、高度。
AR 尺子是调用 ARKit 相关接口实现的,ARKit 虽然是 iOS11 新出的框架,但并不是所有的 iOS11 系统都可以使用,而是必须要是处理器 A9 及以上才能够使用,苹果从 iPhone6s 开始使用 A9 处理器,也就是iPhone6 及以前的机型无法使用本模块。
AR 尺子并不是「绝对精确」,他主要是协助你快速概要丈量一些产品,如果要精确的数值还是需要透过传统的丈量方式。但是就实际使用体验来看,这个准确率已经非常的高了。
isSupported
判断当前设备是否支持 AR 尺子
isSupported(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: //布尔类型;是否支持,true|false
}
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.isSupported(function(ret) {
if (ret.status) {
alert('支持');
}
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
addEventListener
监听尺子各种事件
addEventListener({params},callback(ret,err))
params
target:
- 类型:字符串
- 描述:监听的事件名
- 默认:ruler
- 取值范围:
- ruler:AR 尺子状态
- length:测量的实时长度
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
length: //字符串类型;测量长度,仅当 target 为 length 时有值,如:10.12CM。会实时返回测量长度
code: //数字类型;AR 尺子状态码,取值范围:
//0:准备完成状态,可以开始测量
//1:没有找到平面
//2:焦点不在平面内
//3:测量器发生错误
//4:测量器中断
//5:测量结束
}
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.addEventListener({
target:'ruler'
},function(ret) {
if (ret) {
alert(ret.code);
}
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
open
打开摄像头
注意:本接口会打开一个全屏的 ‘frame’,开发者可以再 open 一个 frame 来添加控制菜单
open({params},callback(ret))
params
lineColor:
- 类型:字符串
- 描述:测量线颜色,支持rgb、rgba、#
textColor:
- 类型:字符串
- 描述:测量长度文本颜色,支持rgb、rgba、#
centrum:
- 类型:JSON 对象
- 描述:锚钉样式配置
- 内部字段:
{
color:'', //(可选项)字符串类型;锚点颜色,支持rgb、rgba、#;默认:ff0000
topRadius:, //(可选项)数字类型;锚钉头大小;默认:0.005
bottomRadius:, //(可选项)数字类型;锚钉尖大小;默认:0
height: //(可选项)数字类型;锚钉高度;默认:0.02
}
crossMark:
- 类型:JSON 对象
- 描述:摄像头捕捉的画面正中间的准星样式配置
- 内部字段:
{
image:'', //(可选项)字符串类型;准星图标路径,要求本地路径(fs://、widget://);默认:默认图标
size: //(可选项)数字类型;准星大小;默认:20
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: //布尔类型;是否打开成功,true|false
}
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.open(function(ret) {
if (ret.status) {
alert('打开成功!');
}
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
close
关闭
close()
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.close();
可用性
iOS 系统
可提供的 1.0.0 及更高版本
hide
隐藏
hide()
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.hide();
可用性
iOS 系统
可提供的 1.0.0 及更高版本
show
显示
show()
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.show();
可用性
iOS 系统
可提供的 1.0.0 及更高版本
addAnchor
在当前位置(准星所在的位置,画面的正中间)添加铆钉
addAnchor(callback(ret,err))
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: //布尔类型;是否添加成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码
// 0 : 没有找到平面
}
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.addAnchor(function(ret) {
if (ret.status) {
alert('添加成功!');
}
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
clean
清除铆钉及测量线
clean()
示例代码
var ARRuler = api.require('ARRuler');
ARRuler.clean();
可用性
iOS 系统
可提供的 1.0.0 及更高版本