You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica优化callto调用代码:避免空白页仅唤起3CXPhone

解决Acumatica中callto唤起3CXPhone不打开空白页的问题

当前代码通过抛出PXException("Redirect4:" + tel1)触发跳转,这种机制会强制打开新页面(或about:blank),无法直接唤起本地3CXPhone客户端且不产生空白页。以下是两种可行的优化方案:


方案1:客户端直接处理(推荐,无服务器回发)

修改按钮的客户端点击事件,直接在前端执行callto协议唤起操作,避免服务器端跳转:

C#代码:

[PXUIField(DisplayName = "Tel1", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.World)]
[PXClientButton(CommitChanges = false)] // 禁止提交变更,避免不必要的服务器回发
protected virtual IEnumerable tel1(PXAdapter adapter)
{
    return adapter.Get();
}

ASPX页面配置:

在对应按钮控件中添加客户端点击事件:

<px:PXButton ID="btnTel1" runat="server" CommandName="tel1">
    <ClientEvents Click="function(s,e) { 
        window.location.href = 'callto:06XXXXXXXX'; 
        e.processOnServer = false; // 阻止触发服务器端方法
    }" />
</px:PXButton>

原理:直接在客户端执行window.location.href唤起callto协议关联的3CXPhone,e.processOnServer = false避免服务器回发,完全不会产生空白页。


方案2:服务器端动态输出脚本(适合动态获取号码场景)

如果电话号码需要从服务器端当前记录中动态读取,可在服务器端注册客户端脚本执行唤起操作:

[PXUIField(DisplayName = "Tel1", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.World)]
protected virtual IEnumerable tel1(PXAdapter adapter)
{
    // 从当前数据记录中读取电话号码(替换为实际DAC和字段)
    YourDAC currentItem = adapter.Get<YourDAC>().FirstOrDefault();
    string phoneNumber = currentItem?.Tel1;

    if (!string.IsNullOrEmpty(phoneNumber))
    {
        string calltoUrl = $"callto:{phoneNumber}";
        // 注册客户端脚本,页面回发后直接执行唤起操作
        PXTrace.WriteClientScript($"window.location.href = '{calltoUrl}';");
    }

    return adapter.Get();
}

原理:通过PXTrace.WriteClientScript输出前端脚本,回发后执行window.location.href唤起3CXPhone,不会产生空白页。


注意事项

  • 确保客户端浏览器已将callto协议关联到3CXPhone,否则可能会提示选择打开方式或无法唤起。
  • 方案1无服务器回发,性能更优;方案2适合需要动态获取电话号码的场景。

内容的提问来源于stack exchange,提问作者Xavier LARTEM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:03:18