通过配置企业应用首选项 (AirWatch) 通过 MDM 检索用户名

Retrieving Username Through MDM by Configuring Enterprise App Preferences (AirWatch)

我正在使用 Ionic/Cordova 构建一个混合应用程序,并使用插件 (https://github.com/apla/me.apla.cordova.app-preferences) 从 Root.plist 文件中检索用户名值,该文件包含在 Settings.bundle 中。

我无法通过 AirWatch(MDM 解决方案)发送此值,然后在运行时正确读取它。我在部署应用程序时使用应用程序配置设置,如下所示:

在 AirWatch 控制台中:

Root.plist 源代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Key</key>
            <string>AWUsername</string>
            <key>DefaultValue</key>
            <dict>
                <key>Value</key>
                <string>Test</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

JS

var retrieveUser = function () {
      var prefs = window.plugins.appPreferences;
      //prefs.fetch (ok, fail, 'dict', 'key');
      prefs.fetch(prefReadSucess, prefReadFailed, 'AWUsername', 'AWUsername');

      function prefReadSucess(value) {
          console.log("User: " + value);
          DataTransfer.getUser(value);
      }

      function prefReadFailed(error) {
          console.log("Error: " + error);
          DataTransfer.getUser("ANONYMOUS");
      }
   };

    retrieveUser();

使用上面提到的代码,结果是我得到了应该填充用户名的值 "Test"。我在 Root.plist 文件中尝试了多种变体,但似乎无法将 AirWatch 应用程序配置密钥与位于 Root.plist 文件中的密钥配对。帮助将不胜感激!请让我知道我做错了什么 and/or 我该如何解决这个问题。谢谢!

解决方案

经过多次尝试,我找到了一个可用的版本。似乎要求键名为 "com.apple.configuration.managed" 替换这个值目前还没有奏效。不管怎样,我是这样做的:

AirWatch 控制台

配置密钥:com.apple.configuration.managed
值类型:字符串
配置值:{DisplayName}

Root.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Key</key>
            <string>com.apple.configuration.managed</string>
            <key>DefaultValue</key>
            <dict>
                <key>Value</key>
                <string>ANONYMOUS</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

JS

var retrieveUser = function () {
      var prefs = window.plugins.appPreferences;
      //prefs.fetch (ok, fail, 'dict', 'key');
      prefs.fetch(prefReadSucess, prefReadFailed, 'com.apple.configuration.managed', 'com.apple.configuration.managed');

      function prefReadSucess(value) {
          console.log("User: " + value);
          DataTransfer.getUser(value);
      }

      function prefReadFailed(error) {
          console.log("Error: " + error);
          DataTransfer.getUser("ANONYMOUS");
      }
    };

    retrieveUser();

希望对寻求解决方案的人有所帮助!