策略默认值和自定义策略

本文讨论您可以如何在封装的 ISV 应用程序中使用策略。

更改非托管高级应用程序的策略默认值

MDX 应用程序 SDK 包括下列用于改非托管高级应用程序的默认策略的策略文件。

  • Android:Applications/Citrix/MDXToolkit/data/MDXSDK_Android/ default_sdk_policies.xml
  • iOS:Applications/Citrix/MDXToolkit/data/MDXSDK/default_policies.xml

这些文件中的所有策略已禁用。将为非托管“高级”应用程序忽略未处于文件中的任何策略。

可以按照下面的方式更改默认设置。

  1. 备份您计划要更改的任何默认策略文件,以便在将来需要它们时使用。
  2. 要更改 ISV 应用程序的策略默认值,请使用在 MDX Toolkit 文档、适用于 Android 应用程序的 MDX 策略适用于 iOS 应用程序的 MDX 策略中指定的策略默认值。
  3. 在构建“高级”应用程序时,将默认策略文件与您的应用程序资源包括在一起。

创建自定义策略

MDX Toolkit 中的策略文件提供了策略的完整定义,包括在 Citrix Endpoint Management 控制台中显示的策略标签和帮助文本。当封装应用程序时,这些策略将包含在所生成的 .mdx 文件中。可以向将这些文件(位于 Applications/Citrix/MDXToolkit/data 中的 MDX Toolkit 安装文件夹中)添加自定义策略。

  1. 备份您计划要更改的任何策略文件,以便在将来需要它们时使用。

  2. 要向策略 XML 文件添加策略,请使用在后面的“策略格式”中提供的格式。

  3. 封装应用程序时,通过在封装命令行中包含 -policyxml 选项来指定修改后的策略 XML 文件的位置。

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    有关使用命令行来封装 ISV 应用程序的详细信息,请参阅使用命令行封装企业 iOS 应用程序使用命令行封装 ISV Android 应用程序

  4. 要在 Citrix Endpoint Management 控制台中验证策略的名称、说明和值,请将您的应用程序上载到 Endpoint Management。

添加策略的指南

  • 请仅更改以粗体显示的项目。
  • PolicyName 元素的值是您从应用程序调用的名称。
  • PolicyCategory 元素的值是在 Citrix Endpoint Management 控制台中列出策略时所使用的类别名称。要查找类别名称,请参阅 MDX 策略文件的 <Category> 部分中的 CategoryId 值。
  • PolicyDefault 元素的值为您的策略的默认设置。
  • <Title res_id=”POLICY_ID”> 中的 POLICY_ID 是用于策略的唯一 ID。此 ID 必须以字母开头,不能包含空格,且仅能包含字母、数字或下划线。
  • Title 元素的值是 Citrix Endpoint Management 控制台中显示的策略标签。
  • <Description res_id=”POLICY_DESC_ID”> 中的 POLICY_DESC_ID 是策略说明的唯一 ID。此 ID 必须以字母开头,不能包含空格,且仅能包含字母、数字或下划线。
  • Description 元素的值是显示在 Citrix Endpoint Management 控制台中的策略说明。

字符串

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>string</PolicyType>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>Value</PolicyDefault>
   <PolicyStrings>
      <Title res_id="POLICY_ID”>Sample String Policy</Title>
      <Description res_id="POLICY_DESC_ID">
          Please enter the policy value.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->

布尔值

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>string</PolicyType>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>false</PolicyDefault>
   <PolicyStrings>
        <Title res_id="POLICY_ID”>Sample Boolean Policy</Title>
      <BooleanTrueLabel res_id="POLICY_ON">On</BooleanTrueLabel>
      <BooleanFalseLabel res_id="POLICY_OFF">Off</BooleanFalseLabel>
      <Description res_id="POLICY_DESC_ID">
          If On, the app does something.
          If Off, the app does something else.

            Default value is Off.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->

枚举

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>enum</PolicyType>
        <PolicyEnumValues>
         <PolicyEnumValue>
               <PolicyEnumValueId>Value1</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_1">Yes</PolicyEnumValueString>
            </PolicyEnumValue>
            <PolicyEnumValue>
               <PolicyEnumValueId>Value2</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_2">No</PolicyEnumValueString>
         </PolicyEnumValue>
         <PolicyEnumValue>
            <PolicyEnumValueId>Value3</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_3">Maybe</PolicyEnumValueString>
            </PolicyEnumValue>
        </PolicyEnumValues>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>Value1</PolicyDefault>
   <PolicyStrings>
        <Title res_id="POLICY_ID”>Sample Enum Policy</Title>
      <Description res_id="POLICY_DESC_ID">
          Sample policy description.

             Default value is Yes.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->
策略默认值和自定义策略