>웹 프론트엔드 >uni-app >uniapp의 앱에서만 코드가 실행되는지 확인하는 방법

uniapp의 앱에서만 코드가 실행되는지 확인하는 방법

PHPz
PHPz원래의
2023-04-14 13:53:541427검색

모바일 애플리케이션의 급속한 발전으로 인해 크로스 플랫폼 개발 프레임워크가 개발자들 사이에서 점점 더 대중화되고 있습니다. Uniapp은 Vue.js 프레임워크를 기반으로 한 크로스 플랫폼 개발 프레임워크로서 현재 시장에서 많은 주목을 받고 있습니다. 하지만 유니앱에서는 코드가 웹 브라우저에서 실행되고 있는지, 앱에서 실행되고 있는지 확인해야 할 때가 있습니다. 이번 글에서는 유니앱에서 해당 코드가 앱에서만 실행되는지 확인하는 방법을 소개하겠습니다.

첫 번째 방법: 내비게이션 바를 사용하여 표시 및 숨기기

유니앱의 내비게이션 바는 앱 내비게이션 바와 웹 내비게이션 바의 두 가지 방법으로 구분됩니다. 프로젝트에서는 이 기능을 사용하여 판단을 내릴 수 있습니다.

코드는 다음과 같이 구현됩니다.

uni.onNavigationBarChange((res) => {
  if (res.type === 'show') {
    console.log('在App中运行')
  } else {
    console.log('在Web浏览器中运行')
  }
})

앱 측에서는 기본적으로 네비게이션 바가 표시되므로, 네비게이션 바가 표시되면 코드는 앱에서 실행 명령문을 실행합니다. 웹 브라우저에서 접속하면 기본적으로 탐색 표시줄이 숨겨집니다. 웹 브라우저에서 실행 문을 실행하세요. 참고: 이 방법을 사용하려면 페이지 내에서 탐색 모음을 활성화해야 합니다. 在App中运行的语句。当在Web浏览器中访问时,导航栏默认是隐藏的,执行在Web浏览器中运行语句。注意:此方法需要在页面内启用导航栏。

第二种方法:利用uni.getSystemInfoSync

uni.getSystemInfoSync方法可以获取设备信息,通过获取设备信息中的platform属性来判断。

代码实现如下:

const systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform === 'android' || systemInfo.platform === 'ios') {
  console.log('在App中运行')
} else {
  console.log('在Web浏览器中运行')
}

在App中运行时,platform属性返回的是android或者ios,所以执行在App中运行的语句,当在Web浏览器中访问时,返回的是h5,执行在Web浏览器中运行语句。

第三种方法:利用uni.postMessageonmessage

通过向自己页面发送消息,然后在onmessage中获取消息,通过判断消息来源来确定代码在App或者Web端运行。

代码实现如下:

// 发送消息
uni.postMessage({ from: 'uniapp' })

// 监听消息
window.onmessage = (event) => {
  if (event.data.from === 'uniapp') {
    console.log('在App中运行')
  } else {
    console.log('在Web浏览器中运行')
  }
}

在App中运行时,postMessage发送的消息来源为uniapp,所以执行在App中运行的语句,当在Web浏览器中访问时,由于没有调用postMessage

두 번째 방법: uni.getSystemInfoSync

uni.getSystemInfoSync 메서드를 사용하여 장치 정보를 가져옵니다. 이는 장치 정보에서 platform 속성을 ​​가져옴으로써 확인할 수 있습니다.

코드는 다음과 같이 구현됩니다.

rrreee

App에서 실행 시 platform 속성이 android 또는 ios를 반환하므로 를 실행합니다. > "Run in App" 문은 웹 브라우저에서 액세스할 때 h5를 반환합니다. "Run in App" 문을 실행하세요. 🎜🎜세 번째 방법: uni.postMessageonmessage🎜🎜를 사용하여 자신의 페이지에 메시지를 보낸 다음 onmessage에서 메시지를 가져옵니다. >, 메시지 소스를 판단하여 코드가 앱 측에서 실행되고 있는지 웹 측에서 실행되고 있는지 확인하세요. 🎜🎜코드는 다음과 같이 구현됩니다. 🎜rrreee🎜App에서 실행 시 postMessage에서 보내는 메시지의 소스가 uniapp이므로 Run in App을 실행합니다. 문은 웹 브라우저에서 액세스할 때 postMessage 메서드가 호출되지 않으므로 문이 실행되지 않습니다. 🎜🎜요약: 🎜🎜위의 세 가지 방법을 통해 코드가 앱에서만 실행되는지 더 정확하게 판단할 수 있습니다. 실제 개발에서는 프로젝트 요구에 따라 적절한 방법을 선택할 수 있습니다. 첫 번째 방법을 사용할 때는 페이지에서 탐색 표시줄을 활성화해야 합니다. 🎜🎜Uniapp에는 강력한 기능과 특징이 많이 있으며, 이는 크로스 플랫폼 개발에서 인기가 있는 이유 중 하나입니다. 이 글이 Uniapp 개발자들에게 도움이 되기를 바랍니다. 🎜

위 내용은 uniapp의 앱에서만 코드가 실행되는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.