【问题标题】:Displaying Dataverse images in PowerApps Portal在 PowerApps 门户中显示 Dataverse 图像
【发布时间】:2021-08-04 13:23:01
【问题描述】:

我正在尝试在 PowerApps 门户中显示来自 Dataverse 的图像属性。我知道文档说这不是官方支持的

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

【问题讨论】:

    标签: powerapps powerapps-portal


    【解决方案1】:

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

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

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

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

      函数 toBase64(str) { 如果(!str)返回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 中的缩略图

    【讨论】:

    • 感谢您的意见!但是,我对 1. 的问题是它使用不同的身份验证机制,因此不能保证门户用户将被授权查看图像。我希望我能做类似 2 的事情。但是对于全尺寸,因为我绝对需要全尺寸。
    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2021-02-15
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多