【问题标题】:How to update Preferences when global settings in iOS are changed at runtime in Xamarin如何在 Xamarin 运行时更改 iOS 中的全局设置时更新首选项
【发布时间】:2021-08-11 12:36:14
【问题描述】:

我的问题如下:当我在 iOS 中的应用程序的全局设置在运行时发生更改时,我想更新首选项 (Xamarin.Essentials)。

我知道我必须使用 NSUserDefaults 才能访问全局设置或分别写入 root.plist 文件中的内容。我还阅读了以下内容:Be notified of change in a setting in Settings Bundle (in Xamarin iOS)。但我不知道如何处理。在我的 Xamarin 项目的 iOS 部分中,我有 AppDelegate 类,但我不知道调用哪个方法来更改 NSUserDefaults 的首选项。你能帮帮我吗?

提前致谢。

【问题讨论】:

    标签: c# ios xamarin


    【解决方案1】:

    当 iOS 中的全局设置更改时如何更新首选项 Xamarin 中的运行时

    如果你想从原生ios平台更新Preferences(Xamarin.Essentials),一个简单的方法是使用Xamarin.Forms MessagingCenter。你可以在xamarin ios中通过MessagingCenter.Send方法发送消息,你可以在@方法接收消息987654328@ 在表单应用程序中,您可以在此处更新首选项 (Xamarin.Essentials)。

    Xamarin.Forms MessagingCenter 类实现了发布-订阅模式,允许在不方便通过对象和类型引用链接的组件之间进行基于消息的通信。这种机制允许发布者和订阅者在没有相互引用的情况下进行通信,有助于减少它们之间的依赖关系。

    发布者使用MessagingCenter.Send 方法发送消息,而订阅者使用MessagingCenter.Subscribe 方法监听消息。此外,如果需要,订阅者还可以使用MessagingCenter.Unsubscribe 方法取消订阅消息。

    发布消息

    MessagingCenter 消息是字符串。发布者通过 MessagingCenter.Send 重载之一通知订阅者消息。

    MessagingCenter.Send<MainPage, string>(this, "Hi", "John");
    

    订阅消息

    订阅者可以使用 MessagingCenter.Subscribe 重载之一注册接收消息。以下代码示例显示了一个示例:

    MessagingCenter.Subscribe<MainPage, string>(this, "Hi", async (sender, arg) =>
    {
        await DisplayAlert("Message received", "arg=" + arg, "OK");
    });
    

    更多详情可以查看:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/messaging-center

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多