- 将版本号从"1.0"修改为"1.0.0" - 在主界面添加退出登录功能 - 使用 react-native-device-info 获取设备信息 - 更新 API 请求头中的设备信息获取方式 - 移除 User 类中冗余的 deviceInfo 字段
192 行
5.8 KiB
TypeScript
192 行
5.8 KiB
TypeScript
import React, { useState } from 'react';
|
|
import {
|
|
Button,
|
|
Linking,
|
|
Platform,
|
|
ScrollView,
|
|
StyleSheet,
|
|
Text,
|
|
View,
|
|
} from 'react-native';
|
|
import { Apps, NavigationPushByName } from '@common/NavigationHelper.ts';
|
|
import { showMessage } from '@common/ToastHelper.ts';
|
|
import Alert from '@common/components/Alert.tsx';
|
|
import { version_common } from '@common/common.ts';
|
|
import { downloadToFile } from '@common/UpdateHelper.ts';
|
|
import UpdateManager from '../../../../specs/NativeUpdateManager.ts';
|
|
import Spinner from '@common/components/Spinner.tsx';
|
|
import RNFS from 'react-native-fs';
|
|
import { useAuth } from '@common/contexts/useAuth.ts';
|
|
import DeviceInfo from 'react-native-device-info';
|
|
|
|
export default function MainViewScreen() {
|
|
const [progress, setProgress] = useState('');
|
|
const [progressH, setProgressH] = useState('');
|
|
const [isLoading, setLoading] = useState(false);
|
|
|
|
const {
|
|
actions: { logout },
|
|
} = useAuth();
|
|
|
|
console.log('>>>>', DeviceInfo.getVersion());
|
|
|
|
return (
|
|
<View style={styles.container}>
|
|
<ScrollView>
|
|
<>
|
|
<Text style={{ fontSize: 20, marginVertical: 15 }}>
|
|
小程序跳转以及公共组件
|
|
</Text>
|
|
<Button
|
|
title={`进入互联网医院(前台)${isLoading ? progressH : ''}`}
|
|
onPress={() => {
|
|
setLoading(true);
|
|
downloadToFile(
|
|
'https://download-api.51trust.com/ywx-android-sdk/buz1.android.zip',
|
|
'buz1.android.zip',
|
|
(bytesWritten, contentLength) => {
|
|
setProgressH(
|
|
`进度: ${((bytesWritten / contentLength) * 100).toFixed(
|
|
2,
|
|
)}%`,
|
|
);
|
|
},
|
|
)
|
|
.then(() => {
|
|
NavigationPushByName(Apps.Hospital, {});
|
|
})
|
|
.finally(() => {
|
|
setLoading(false);
|
|
});
|
|
}}
|
|
/>
|
|
<View style={{ height: 15 }} />
|
|
<Button
|
|
title={`进入医网签(后台)`}
|
|
onPress={() => {
|
|
NavigationPushByName(Apps.Ywq, {});
|
|
}}
|
|
/>
|
|
<View style={{ height: 15 }} />
|
|
<Button
|
|
title={'Toast'}
|
|
onPress={() => {
|
|
showMessage('APP页面弹出toast');
|
|
}}
|
|
/>
|
|
<View style={{ height: 45 }} />
|
|
<Button
|
|
title={'应用更新模拟'}
|
|
onPress={() => {
|
|
Alert.show(
|
|
'提示',
|
|
<Text style={styles.alertText}>
|
|
有新版本可以更新,确定更新吗?
|
|
</Text>,
|
|
{
|
|
action: () => {
|
|
if (Platform.OS === 'ios') {
|
|
Linking.openURL(
|
|
'https://apps.apple.com/cn/app/%E5%8C%BB%E7%BD%91%E4%BF%A1/id1074200788',
|
|
);
|
|
return;
|
|
}
|
|
Linking.openURL('https://www.51trust.com/download.html/');
|
|
},
|
|
},
|
|
{
|
|
action: () => {},
|
|
},
|
|
);
|
|
}}
|
|
/>
|
|
<View style={{ height: 45 }} />
|
|
<Text>
|
|
基础包版本号{version_common}
|
|
{isLoading ? `(${progress})` : ''}
|
|
</Text>
|
|
<View style={{ height: 15 }} />
|
|
<Button
|
|
title={'基础包前台更新'}
|
|
onPress={() => {
|
|
Alert.show(
|
|
'提示',
|
|
<Text style={styles.alertText}>
|
|
有新版本可以更新,确定更新吗?
|
|
</Text>,
|
|
{
|
|
action: () => {
|
|
setLoading(true);
|
|
downloadToFile(
|
|
'https://download-api.51trust.com/ywx-android-sdk/common1.android.zip',
|
|
'common1.android.zip',
|
|
(_bytesWritten, _contentLength, pro) => {
|
|
setProgress(`进度: ${pro}%`);
|
|
},
|
|
)
|
|
.then(() => {
|
|
UpdateManager.reload();
|
|
})
|
|
.finally(() => {
|
|
setLoading(false);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
action: () => {},
|
|
},
|
|
);
|
|
}}
|
|
/>
|
|
<View style={{ height: 15 }} />
|
|
<Button
|
|
title={'基础包后台更新'}
|
|
onPress={() => {
|
|
downloadToFile(
|
|
'https://download-api.51trust.com/ywx-android-sdk/common2.android.zip',
|
|
'common2.android.zip',
|
|
(bytesWritten, contentLength) => {
|
|
setProgress(
|
|
`进度: ${((bytesWritten / contentLength) * 100).toFixed(
|
|
2,
|
|
)}%`,
|
|
);
|
|
},
|
|
).then(() => {
|
|
Alert.show(
|
|
'提示',
|
|
<Text style={styles.alertText}>
|
|
更新成功,下次启用应用生效
|
|
</Text>,
|
|
{},
|
|
);
|
|
});
|
|
}}
|
|
/>
|
|
<View style={{ height: 45 }} />
|
|
<Text>{`${RNFS.ExternalDirectoryPath}/bundles/`}</Text>
|
|
<View style={{ height: 55 }} />
|
|
<Button
|
|
title={'退出登录'}
|
|
onPress={() => {
|
|
logout();
|
|
}}
|
|
/>
|
|
</>
|
|
</ScrollView>
|
|
{isLoading && <Spinner />}
|
|
</View>
|
|
);
|
|
}
|
|
|
|
const styles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
},
|
|
alertText: {
|
|
textAlign: 'center',
|
|
color: '#999999',
|
|
fontSize: 12,
|
|
},
|
|
});
|