更新记录
0.12(2023-05-29)
为UniApp提供了基础的Ar支持
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:7.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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;
}
}