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