我正在使用 LocalState 文件夹为我的 Windows 8 应用程序启用缓存。为了提供示例数据(应用程序使用 web 服务来收集它的数据),我想提供一组已经缓存的默认数据。
我可以为将在应用程序包中的 LocalState 提供示例数据吗?
我正在使用 LocalState 文件夹为我的 Windows 8 应用程序启用缓存。为了提供示例数据(应用程序使用 web 服务来收集它的数据),我想提供一组已经缓存的默认数据。
我可以为将在应用程序包中的 LocalState 提供示例数据吗?
您可以将文件放入您的包中,然后在启动时检查本地文件夹中是否已有数据,如果没有,请从包存储中复制/填充它(例如,请参阅CopyAsync)。如果是这样,什么也不做。
这是一些示例 JS 代码 - 应该能够相当容易地转换为 .NET - 使用 async/await 代替 Promises。
WinJS.Application.local.exists('somedata.json').done(
function (found) {
if (!found) {
return copyStartData('somedata.json');
}
}
);
function copyStartData(copyfile) {
return Windows.ApplicationModel.Package.current.installedLocation.getFolderAsync('startdata').then(
function (startData) {
return startData.getFileAsync(copyfile).then(
function (file) {
if (file) {
return file.copyAsync(WinJS.Application.local.folder);
}
});
});
}
该函数采用您要从安装包复制到用户本地计算机的文件的名称。