Я пытаюсь получить и сохранить строковое значение имени пользователя из своего MDM (AirWatch). Мне сказали, что этого можно добиться, используя Конфигурация управляемого приложения, и вам было интересно, может ли это поддерживать Ionic или Cordova? Я создаю гибридное приложение.

Если нет, есть ли кто-нибудь, кто работал с конфигурацией управляемого приложения и может указать мне правильное направление?

Благодарность,

Энди

2
shredMER 21 Окт 2015 в 17:34

2 ответа

Лучший ответ

РЕШЕНИЕ

Для всех, кто хочет реализовать эту функцию

После изучения различных плагинов, это лучший из имеющихся (https: // github .com / apla / me.apla.cordova.app-preferences). Хотя документации несколько не хватает (или, по крайней мере, мне было трудно начать), вот что я сделал, о чем не упоминалось:

После установки плагина запустите:

$ cordova prepare

Это сгенерирует файл Settings.bundle, в который вы сможете поместить свои ключевые значения.

Затем перейдите в платформы / 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);
  }
};
});

Надеюсь, что это поможет всем, кому интересно!

4
shredMER 21 Окт 2015 в 21:59

РЕШЕНИЕ

Это происходит слишком поздно, но это может помочь другим решить проблему. Пару лет назад несколько провайдеров MDM / EMM (включая AirWatch) создали AppConfig, стандартный набор API-интерфейсов для управления устройствами и данными приложений.

Кроме того, Oracle разработала плагин Cordova под названием «Cordova Plugin for EMM App Config». Этот плагин позволяет приложениям получать данные конфигурации (установленные с консоли AirWatch) с помощью одной функции.

cordova.plugins.EmmAppConfig.getValue("username");

Эта функция недоступна до тех пор, пока не будет запущено событие deviceready, поэтому вам нужно прослушать это событие, прежде чем пытаться его использовать. Ниже приведен быстрый пример:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() 
{
     console.log(cordova.plugins.EmmAppConfig.getValue("username"));
}

Дополнительную информацию можно найти в этой статье:

0
imelgrat 30 Сен 2018 в 11:59