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

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

在AirWatch控制台中:

javascript - 通过配置企业应用程序首选项(AirWatch)通过MDM检索用户名-LMLPHP

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 App Config密钥与Root.plist文件中的密钥配对。帮助将不胜感激!请让我知道我在做什么错和/或如何解决此问题。谢谢!

最佳答案

解决方案

经过几次尝试,我已经达到了工作版本。似乎要求该键的名称为“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();

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

关于javascript - 通过配置企业应用程序首选项(AirWatch)通过MDM检索用户名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33400087/

10-10 20:38