更新记录

0.12(2023-05-29)

为UniApp提供了基础的Ar支持


平台兼容性

Android Android CPU类型 iOS
适用版本区间:7.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


安卓原生插件 Ar ARCore 增强现实

介绍

  • 这个插件为UniApp提供了基础的Ar支持

  • ARCore:据Google称,ARCore是增强现实的平台。

  • 实际上,ARCore可以帮助手机感知环境并与世界互动。

  • ARCore主要使用3个关键原理-运动跟踪,理解环境和光照估计。这是Google提供的支持ARCore的手机列表。

什么是 ARCore?

  • ARCore 是 Google 的平台,可让我们的手机感知环境、了解世界并与信息交互。并提供一些可跨 Android 和 iOS 设备访问的API ,从而实现共享的 AR 体验。

  • 以下是 ARCore 支持的设备要求。

  • IOS系统,需要苹果手机的系统在iOS 11.0 或更高版本上。

  • Android 系统,需要安卓手机设备的系统在 Android 7.0 或更高版本的 Android 系统。

  • 谷歌的 ARCore 文档是这样说的:“从根本上说,ARCore 做了两件事:在移动设备移动时跟踪它的位置,并建立它对现实世界的理解。”

  • 如果您正在寻找一些实际使用 ARCore 的示例,请查看这些使用 ARCore 的应用程序。其中一些应用 ARCore 来查看您自己空间中的电子商务产品的尺寸,例如宜家目录,而另一些则是基于娱乐的,例如星球大战 AR 游戏。

  • Scenform 1.16.0仅支持glTF文件。 glTF表示GL传输格式。

  • 现在

  • .glb文件是GL传输格式的二进制版本。这些类型的3d模型文件在VR,AR中使用,因为它支持运动和动画。

  • 对于3D模型,您必须获得一个.glb文件。

  • 有两种方法,您可以获取3D模型,从网上下载或自己制作3D模型。

  • 如果您想从网络上下载它,请转到由Google,poly提供的3d模型库,然后搜索任何glb文件。为您的项目下载其中任何一个。

  • 或者,获得3D计算机图形软件并自己制作3d模型。

原生插件通用使用流程

  • 1.购买插件,选择该插件绑定的项目。

  • 2.在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。

  • 3.根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。

  • 4.打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

  • 5.开发完毕后正式云打包

  • 6.付费原生插件目前不支持离线打包。

  • 7.Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android

  • 8.iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

  • 注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择

  • 本地调试,请打自定义基本包进行测试

  • 本地调试,请打自定义基本包进行测试

  • 本地调试,请打自定义基本包进行测试

  • 请先下载 googlePlay services for Ar

  • 请先下载 googlePlay services for Ar

  • 请先下载 googlePlay services for Ar

  • 下载地址

  • 您需要自己开发ar的模型GLB(以二进制格式存储模型描述)文件,示列中有默认的模型,您可以进行测试

  • 您可以从此地址(https://en.wikipedia.org/wiki/GlTF)处了解有关 glTF 的更多信息。

  • main.js

// ar 模型可以拖拽,双指旋转或者缩放
// AR全局方法

import arView from '@/utils/ar.js'
Vue.prototype.arView=arView
  • ar.js

  • ar 依赖于googlePlay services for Ar 的安装地址,如果手机没有,则走下载

  • 下载地址 http://www.j9p.com/azrj/536363.html

  • 这里可以把你现在好的googlePlay services for Ar 部署到自己的服务器上,在用户手机没有安装的时候,会自行下载

    var androidarModule = uni.requireNativePlugin("ArModule");
    let defaultHelpUrl='https://www.baidu.com/';
    let arAPKUrl="";
    export default {
    // modelUrl 模型地址 
    // planeFindingMode 平面寻找模式(平面,立面,平面和立面)
    // scale 缩放大小  0至1                                                    
    // transparency透明度    0至1(1为禁用)   
    // helpUrl 帮助页地址          
    // arcoreAPKUrl    ArCore安装地址(ArCore下载地址    )                                  
    androidArModal(modelUrl,planeFindingMode=1,scale=1,transparency=1,helpUrl=defaultHelpUrl,arcoreAPKUrl=arAPKUrl) {
        let info = {
            modelUrl: modelUrl,
            planeFindingMode: planeFindingMode,
            scale: scale,
            transparency: transparency,
            helpUrl: helpUrl,
            arcoreAPKUrl: arcoreAPKUrl
        }
        androidarModule.gotoNativePage(info)
    }
    }

需要使用的地方

async openARmodal() {
    switch (uni.getSystemInfoSync().platform) {
        case 'android':
            this.jumpToArView.androidArModal("https://file.zhongfangjinxiaocun.com/file/cp/affb31aaac42651dce54ce96c3114a2a.glb");
            break;
        case 'ios':
            console.log('ios版本,请购买另外一个插件')
            break;
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

相机权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问