如何获得有关iOS MDM托管应用程序配置更改的通知

时间:2019-04-18 11:37:33

标签: ios mdm

无论何时启动ios应用程序应用程序,我们都会读取从MDM推送的配置以使用它们。 如果用户更改配置,我们会将其保存到本地存储,因为MDM写入配置的“ UserDefaults”字典是只读的。现在,我们在“ UserDefaults”中具有来自MDM的配置,并且在本地存储中具有用户更新的配置。 因此,现在如果我们使用本地存储中的用户更新的配置,则即使再次从MDM推送了新配置,MDM配置也将被忽略。

因为我们没有获得有关MDM配置更改的任何信息或通知。因此,如果我们使用用户编辑的配置,则更新的配置将被忽略。

我尝试使用如下所示的键值观察器,

    [[NSUserDefaults standardUserDefaults] addObserver:self
                                                forKeyPath:kConfigurationServerURLKey
                                                   options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
                                                   context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if (object == [NSUserDefaults standardUserDefaults]) {
        NSLog(@"%s %@ %@", __func__, keyPath, change);
    } else {
        [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
    }
}
当再次从MDM推送应用程序时,永远不会调用

observeValueForKeyPath函数。如果应用使用计时器对用户默认键中的键进行了更改,则将调用观察者方法,但使用新配置从MDM推送应用时,不会调用观察器方法。

有没有办法做到这一点。因为根据用例,我希望允许用户编辑配置,并且如果再次从MDM推送配置,也要更新配置

0 个答案:

没有答案