当前位置: 首页 > article >正文

鸿蒙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;
        }

鸿蒙获取包信息接口

文档地址文档中心

真机调试后可以看到符合期望情况

额外问题


http://www.kler.cn/a/400395.html

相关文章:

  • 如何在 Ubuntu 上安装 Jupyter Notebook
  • 近几年新笔记本重装系统方法及一些注意事项
  • 跨平台WPF框架Avalonia教程 一
  • 网络协议之UDP
  • 前端处理input框只能输入带小数点的数字
  • 深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
  • Git 修改用户名(user.name)和用户邮件地址(user.email)的方法和作用
  • 视频对接rtsp协议学习
  • CSS盒子的定位>(上篇)#定位属性#相对定位-附练习
  • 线代笔记期末复习
  • 递归(3)----力扣40组合数2,力扣473火柴拼正方形
  • 最长连续序列
  • docker使用,docker图形化界面+docker详细命令
  • VBA学习笔记:点击单元格显示指定的列
  • Linux网络:基于文件的网络架构
  • Object.defineProperty和响应式
  • 学习笔记025——Git基本基本命令
  • tcp 超时计时器
  • NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标
  • 华为OD机试-日志采集 E100
  • 线程(二)【线程控制】
  • YOLOv7-0.1部分代码阅读笔记-test.py
  • 使用Python编写一个简单的网站爬虫,从网站上抓取新闻标题和链接。
  • Bufferevent and SSL
  • 利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
  • Gin HTML 模板渲染