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