ARRuler

来自于:AC模块工作室立即使用

概述

本模块封装了 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 及更高版本