PowerApps在iPhone IOS 14.6上第二屏幕无数据问题咨询
问题根因
iOS 14.6 版本对应的PowerApps移动客户端存在复杂对象序列化兼容bug,直接传递SharePoint列表完整条目(包括Gallery.Selected对象、存储完整条目的全局变量)时,iOS端无法正常解析嵌套结构的对象,安卓、PC端无此兼容问题,所以仅苹果设备出现异常。
修复步骤
- 替换跨屏传参内容,不要传递完整的员工条目对象,仅传递唯一标识字段
ID,Navigate函数修改为如下写法:Navigate(第二屏幕名称, ScreenTransition.None, {selectedEmpID: Gallery1.Selected.ID}) - 在第二屏幕的
OnVisible属性中,通过传递的ID重新拉取对应员工数据:Set(varCurrentEmployee, LookUp(你的SharePoint员工数据源名称, ID = selectedEmpID)) - 第二屏幕所有绑定员工数据的控件,全部绑定到
varCurrentEmployee的对应字段即可,例如姓名控件的Text属性填写varCurrentEmployee.姓名。 - 若要降低iOS端拉取数据的延迟,可以在App的
OnStart属性中预加载全量员工数据到本地集合:
第二屏幕拉取数据的逻辑对应修改为:ClearCollect(colAllEmployee, 你的SharePoint员工数据源名称)Set(varCurrentEmployee, LookUp(colAllEmployee, ID = selectedEmpID))
验证说明
- 可以在第二屏幕新增临时文本标签,设置Text属性为
IsBlank(varCurrentEmployee),如果iOS端展示为false说明数据拉取成功 - 如果修复后仍有异常,先升级PowerApps iOS客户端到最新版本,旧版本客户端存在
LookUp函数缓存bug - 不要使用字符串类型字段作为传参的唯一标识,iOS 14.6对特殊字符的编码解析存在小概率异常,必须使用数字类型的内置
ID字段
内容的提问来源于stack exchange,提问作者Pienso
相关产品推荐
相关产品推荐

