鸿蒙next判断程序安装后第一次启动,以及更新(覆盖安装)后第一次启动

ops/2024/11/19 13:54:51/

目录

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.ppmy.cn/ops/134989.html

相关文章

c#加载shellcode

本地加载bin文件 SharpPELoader项目如下&#xff1a; using System; using System.IO; using System.Runtime.InteropServices;namespace TestShellCode {internal class Program{private const uint MEM_COMMIT 0x1000;private const uint PAGE_EXECUTE_READWRITE 0x40;pr…

单例模式(Singleton)

一、单例模式 1、相关知识&#xff1a; 内容&#xff1a;保证一个类只有一个实例&#xff0c;并提供一个访问它的全局访问点&#xff1b;其保证了在程序的不同位置都可以且仅可以取到同一个对象实例。 使用场景&#xff1a;当类只能有一个实例而且用户从多个地方访问同一个类的…

Ekman理论回归

Scientific reportsEkman revisited: Surface currents to the left of the winds in the Northern HemisphereVagn Walfrid Ekman1905年的理论描述了地球旋转受到风的作用&#xff0c;摩擦边界层中的流场&#xff0c;北半球总是在海表风的右侧&#xff0c;南半球总是在海表风的…

使用 OpenAI 提高 Appium 测试脚本效率:从优化到跨平台支持

#自动化测试工程师在使用 Appium 进行移动端测试时&#xff0c;经常需要面对以下挑战&#xff1a; 测试脚本结构混乱&#xff0c;难以维护和复用。复杂交互场景&#xff08;如滑动、拖拽&#xff09;脚本难以编写和调试。跨平台测试需要解决设备兼容性和平台差异。 本文将结合…

MATLAB矩阵中元素的引用

建立矩阵后&#xff0c;我们在用矩阵元素的时候也会用到很多操作&#xff1a; 引用元素 分号前面的表示行&#xff0c;后面表示列 a ( m , n ) a(m,n) a(m,n)取出第 m m m行第 n n n列的元素 a ( [ m , n ] , e n d ) a([m,n],end) a([m,n],end)取出第 m m m行到第 n n n行最…

SpringBoot多环境+docker集成企业微信会话存档sdk

SpringBoot多环境docker集成企业微信会话存档sdk 文章来自于 https://developer.work.weixin.qq.com/community/article/detail?content_id16529801754907176021 SpringBoot多环境docker集成企业微信会话存档sdk 对于现在基本流行的springboot环境&#xff0c;官方文档真是比…

JavaScript:DOM节点操作

DOM节点操作 节点操作的概述如下&#xff1a; &#xff08;1&#xff09;创建节点&#xff1a;可以使用 DOM 提供的方法来创建新的节点&#xff0c;例如使用 createElement 方法创建元素节点&#xff0c;使用 createTextNode 方法创建文本节点等。 &#xff08;2&#xff09;添…