18

次のようなものを探しています: <Text>VERSION={CodePush.VersionLabel}</Text>

CodePush.VersionLabel は、「v6」のようなもので、code-push deployment ls <MyApp>

これをログイン画面の一番下に表示したいと思います。

4

4 に答える 4

30
componentDidMount(){
    codePush.getUpdateMetadata().then((metadata) =>{
      this.setState({label: metadata.label, version: metadata.appVersion, description: metadata.description});
    });
}

render() {
    return(
        <Text>{this.state.version}.{this.state.label}</Text>
    );
}

注:.labelプロパティは、CodePush によって使用される内部ビルド番号です (例: v24)

于 2016-10-02T05:39:38.527 に答える
2

これをカスタムフックとして使用する方法の例を次に示します。

1.フックを準備する

import { useEffect, useState } from 'react'
import codePush from 'react-native-code-push'
import DeviceInfo from 'react-native-device-info'

async function getOTAVersion() {
  try {
    const update = await codePush.getUpdateMetadata()

    return update ? update.label : null
  } catch (error) {
    return null
  }
}

export function useOTAVersion() {
  const [appVersion, setAppVersion] = useState(DeviceInfo.getReadableVersion())

  useEffect(() => {
    getOTAVersion().then((OTAVersion) => {
      if (OTAVersion) {
        setAppVersion(`${appVersion}/${OTAVersion}`)
      }
    })
  }, [])

  return { appVersion }
}

2. 機能部品内でフックを使用する

import { useOTAVersion } from 'your/hooks'

const CmpExample = () => {
  const { appVersion } = useOTAVersion()

  return <Text>{appVersion}</Text>
}
于 2020-11-18T16:12:43.377 に答える