【发布时间】:2021-08-04 13:23:01
【问题描述】:
我正在尝试在 PowerApps 门户中显示来自 Dataverse 的图像属性。我知道文档说这不是官方支持的
我对该解决方案的唯一问题是它需要门户中的硬编码 URL,这对我们不起作用,因为我们有一个包含多个环境的 CD 管道。 还有另一种方法可以做到这一点吗?或者我可以以某种方式查询 URL 而不是硬编码它吗?
【问题讨论】:
标签: powerapps powerapps-portal
我正在尝试在 PowerApps 门户中显示来自 Dataverse 的图像属性。我知道文档说这不是官方支持的
我对该解决方案的唯一问题是它需要门户中的硬编码 URL,这对我们不起作用,因为我们有一个包含多个环境的 CD 管道。 还有另一种方法可以做到这一点吗?或者我可以以某种方式查询 URL 而不是硬编码它吗?
【问题讨论】:
标签: powerapps powerapps-portal
我没有足够的声誉来添加评论,所以我将其发布为答案。
您可以检索支持的 image_url 列值。 URL 存储在支持的 imageColumn_url 列中。 完整的 URL 应该是这样的 {organization_URL}/image/download.aspx?entity={table_name}&attribute={column_name}&id={entityImageId}×tamp={image_timestamp} 并且可以用作 img 标签中的 src。
在 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 中的缩略图
【讨论】: