鸿蒙next判断程序安装后第一次启动,以及更新(覆盖安装)后第一次启动
目录
Android实现
iOS实现
鸿蒙next实现
鸿蒙获取包信息接口
真机调试后可以看到符合期望情况
额外问题
Android实现
https://juejin.cn/post/6844903728311435272
iOS实现
iOS小技巧13- 判断iOS App程序安装后第一次启动,更新后第一次启动_ios 数据持久化 判断是否第一次启动app-CSDN博客
鸿蒙next实现
类似安卓,鸿蒙的BundleInfo也提供了installTime和updateTime首次安装时这两个值相等,覆盖安装后updateTime会改变
团结引擎部分C#代码
/// <summary>
/// 判断是否第一次进入游戏,以及是否更新后第一次进入游戏
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static bool IsFirstTimeEnterGameHarmony(string key)
{
OpenHarmonyJSObject openHarmonyJsObject = new OpenHarmonyJSObject("FirstEnterGameCheck");
long lastUpdateTime = openHarmonyJsObject.Call<long>("CallToUnity");
string lastUpdateTimeKey = $"lastUpdateTime_{key}";
Debug.LogFormat("[TestTsPlugin.IsFirstTimeEnterGameHarmony] lastUpdateTimeKey:{0}, lastUpdateTime:{1}", lastUpdateTimeKey, lastUpdateTime);
if (!PlayerPrefs.HasKey(lastUpdateTimeKey))
{
PlayerPrefs.SetString(lastUpdateTimeKey, lastUpdateTime.ToString());
Debug.Log("[TestTsPlugin.IsFirstTimeEnterGameHarmony] first enter game");
return true;
}
long lastTime = Convert.ToInt64(PlayerPrefs.GetString(lastUpdateTimeKey));
if (lastTime != lastUpdateTime)
{
PlayerPrefs.SetString(lastUpdateTimeKey, lastUpdateTime.ToString());
Debug.Log("[TestTsPlugin.IsFirstTimeEnterGameHarmony] update enter game");
return true;
}
Debug.Log("[TestTsPlugin.IsFirstTimeEnterGameHarmony] not first enter game");
return false;
}
鸿蒙获取包信息接口
文档地址文档中心