React Native(含Expo环境)如何获取用户安装应用的日期?
解决方案
Expo 没有内置的专用于获取应用安装日期的独立模块,但可以通过以下两种成熟方案实现需求:
方案1:使用官方维护的 expo-application 库直接获取安装时间
这个库是Expo官方生态的原生能力封装模块,无需修改原生配置即可直接调用,支持Expo Go环境调试。
- 安装依赖
npx expo install expo-application - 调用示例
import * as Application from 'expo-application'; // 直接返回应用安装时间的Date对象 const appInstallDate = Application.installationTime; console.log('应用安装日期:', appInstallDate.toLocaleDateString());
注意:该时间会在用户覆盖安装/更新应用时刷新为最新的安装时间,无法获取用户首次安装的原始日期。
方案2:本地持久化存储记录首次启动时间
如果需要保留用户首次安装启动的时间,不受应用更新影响,可以通过本地存储实现:
- 逻辑说明:应用首次启动时将当前时间写入持久化存储,后续启动直接读取存储的值即可
- 安装依赖(以
expo-secure-store为例,也可替换为AsyncStorage等其他本地存储方案)npx expo install expo-secure-store - 调用示例
import * as SecureStore from 'expo-secure-store'; const getFirstInstallTime = async () => { const savedTime = await SecureStore.getItemAsync('first_install_timestamp'); if (savedTime) { return new Date(Number(savedTime)); } // 首次启动,写入当前时间戳 const currentTime = Date.now(); await SecureStore.setItemAsync('first_install_timestamp', String(currentTime)); return new Date(currentTime); }; // 调用方法获取首次安装时间 getFirstInstallTime().then(date => { console.log('首次安装启动时间:', date.toLocaleString()); });
注意:该方案会在用户卸载重装应用时清空存储的时间,若需要跨卸载重装保留数据,可将用户唯一标识和对应首次安装时间同步存储到自有后端。
内容的提问来源于stack exchange,提问作者NQQ
相关产品推荐
相关产品推荐

