使用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();
}
我有一点麻烦与此有关。我有它的工作,但我有一个问题。点击从通用查询屏幕打开的记录上的“呼叫”按钮会导致错误。我跟踪的日志,它的传递'电话:17173978880 PopupPanel = Inline'和'电话:?17173624476 7678772635 = 465463'如果我刷新当前记录的页面,然后它工作正常。你知道为什么要加入演员吗? – beardedmogul
第一个可能与PXBaseRedirectException.WindowMode有关,第二个我不知道它来自哪里。查询屏幕在他们可以做的事情上相当有限,我不确定你的错误是否可以修复。 –
我试过你的重定向方法。我也试过'抛出新的异常(“Redirect0:电话:{0} .....)。同样的事情 – beardedmogul