Требуется пользовательское значение параметра конфигурации для приложения Xamarin (Intune Azure) - PullRequest
0 голосов
/ 18 октября 2018

Дополнительная информация. В Azure политика выглядит следующим образом:

Состояние: выполнено

.....................................................

Мы реализуемрешение Intune для управления мобильными устройствами (MDM) в нашей компании.Следуя инструкциям руководства, мы загрузили наше приложение для бизнеса на платформе iOS и присвоили ему политику конфигурации приложения.

Мы хотим добиться получения значения настраиваемого параметра конфигурации из нашегоФайл конфигурации приложения MDM в приложении Xamarin.

Существует список свойств XML, который содержит параметры конфигурации приложения для устройств , зарегистрированных в Intune.Когда вы создаете файл конфигурации приложения , вы можете указать одно или несколько из следующих значений, используя формат ниже

<dict>

  <key>keyone</key>

  <string>valuekeyone</string>

  <key>keytwo</key>

  <string>valuekeytwo</string>

</dict>

В моем случае я использую 2 разные ключи и значения.

keyone -> valuekeyone

keytwo -> valuekeytwo

Я следовалследующей документации, но нет способа извлечь эти поля из кода приложения Xamarin.iOS .

https://docs.microsoft.com/en-us/intune/app-configuration-policies-use-ios#enter-xml-data

С уважением,

1 Ответ

0 голосов
/ 19 октября 2018

После некоторых НИОКР в API есть несколько методов, которые выводят ожидаемые значения:

IntuneMAMPolicyManager value = IntuneMAMPolicyManager.Instance;
NSDictionary dictionary =  value.DiagnosticInformation;

NSString[] keys = new NSString[]
{
    new NSString("AppConfig")

};

NSDictionary key= dictionary.GetDictionaryOfValuesFromKeys(keys);


var field1 = new NSObject();
var field2 = new NSObject();


for (int i = 0, keyCount = (int)key.Count; i < keyCount; i++)
{
    var author = key.ElementAt(i);
    NSObject fields_values = author.Value;
    field1 =  fields_values.ValueForKey(new NSString("field1"));
    field2 =  fields_values.ValueForKey(new NSString("field2"));
    Console.WriteLine("field1: {0}, field2: {1}", field1.ToString(), field2.ToString());
   
}

Теперь все работает:)

...