Orbeon Forms调用自定义URL触发失败问题求助
解决Orbeon Forms中自定义URL Scheme无法触发的问题
核心原因
Orbeon Forms默认的链接处理逻辑仅识别HTTP/HTTPS等常见协议,自定义的vsm-go://这类scheme不在默认识别范围内,因此会被当作普通字符串而非可触发的URL。
解决方法
方法1:通过自定义JavaScript触发URL
在表单中添加按钮组件,用JS手动唤起自定义URL:
- 在表单编辑器中添加按钮,设置显示文本(如“打开外部应用”)。
- 给按钮添加「运行JavaScript」动作,输入以下代码:
const targetUrl = 'vsm-go://?portalURL=https://webgis.mappingsys.myCompany.MyCompantArea/portal&app=fad235c399a04e76b9629e5ae0571c0f&workflow=21779c3a-6397-4d5e-867d-628d11f55fdb&workflowParams={order:10000123}'; window.location.href = targetUrl;
- 保存表单后测试,点击按钮即可触发目标URL。
方法2:修改全局配置让Orbeon识别自定义Scheme
如果需要所有表单都支持vsm-go协议,可修改Orbeon配置:
- 找到部署目录下的
properties-local.xml文件。 - 添加或更新以下配置,将
vsm-go加入允许的协议列表:
<property as="xs:string" name="oxf.xforms.link.allowed-protocols" value="http https mailto tel vsm-go"/>
- 重启Orbeon服务,表单中的
vsm-go://链接会被自动识别为可点击URL。
方法3:用HTML组件插入原生链接
无需JS或全局配置,直接插入HTML链接:
- 在表单中添加「HTML」组件。
- 在组件内容中输入:
<a href="vsm-go://?portalURL=https://webgis.mappingsys.myCompany.MyCompantArea/portal&app=fad235c399a04e76b9629e5ae0571c0f&workflow=21779c3a-6397-4d5e-867d-628d11f55fdb&workflowParams={order:10000123}">打开外部应用</a>
- 保存后,该链接会被浏览器直接识别并触发。
注意事项
- 确保客户端设备已注册
vsm-go对应的应用,否则点击后会提示无法打开。 - 若URL参数含特殊字符,建议先做URL编码(如
workflowParams中的JSON),避免解析错误。
内容的提问来源于stack exchange,提问作者Pete Atkin
相关产品推荐
相关产品推荐

