height 微信小程序 无效_微信小程序AR解决方案 | 微信开放社区

EasyAR 小程序AR

帮助您迅速在微信小程序中实现扫描识别图呈现3D动画模型、视频、图片、文字、UI按钮等效果,并且支持3D模型交互。区别于原生 AR 应用,具有模式轻、部署快、传播性强等特点。

EasyAR WebAR 微信小程序 快速入门

一、开发前准备

  1. 登录小程序后台,在【设置-开发设置-开发者ID】中,获取AppID,如下图:
  2. 2634a415108001ff2acae71469761681.png
  3. e1e660b7b81ea8bb90e48ce2b76c12d3.png
  4. 登录 EasyAR 官网购买WebAR云识别图库,并获取Cloud Key和Token:
  5. 在“云识别管理”进入云识别图库的管理页面,获取Cloud Key
  6. fd8db11f5beee1b6c31c0de5c7a4223c.png
  7. 在“API KEY”进入API KEY的管理页面,获取Token。如有有效期需求选择有效期后生成Token
  8. 7f87ef9e0a55b0e35677abff0ac2dbd7.png

二、开发步骤

1. wxml文件中添加camera和canvas组件。camera组件用于展示相机内容和获取相机帧,canvas组件用于图片压缩。

2. 初始化camera和canvas

const query = ();
('#capture')
    .fields({node: true})
    .exec((res) => {
        const canvas = res[0].node;
        
         = 480;
        canvas.height = 640;
        this.canvas = canvas;
    });

let cameraContext = ();
let listener = (frame => {
    if (!this.canvas) return;
    let canvas = this.canvas;
    if ( !== frame.width || canvas.height !== ) {
         = frame.width;
        canvas.height = ;
    }

    
});
();

3. 压缩图片为JPEG(在需要发起一次CRS请求时进行第3、4步,比如用户主动触发一次识别时,或者已经开始识别循环时。不要在onCameraFrame回调中直接发起)

let context = this.canvas.getContext('2d');
let ctxImageData = (frame.width, );
(newUint8ClampedArray()); 
(ctxImageData, 0, 0); let dataUrl = this.canvas.toDataURL("image/jpeg", ); let base64 = (23); 

4. 组装请求参数,发起CRS请求

const params = {
    image: base64,
    notracking: "true",
    appId: "开发前准备中的 Cloud Key",
};

returnnewPromise((resolve, reject) => {
    ({
        url: "",
        method: 'post',
        data: params,
        header: {
            'Authorization': "开发前准备中的 Token",
            'content-type': 'application/json'
        },
        success: res => resolve(), fail: err => reject(err),
    });
});

5. 处理请求结果

queryImage(frame).then(response => { let result = response && response.result;
    if (!result) return;

    if () {
        console.log("识别成功", .targetId);
        if (.meta) { console.log("meta base64:", .meta);
        }
    } else {
        console.log("识别失败", );
    }
});

三、后续工作

  1. 完整示例: 点击查看
  2. 将  加入小程序域名白名单的request部分
  3. 在图库中添加识别图
  4. 根据实际需求处理CRS请求的内容,如展示图片、视频、3D模型等
  5. 可以通过自建服务器,在服务器端 调用接口 的方式获取Token,发送给小程序端使用,而不是将Token写死在小程序代码中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值