Ionic 或 Cordova 能否支持托管应用程序配置?
Can Ionic or Cordova Support Managed App Configuration?
我正在尝试从我的 MDM (AirWatch) 中获取并存储用户名字符串值。有人告诉我这可以通过使用 Managed App Configuration 来实现,我想知道 Ionic 或 Cordova 是否可以支持这个?我正在构建一个混合应用程序。
如果没有,是否有人使用过 Managed App Config 并能为我指明正确的方向?
谢谢,
安迪
解决方案
对于希望实现此功能的任何人
在研究了不同的插件之后,这是最好的插件 (https://github.com/apla/me.apla.cordova.app-preferences)。虽然文档有些缺乏(或者至少对我来说很难开始),但这里是我所做的没有提到的事情:
安装插件后,运行:
$ cordova prepare
这将生成一个 Settings.bundle 文件供您将键值放入其中。
然后转到 platforms/ios/Settings.bundle 并将其复制到您的 xcode 项目资源目录中。
无论出于何种原因,我仍然难以阅读密钥,所以这是我用于 Root.plist 文件的结构:
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>DefaultValue</key>
<string>Mango Farmer</string> //username value
<key>Key</key>
<string>username</string> //identifier value
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
在我的 app.js 文件中,这里是控制器的结构:
app.controller('GetUsername', function($scope) {
$scope.testPref = function () {
var prefs = window.plugins.appPreferences;
prefs.fetch(prefReadSucess, prefReadFailed, 'username');
function prefReadSucess(value) {
console.log(value);
}
function prefReadFailed(error) {
console.log(error);
}
};
});
希望对感兴趣的人有所帮助!
解决方案
这有点晚了,但它可能会帮助其他人解决问题。几年前,几家 MDM/EMM 提供商(包括 AirWatch)创建了 AppConfig,这是一套用于管理设备和应用程序数据的标准 API。
此外,Oracle 开发了一个名为 "Cordova Plugin for EMM App Config" 的 Cordova 插件。此插件允许应用程序使用单个函数获取配置数据(从 AirWatch 的控制台设置)。
cordova.plugins.EmmAppConfig.getValue("username");
此功能在 deviceready 事件触发后才可用,因此您需要在尝试使用它之前收听该事件。下面是一个简单的例子:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
console.log(cordova.plugins.EmmAppConfig.getValue("username"));
}
您可以找到关于此的更多信息article:
我正在尝试从我的 MDM (AirWatch) 中获取并存储用户名字符串值。有人告诉我这可以通过使用 Managed App Configuration 来实现,我想知道 Ionic 或 Cordova 是否可以支持这个?我正在构建一个混合应用程序。
如果没有,是否有人使用过 Managed App Config 并能为我指明正确的方向?
谢谢,
安迪
解决方案
对于希望实现此功能的任何人
在研究了不同的插件之后,这是最好的插件 (https://github.com/apla/me.apla.cordova.app-preferences)。虽然文档有些缺乏(或者至少对我来说很难开始),但这里是我所做的没有提到的事情:
安装插件后,运行:
$ cordova prepare
这将生成一个 Settings.bundle 文件供您将键值放入其中。
然后转到 platforms/ios/Settings.bundle 并将其复制到您的 xcode 项目资源目录中。
无论出于何种原因,我仍然难以阅读密钥,所以这是我用于 Root.plist 文件的结构:
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>DefaultValue</key>
<string>Mango Farmer</string> //username value
<key>Key</key>
<string>username</string> //identifier value
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
在我的 app.js 文件中,这里是控制器的结构:
app.controller('GetUsername', function($scope) {
$scope.testPref = function () {
var prefs = window.plugins.appPreferences;
prefs.fetch(prefReadSucess, prefReadFailed, 'username');
function prefReadSucess(value) {
console.log(value);
}
function prefReadFailed(error) {
console.log(error);
}
};
});
希望对感兴趣的人有所帮助!
解决方案
这有点晚了,但它可能会帮助其他人解决问题。几年前,几家 MDM/EMM 提供商(包括 AirWatch)创建了 AppConfig,这是一套用于管理设备和应用程序数据的标准 API。
此外,Oracle 开发了一个名为 "Cordova Plugin for EMM App Config" 的 Cordova 插件。此插件允许应用程序使用单个函数获取配置数据(从 AirWatch 的控制台设置)。
cordova.plugins.EmmAppConfig.getValue("username");
此功能在 deviceready 事件触发后才可用,因此您需要在尝试使用它之前收听该事件。下面是一个简单的例子:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
console.log(cordova.plugins.EmmAppConfig.getValue("username"));
}
您可以找到关于此的更多信息article: