0

我正在尝试在 PowerApps 门户中显示来自 Dataverse 的图像属性。我知道文档说这不是官方支持的 我看过一些非官方指南,例如https://www.itaintboring.com/powerapps/lets-show-an-image-on-the-power-apps-portal -form -too/这似乎很有希望。

我对该解决方案的唯一问题是它需要门户中的硬编码 URL,这对我们不起作用,因为我们有一个具有多个环境的 CD 管道。还有另一种方法可以做到这一点吗?或者我可以以某种方式查询 URL 而不是硬编码它吗?

4

1 回答 1

0

我没有足够的声誉来添加评论,所以我将其发布为答案。

  1. 您可以检索支持的 image_url 列值。URL 存储在支持的 imageColumn_url 列中。完整的 URL 应该是这样的 {organization_URL}/image/download.aspx?entity={table_name}&attribute={column_name}&id={entityImageId}×tamp={image_timestamp} 并且可以用作 img 标签中的 src。

  2. 在 img 标签中设置 data-entityimage 为 image 列。在窗口加载时将实体图像转换为 base64 源。

     <img data-entityimage="{{ imageColumn | join: ',' }}"  />
    

    函数 toBase64(str) { if (!str) return null; var uarr = new Uint8Array(str.split(',').map(function (x) { return parseInt(x); })); 返回 btoa(String.fromCharCode.apply(null, uarr)); }

     window.addEventListener('load', function () {
        document.querySelectorAll('img[data-entityimage]').forEach(function (img) {
            var data = img.dataset && img.dataset.entityimage;
            var base64data = data ? toBase64(data) : null;
            if (base64data) {
               img.src = 'data:image/jpeg;base64,' + base64data;
            }
       });
     });
    

使用 (1) 您正在检索全尺寸图像,使用 (2) 存储在 cds 中的缩略图

于 2021-06-30T15:10:31.890 回答