本地存储 API

借助本地存储 API,可以在浏览器的本地存储中存储数据。 若要使用本地存储 API,必须启用客户的本地存储管理员开关

本地存储是独立的,因此每种类型的视觉对象都有其自己单独的存储访问权限。

注意

开发人员有责任确保存储的数据符合使用者的组织策略,并告知用户存储了什么信息(如果数据的敏感度需要)。 具体而言,如果业务目标或方案需要,自定义视觉对象开发人员应加密数据。

如何使用本地存储

此版本的本地存储 API 已计划弃用。 我们不会再接受任何请求。 如果可能,请使用版本 2。

在以下示例中,只有调用 update 方法,计数器值就会增加。 计数器值保存在本地,并在每次启动视觉对象时调用。 这样,每次启动视觉对象时,计数器就会从停止的地方开始计数,而不是从头开始:

export class Visual implements IVisual {
        // ...
        private updateCountName: string = 'updateCount';
        private updateCount: number;
        private storage: ILocalVisualStorageService;
        // ...

        constructor(options: VisualConstructorOptions) {
            // ...
            this.storage = options.host.storageService;
            // ...

            this.storage.get(this.updateCountName).then(count =>
            {
                this.updateCount = +count;
            })
            .catch(() =>
            {
                this.updateCount = 0;
                this.storage.set(this.updateCountName, this.updateCount.toString());
            });
            // ...
        }

        public update(options: VisualUpdateOptions) {
            // ...
            this.updateCount++;
            this.storage.set(this.updateCountName, this.updateCount.toString());
            // ...
        }
}

注意事项和限制

  • 本地存储限制为每个 GUID 1 mb。
  • 只能在具有相同 GUID 的视觉对象之间共享数据。
  • 不能与 Power BI Desktop 的其他实例共享数据。
  • 默认情况下,本地存储 API 处于未激活状态。 要为 Power BI 视觉对象激活它,请将请求发送到 Power BI 视觉对象支持团队 pbicvsupport@microsoft.com
  • 本地存储 API 不支持 await 构造。 仅允许 thencatch 方法。

视觉对象应在 AppSource 中可用且经过认证