使用TEL协议拨打电话号码

问题描述:

我对Acumatica开发非常陌生,但作为一个基本的开始,我们希望能够在电话号码文本框之后添加一个按钮,以使用TEL协议TEL: +1-###-###-####从Skype for Business拨号。我有按钮插入正确,和我重写NavigateURL,和它完美的作品,如果我直接在网址放了电话号码。不过,我正在寻找一种方式来放置,保持实际电话号码值,而不是..喜欢的东西TEL: [Contact.Phone1]使用TEL协议拨打电话号码

这可能吗?

我不认为NavigateURL,就是要使用像变量模板引擎。我要做的是在Action事件处理程序中格式化URL,并使用PXRedirectToUrlException打开链接。

[PXUIField(DisplayName = "Skype")] 
[PXButton] 
public virtual IEnumerable SkypeButton(PXAdapter adapter) 
{ 
    Contact contact = base.Caches[typeof(Contact)].Current as Contact; 

    if (contact != null) 
    { 
     throw new PXRedirectToUrlException(string.Format("tel:{0}", contact.Phone1.Trim()), 
              PXBaseRedirectException.WindowMode.NewWindow, 
              string.Empty); 
    } 

    return adapter.Get(); 
} 
+0

我有一点麻烦与此有关。我有它的工作,但我有一个问题。点击从通用查询屏幕打开的记录上的“呼叫”按钮会导致错误。我跟踪的日志,它的传递'电话:17173978880 PopupPanel = Inline'和'电话:?17173624476 7678772635 = 465463'如果我刷新当前记录的页面,然后它工作正常。你知道为什么要加入演员吗? – beardedmogul

+0

第一个可能与PXBaseRedirectException.WindowMode有关,第二个我不知道它来自哪里。查询屏幕在他们可以做的事情上相当有限,我不确定你的错误是否可以修复。 –

+0

我试过你的重定向方法。我也试过'抛出新的异常(“Redirect0:电话:{0} .....)。同样的事情 – beardedmogul