通过配置企业应用首选项 (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();
希望对寻求解决方案的人有所帮助!
我正在使用 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();
希望对寻求解决方案的人有所帮助!