次のようなものを探しています:
<Text>VERSION={CodePush.VersionLabel}</Text>
CodePush.VersionLabel は、「v6」のようなもので、code-push deployment ls <MyApp>
これをログイン画面の一番下に表示したいと思います。
次のようなものを探しています:
<Text>VERSION={CodePush.VersionLabel}</Text>
CodePush.VersionLabel は、「v6」のようなもので、code-push deployment ls <MyApp>
これをログイン画面の一番下に表示したいと思います。
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
)
これをカスタムフックとして使用する方法の例を次に示します。
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>
}