背景:
canvas应用虽然有提示应用更新,但在用户端没有展示用户的应用版本,无法知道应用是否为最新版本。
方案:
鉴于canvas目前的能力,可以查询到APP的版本历史,有powerapps版本号和修改时间,那么可以使用本地缓存,在用户首次使用APP时,将最新的版本号/修改时间保存到用户手机端本地存储中,同时展示服务器端的最新版本/修改时间,这样就可以对比出用户本地的版本。
但当用户点击应用更新提示将应用更新为最新的版本后,本地存储的版本不会自动更新,除非用户清除本地缓存,清除本地缓存后,用户本地版本与服务器版本就会保持一致。当版本号一致时,可以确认用户的本地版本是最新版。
具体做法:
使用一个屏幕(例如“关于/更多”)去展示APP的版本信息,当屏幕显示时,运行以下公式:
LoadData(
AppInfo,
"MyPowerAppsCache",
true
);
UpdateContext({serverVer:Text(
First(
PowerAppsforMakers.GetAppVersions(
LookUp(
PowerAppsforMakers.GetApps().value,
properties.displayName = "Tim Canvas",
name
)
).value
).properties.appVersion)
});
UpdateContext(
{
localVer: If(
IsEmpty(AppInfo) Or IsBlank(First(AppInfo).ver),
serverVer,
Text(First(AppInfo).ver)
)
}
);
ClearCollect(
AppInfo,
{ver: Text(localVer)}
);
SaveData(
AppInfo,
"MyPowerAppsCache"
);
说明:serverVer变量存储服务器最新版本,localVer变量存储本地版本信息。优先从本地获取版本信息,如果为空,则从服务器获取,获取后重新存储到本地。
需要添加Connector"PowerAppsforMakers"