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 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否支持,true|false
  3. }

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.isSupported(function(ret) {
  3. if (ret.status) {
  4. alert('支持');
  5. }
  6. });

可用性

iOS 系统

可提供的 1.0.0 及更高版本

addEventListener

监听尺子各种事件

addEventListener({params},callback(ret,err))

params

target:

  • 类型:字符串
  • 描述:监听的事件名
  • 默认:ruler
  • 取值范围:
    • ruler:AR 尺子状态
    • length:测量的实时长度

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. length: //字符串类型;测量长度,仅当 target 为 length 时有值,如:10.12CM。会实时返回测量长度
  3. code: //数字类型;AR 尺子状态码,取值范围:
  4. //0:准备完成状态,可以开始测量
  5. //1:没有找到平面
  6. //2:焦点不在平面内
  7. //3:测量器发生错误
  8. //4:测量器中断
  9. //5:测量结束
  10. }

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.addEventListener({
  3. target:'ruler'
  4. },function(ret) {
  5. if (ret) {
  6. alert(ret.code);
  7. }
  8. });

可用性

iOS 系统

可提供的 1.0.0 及更高版本

open

打开摄像头

注意:本接口会打开一个全屏的 ‘frame’,开发者可以再 open 一个 frame 来添加控制菜单

open({params},callback(ret))

params

lineColor:

  • 类型:字符串
  • 描述:测量线颜色,支持rgb、rgba、#

textColor:

  • 类型:字符串
  • 描述:测量长度文本颜色,支持rgb、rgba、#

centrum:

  • 类型:JSON 对象
  • 描述:锚钉样式配置
  • 内部字段:
  1. {
  2. color:'', //(可选项)字符串类型;锚点颜色,支持rgb、rgba、#;默认:ff0000
  3. topRadius:, //(可选项)数字类型;锚钉头大小;默认:0.005
  4. bottomRadius:, //(可选项)数字类型;锚钉尖大小;默认:0
  5. height: //(可选项)数字类型;锚钉高度;默认:0.02
  6. }

crossMark:

  • 类型:JSON 对象
  • 描述:摄像头捕捉的画面正中间的准星样式配置
  • 内部字段:
  1. {
  2. image:'', //(可选项)字符串类型;准星图标路径,要求本地路径(fs://、widget://);默认:默认图标
  3. size: //(可选项)数字类型;准星大小;默认:20
  4. }

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否打开成功,true|false
  3. }

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.open(function(ret) {
  3. if (ret.status) {
  4. alert('打开成功!');
  5. }
  6. });

可用性

iOS 系统

可提供的 1.0.0 及更高版本

close

关闭

close()

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.close();

可用性

iOS 系统

可提供的 1.0.0 及更高版本

hide

隐藏

hide()

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.hide();

可用性

iOS 系统

可提供的 1.0.0 及更高版本

show

显示

show()

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.show();

可用性

iOS 系统

可提供的 1.0.0 及更高版本

addAnchor

在当前位置(准星所在的位置,画面的正中间)添加铆钉

addAnchor(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否添加成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. // 0 : 没有找到平面
  4. }

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.addAnchor(function(ret) {
  3. if (ret.status) {
  4. alert('添加成功!');
  5. }
  6. });

可用性

iOS 系统

可提供的 1.0.0 及更高版本

clean

清除铆钉及测量线

clean()

示例代码

  1. var ARRuler = api.require('ARRuler');
  2. ARRuler.clean();

可用性

iOS 系统

可提供的 1.0.0 及更高版本