API uni-app para obter informações do sistema (altura, largura) uso e empacotamento

O uni-app fornece duas APIs assíncronas (uni.getSystemInfo) e síncronas (uni.getSystemInfoSync) para obter informações do sistema

endereço de resolução do site oficial do uniapp

uni.getSystemInfo

Obter informações do sistema de forma assíncrona

nome do parâmetro tipo obrigatório ilustrar
sucesso Função sim Retorno de chamada para chamada de interface bem-sucedida
falhar Função não Função de retorno de chamada para falha de chamada de interface
completo Função não A função de retorno de chamada do fim da chamada de interface (a chamada será executada com sucesso ou com falha)

success retorna outros parâmetros (veja o site oficial para detalhes)
insira a descrição da imagem aqui

Perceber:

  • Altura da tela = altura nativa do NavigationBar (incluindo altura da barra de status) + altura utilizável da janela + altura nativa do TabBar
  • windowHeight não contém a altura de NavigationBar e TabBar
  • No lado da web, windowTop é igual à altura de NavigationBar e windowBottom é igual à altura de TabBar
  • No lado do aplicativo, windowTop é igual à altura do NavigationBar no estado transparente e windowBottom é igual à altura do TabBar no estado transparente
  • Informações de alta relevância devem ser obtidas no onReady. Muito cedo para obtê-lo. A unidade de altura e largura é px
uni.getSystemInfo({
    
    
	success: function(res) {
    
    
		// *****高度宽度的单位都是px 
		console.log(res.screenHeight); // 屏幕高度,包含导航栏
		console.log(res.windowHeight); // 能够使用的窗口高度,不包含导航栏
		console.log(res.screenWidth); // 屏幕宽度
		console.log(res.windowWidth); //  能够使用的窗口宽度
		console.log("windowHeight:",res.windowHeight)	
		let windowHeight = res.windowHeight;
	}
})

uni.getSystemInfoSync

Uma interface síncrona para obter informações do sistema. Os parâmetros de chamada e o valor de retorno são os mesmos de getSystemInfo acima.

uni.getSystemInfoSync({
    
    
	success: function(res) {
    
    
		// *****高度宽度的单位都是px 
		console.log(res.screenHeight); // 屏幕高度,包含导航栏
		console.log(res.windowHeight); // 能够使用的窗口高度,不包含导航栏
		console.log(res.screenWidth); // 屏幕宽度
		console.log(res.windowWidth); //  能够使用的窗口宽度
		console.log("windowHeight:",res.windowHeight)	
		let windowHeight = res.windowHeight;
	}
})

Encapsulamento do método para obter a altura da área ativa

/**
 * 获取活动区域高度
 * @param { nodeName } 节点名字
 * @param { nodeHeight } 节点高度
 * @param { nodeMPHeight } 节点margin 和 padding 的高度
 * 
 */
function getHeight(nodeName, nodeHeight = 0,nodeMPHeight = 0) {
    
    
	let pageHeight = uni.getSystemInfoSync().windowHeight; // 获取当前页面的高度
	console.log("pageHeight: ",pageHeight)
	// 获取结节高度方法
	//  #ifdef H5
	const query = uni.createSelectorQuery();
	//  #endif
	//  #ifdef APP
	const query = uni.createSelectorQuery().in(this)
	//  #endif
	// 获取当前结节高度值
	let nHeight = nodeHeight
	query
		.select(nodeName)
		.boundingClientRect(data => {
    
    
			console.log("data.height: ",data.height)
			nHeight = data.height
		})
		.exec();
	let nowHeight =  pageHeight - nHeight - nodeMPHeight
	console.log("nowHeight",nowHeight)
	return nowHeight + 'px'
}

2. 调用
/**
 * 获取滚动高度--高度相关信息,要放在 onReady 里获取,太早取不到;
 * 单位都是px
 * 将rpx单位值转换成px
 * uni.upx2px(600) + 'px';
 * */			 
this.h = this.getHeight('#content-head', 0, uni.upx2px(20));

Acho que você gosta

Origin blog.csdn.net/weixin_44897255/article/details/129439390
Recomendado
Clasificación