uniapp微信小程序使用xr加载模型

1.在根目录与pages同级创建如下目录结构和文件:

// index.js
Component({
	properties: {
		modelPath: { // vue页面传过来的模型
			type: String,
			value: ''
		}
	},
	data: {},
	methods: {}
})
{ // index.json
	"component": true,
	"renderer": "xr-frame",
	"usingComponents": {}
}
<!-- index.wxml -->
<!-- 加载静态模型 -->
 <xr-scene render-system="alpha:true" bind:ready="handleReady">
  <xr-node>
    <xr-light type="ambient" color="1 1 1" intensity="2" />
    <xr-light type="spot" position="3 3 3" color="1 1 1" range="3" intensity="5" />
    <xr-assets>
		<!--  options="ignoreError:-1" -->
      <xr-asset-load type="gltf" asset-id="gltf-model" src="{{modelPath}}"/>
    </xr-assets>
    <xr-gltf scale="0.7 0.7 0.7" node-id="gltf-model" bind:gltf-loaded="handleGLTFLoaded" model="gltf-model"></xr-gltf>
  </xr-node>
  <xr-camera id="camera"  clear-color="0 0 0 0" position="1 1 2" target="gltf-model" camera-orbit-control/>
 </xr-scene>

2.pages.json配置

{
				"path": "pages/resource/preview/preview",
				"style": {
					"navigationBarTitleText": "效果预览",
					"enablePullDownRefresh": false,
					"navigationBarBackgroundColor": "#73ceda",
					"usingComponents": {
						"xr-start": "/wxcomponents/xr-start"
					},
					"disableScroll": true
				}
			}

3.manifest.json配置

"mp-weixin": {
		"appid": "自己的appid",
		"setting": {
			"urlCheck": false,
			"postcss": true,
			"es6": true,
			"minified": true,
			"ignoreDevUnusedFiles": false,
			"ignoreUploadUnusedFiles": false
		},
		"usingComponents": true,
		"lazyCodeLoading": "requiredComponents"
	},

4.使用preview.vue

<template>
	<view style="display: flex;flex-direction: column;">
		<xr-start :modelPath="modelPath" id="main-frame" disable-scroll :width="renderWidth" :height="renderHeight"
			:style="'width:'+width+'px;height:'+height+'px;'">
		</xr-start>
	</view>
</template>

<script>
	export default {
		onLoad(option) {
			this.modelPath = option.modelPath;
			this.width = uni.getWindowInfo().windowWidth
			this.height = uni.getWindowInfo().windowHeight
			const dpi = uni.getWindowInfo().pixelRatio
			this.renderWidth = this.width * dpi
			this.renderHeight = this.height * dpi
		},
		data() {
			return {
				width: 300,
				height: 300,
				renderWidth: 300,
				renderHeight: 300,
				modelPath: ''
			}
		},
		methods: {}
	}
</script>

<style>
</style>

不占主包空间(可以忽略)

5.后续出现报错:

需要在app.json添加一行配置"lazyCodeLoading": "requiredComponents",以下是uniappp中配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: uniapp 是一种跨平台开发框架,支持多个小程序平台的开发,包括微信小程序。而 echarts 是一种非常强大的数据可视化工具,能够轻松地将数据转化成图形化的展示方式,方便用户进行数据的分析和理解。 在使用 uniapp 开发微信小程序时,可以通过引入 echarts 库的方式,在小程序中使用 echarts 进行数据可视化的展示。首先,在 uniapp 中安装 echarts 库,然后在需要使用 echarts 的页面中引入 echarts 库,可以直接在引入的页面中使用 echarts 的 API 进行图表的创建和展示。 同时也需要注意的是,在使用 echarts 进行数据可视化展示时,要根据实际情况选择合适的图表类型,以达到最好的展示效果。另外还需要根据项目的实际需求,对数据进行预处理和格式化,确保数据的准确性和可读性。 总之,使用 uniapp 开发微信小程序使用 echarts 进行数据可视化,并非难事,只需按照 echarts 的 API 进行开发即可。如此一来,开发者便可轻松地创建优美而实用的图表,完美呈现出数据的内在价值。 ### 回答2: uniapp 是一种跨平台开发框架,可以同时支持微信小程序、H5、安卓、iOS等平台。而 Echarts 是一款优秀的数据可视化工具,可以将数据以图表的形式展示出来,支持多种图表类型和交互方式。那么在 uniapp 中如何使用 echarts 呢? 首先,在 uniapp 中引入 echarts 库。可以使用 npm 安装 echarts,也可以直接下载 echarts.js 文件并放置在项目中。 然后,在需要使用 echarts 的页面或组件中,引入并初始化 echarts。可以在页面或组件的 onReady 或 mounted 生命周期中进行初始化。具体步骤如下: 1. 引入 echarts 库 ``` import * as echarts from 'echarts'; ``` 2. 初始化 echarts ``` onReady() { let myChart = echarts.init(this.$refs.chart); myChart.setOption({...}); // 设置图表的配置项和数据 } ``` 其中,`this.$refs.chart` 是一个 div 元素,用来承载图表。 3. 设置图表的配置项和数据 ``` let option = { title: {...}, legend: {...}, xAxis: {...}, yAxis: {...}, series: {...} }; myChart.setOption(option); ``` 配置项和数据决定了图表的样式和内容,可以根据自己的需求进行设置。 需要注意的是,微信小程序有一些特殊的限制,如不能使用动态的 DOM,因此echarts的一些动态特效不能使用。同时,echarts 也只能显示在固定大小的画布上,不能根据屏幕大小自适应调整。 总结来说,使用 echarts 在 uniapp 中的流程是:引入库、初始化 echarts、设置配置项和数据。需要特别注意微信小程序的限制,对一些动态特效或屏幕适应做出相应的调整。通过这些步骤,可以让我们在 uniapp 中轻松使用 echarts 进行数据可视化。 ### 回答3: 在uniapp中可以使用echarts来实现数据可视化的效果,适用于各种类型的微信小程序。 首先,在uniapp项目中引入echarts组件库,可以使用npm或手动下载方式引入。先安装echarts组件库,然后通过uni_modules目录下的uni-mpvue-router-patch插件引入,最后通过Vue.use()进行注册。 接下来,在需要使用echarts的页面引入echarts组件,并使用template标签来编写echarts图表的HTML模板。其中,通过echarts.init()初始化echarts,使用option配置项来配置图表的样式和数据。 最后,在vue页面组件中导入数据,并在echarts实例的setOption()方法中更新图表数据。此时,页面中的echarts图表便会根据更新后的数据来重新绘制。 需要注意的是,在使用echarts时,应该了解相关API和样式配置,以便更好地使用其功能,实现所需的数据可视化效果。 总之,通过以上步骤,可以在uniapp微信小程序中实现使用echarts进行数据可视化的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只大菜鸟J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值