在Carbon工作区打开Workshop模块时,如何使用Promoted Variables?
我们的Workshop模块有两种常见访问方式:
- 通过浏览器进入Carbon工作区,再打开Workshop模块
- 通过本体操作通知(ontology action notification)发送的操作通知/邮件链接访问
模块的最优初始布局由一个关联复选框组件的布尔变量控制,布局需要根据用户的访问途径自动切换。
我们尝试通过生成包含Promoted Variables的URL来修改该布尔变量的默认状态,但测试发现:在Carbon工作区中访问模块时,Promoted Variables无法生效——URL参数会被截断,变量加载后仍保持默认状态。这导致我们无法通过操作通知直接指向Carbon工作区的对应模块并设置正确布局。
请问:
- 在Carbon工作区中打开该模块时,是否仍可使用
Promoted Variables? - 有无无需
Promoted Variables即可根据访问途径切换布局的方案?
关于Carbon工作区中Promoted Variables的可用性
目前在Carbon工作环境内打开模块时,Promoted Variables确实存在参数被截断、无法生效的限制。这是因为Carbon工作区的路由机制会优先解析自身的导航参数,覆盖或忽略模块URL中携带的Promoted Variables参数,导致变量无法被模块正确读取。
无需Promoted Variables的替代方案
方案1:利用工作区会话/上下文识别访问来源
读取Carbon工作区提供的会话上下文数据:从工作区内部导航进入时,会话会包含工作区初始化标识或导航轨迹;从外部通知跳转进入时,会话来源标识会指向外部渠道。模块初始化时根据这些数据自动切换布尔变量状态,调整布局。方案2:通过工作区自定义事件传递参数
在外部通知链接中先指向工作区内的中转页面(轻量自定义组件),中转页面读取URL参数后,通过Carbon工作区的自定义事件机制将参数传递给Workshop模块。模块监听该事件并调整布尔变量状态,再完成跳转。方案3:用户偏好存储持久化状态
如果访问途径和用户使用场景强绑定,可在用户首次通过某途径访问后,将布局偏好存储到工作区的用户本地存储或全局偏好配置中。后续用户访问时,模块自动读取偏好设置布局,适合需要记住用户选择的场景。
内容的提问来源于stack exchange,提问作者dm2

