| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import Constants from 'expo-constants';
- import * as Linking from 'expo-linking';
- import { Alert, Platform, BackHandler } from 'react-native';
- // import * as Updates from 'expo-updates';
- export function checkVersion(fetchedVersion: { version: string; isActive: boolean }) {
- const currentVersion = Constants.expoConfig?.version;
- if (!fetchedVersion.isActive) {
- Alert.alert(
- '伺服器維護中,敬請見諒',
- '',
- [
- {
- text: '確認',
- onPress: () => {
- if (Platform.OS === 'android') {
- BackHandler.exitApp();
- } else {
- return;
- }
- }
- }
- ],
- { cancelable: false }
- );
- // Prevent any further code execution
- throw new Error('MAINTENANCE_MODE');
- }
- function compareVersions(v1: string, v2: string): boolean {
- const v1Parts = v1.split('.').map(Number);
- const v2Parts = v2.split('.').map(Number);
- for (let i = 0; i < v1Parts.length; i++) {
- if (v1Parts[i] < v2Parts[i]) return true;
- if (v1Parts[i] > v2Parts[i]) return false;
- }
- return false;
- }
- // if (currentVersion && currentVersion < fetchedVersion.version) {
- if (currentVersion && compareVersions(currentVersion, fetchedVersion.version)) {
- Alert.alert(
- '請更新到最新版本',
- 'Please update to the latest version of the app to continue.',
- [
- {
- text: '現在更新',
- onPress: () => {
- const url =
- Platform.OS === 'ios'
- ? 'https://apps.apple.com/hk/app/crazycharge-pro/id6748374363'
- : 'https://play.google.com/store/apps/details?id=hk.ayf.crazycharge';
- Linking.openURL(url);
- }
- },
- { text: '取消', style: 'cancel' }
- ],
- { cancelable: false }
- );
- }
- }
|