1import axios from 'axios'; 2import {compare} from 'compare-versions'; 3import DeviceInfo from 'react-native-device-info'; 4 5const updateList = [ 6 'https://gitee.com/maotoumao/MusicFree/raw/master/release/version.json', 7 'https://raw.githubusercontent.com/maotoumao/MusicFree/master/release/version.json', 8 'https://cdn.jsdelivr.net/gh/maotoumao/MusicFree@master/release/version.json', 9]; 10 11interface IUpdateInfo { 12 needUpdate: boolean; 13 data: { 14 version: string; 15 changeLog: string[]; 16 download: string[]; 17 }; 18} 19 20export default async function checkUpdate(): Promise<IUpdateInfo | undefined> { 21 const currentVersion = DeviceInfo.getVersion(); 22 for (let i = 0; i < updateList.length; ++i) { 23 try { 24 const rawInfo = (await axios.get(updateList[i])).data; 25 if (compare(rawInfo.version, currentVersion, '>')) { 26 return { 27 needUpdate: true, 28 data: rawInfo, 29 }; 30 } 31 } catch {} 32 } 33} 34