编写和调试平板电脑的 CRM 脚本。
发布日期: 2016年11月
适用于: Dynamics CRM 2015
适用于平板电脑的 Microsoft Dynamics CRM 使用的是与 web 应用程序相同的窗体定义。 在 Web 应用程序中,向窗体事件处理程序或功能区命令中添加的任何 JavaScript 代码也可在 适用于平板电脑的 CRM 中运行。 需要注意一些不同点。
在本主题中
一些 Xrm.Page 或窗口对象函数在平板电脑的 CRM 中不可用。
在平板电脑的 CRM 中指定将运行的代码
在平板电脑的 CRM 中指定将显示的命令
注意 CRM for tablets 与浏览器中 web 应用程序之间的区别
为 CRM for tablets 调试脚本
一些 Xrm.Page 或窗口对象函数在平板电脑的 CRM 中不可用。
适用于平板电脑的 CRM 不允许任何可能会妨碍脚本执行的函数。 通用 JavaScript 函数(例如 window.alert、window.confirm 和 window.prompt)将无法按预期运行,或者简单地引发错误。
使用 Xrm.UtilityalertDialog 和 confirmDialog 功能向用户显示消息。 这些函数与窗口函数运行方式不同,因为除非用户关闭它们,否则不会停止脚本处理。 它们提供回调函数以允许用户输入的异步响应。 使用 window.confirm、window.prompt 或阻止脚本执行的其他本机窗口函数都将引发错误。
备注
如果要在窗体脚本中使用 window.alert,您设置的消息将在未指定回调函数的情况下被 Xrm.Utility.alertDialog 自动显示,但是,这只是临时的并且已经被弃用。 您应该将所有使用 window.alert 的代码移除,使用 Xrm.Utility.alertDialog 代码。
以下方法在 适用于平板电脑的 CRM 中不可用。
Xrm.Page.context.getCurrentTheme |
Xrm.Page.ui视区方法 |
Xrm.Page.data.entity.getDataXml |
Xrm.Page.ui controlWeb 资源和 IFRAME 控件方法 |
Xrm.Page.ui.窗体选择器 对象方法 |
Xrm.Page.ui tab.setDisplayState |
Xrm.Page.ui.navigation.items 收集 |
Xrm.Utility.openWebResource |
这些函数大多数会执行空函数,并且不返回任何值。 如果您有需要从这些函数之一返回值的代码,该代码将不被定义。
在平板电脑的 CRM 中指定将运行的代码
当客户端 API 的功能不同时,应该将与下列代码类似的代码包含在其中,用以分隔为每个客户端应用的逻辑。
var isCrmForTablets = (Xrm.Page.context.client.getClient() == "Mobile")
if (isCrmForTablets)
{
// Code for CRM for tablets only goes here,
}
else
{
// Code for web browser or CRM for Outlook only goes here.
}
// Code for any client goes here.
在平板电脑的 CRM 中指定将显示的命令
当您在自定义命令栏(功能区)命令中使用 <JavaScriptFunction> (RibbonDiffXml) 操作时,您还可以使用 Xrm.Page.context.client.getClient 来分隔代码。 如果要执行的操作无法使用 适用于平板电脑的 CRM,则应该包括显示规则,以保证 适用于平板电脑的 CRM 中不会显示这些命令。 默认情况下,除非配置为不显示,定义的所有命令都会在 适用于平板电脑的 CRM 中显示。 通常,除非您知道显示规则可以通过 适用于平板电脑的 CRM 工作,否则就应该定义以下显示规则,并将其包含在每个命令中。
<DisplayRule Id="My.HideOnModern">
<CommandClientTypeRule Type="Modern"
InvertResult="true" />
</DisplayRule>
注意 CRM for tablets 与浏览器中 web 应用程序之间的区别
您应该知道,除了 一些 Xrm.Page 或窗口对象函数在平板电脑的 CRM 中不可用。 中描述的功能外还存在其他的不同点。
复合字段
适用于平板电脑的 CRM 用不同方式实现复合字段。适用于平板电脑的 CRM 将不会包括复合属性。 它会自动替代构成属性并显示这些属性。详细信息:为复合属性编写脚本。Web 资源和 IFRAME
适用于平板电脑的 CRM 不支持在窗体中显示 web 资源或 IFRAMEs。 如果任何代码与这些类型的控件互相影响,那么该控件不会存在于 适用于平板电脑的 CRM 窗体中,您应该在 在平板电脑的 CRM 中指定将运行的代码 中应用指南,以使该代码仅在 Web 浏览器客户端中运行。
为 CRM for tablets 调试脚本
由于 适用于平板电脑的 CRM 是应用程序,您在浏览器中可以使用的普通 JavaScript 调试工具将不可用。 建议您采用下列过程测试和调试您自己的窗体脚本和功能区命令
使用 web 应用程序测试整个脚本。
作为使用 Web 浏览器测试的一部分,请在使用 Xrm.Page.context.client.getClient 检查客户端的时候撤销标准,并验证该逻辑是否合适人们使用 适用于平板电脑的 CRM 时的经验。 用于 适用于平板电脑的 CRM 的 API 是可用于 Web 浏览器 API 的子集,因此,您能够在 Web 浏览器中测试特定的流程。
如果可以的话,请在安装了 Windows 8 和 Microsoft Visual Studio 的计算机上安装 适用于平板电脑的 CRM。 如果您想使用 Visual Studio 启用调试程序,请包括 调试程序 语句。
最后,使用 Xrm.Utility.alertDialog 在 适用于平板电脑的 CRM 内显示代码的值。
另请参阅
为 Microsoft Dynamics CRM 2015 窗体编写代码
使用窗体和字段事件
使用 Xrm.Page 对象模型
为复合属性编写脚本
脚本即时引用的表单
客户端编程引用
命令栏或功能区演示
© 2017 Microsoft。 保留所有权利。 版权