3

在 iOS 中实现设置包被认为是最佳实践,这样用户就可以从 iOS 设置应用程序以及您的应用程序内部访问您的应用程序设置。然而,这对 iOS 来说是一个独特的概念。鉴于此,如果您想实现设置 UI,您应该如何在 Xamarin.Forms 中执行此操作,以便获得 iOS 的设置包,并且仍然拥有其他平台上可用的某种设置视图?

4

3 回答 3

3

使用这个:https ://github.com/jamesmontemagno/SettingsPlugin

它提供了一个跨平台的 API 来处理设置。它会将您的设置存储在 iOS 上的 plist 中。

至于通过简单地引用 plist 来构建您的设置 UI(就像 iOS 本身那样),这在 Forms 中并不是真正的事情。在 Forms 中,您将使用 Forms API 实现自己的自定义设置页面。Forms 有一个 TableView UI 元素,您可以在其上设置Intent属性。Intent可以设置为DataFormMenu或的值Settings。您可以使用该Settings值来指示您希望 TableView 类似于 iOS 设置屏幕。然后只需将每个 TableView 项目绑定到您的设置类。

于 2016-08-01T18:44:57.980 回答
2

由于 Settings Bundle 是一个非常 iOS 特定的功能,因此在 iOS 项目中实现它是唯一的方法。

然后我会创建一个 ISettings 接口来取回特定的设置。在 iOS 中创建一个类来获取/设置此包中的设置并使用依赖注入。

然后为 Android 和 WinPhone 实现其他东西。您应该能够创建一个通用的共享页面,但 Set 和 Get 方法将根据每个平台进行切换。

于 2015-11-28T00:46:48.843 回答
1

Forms 提供了多种方法来自定义每个平台的行为。您可以使用Device.OSDevice.OnPlatform()创建在 Windows 和 Android 上存在但在 iOS 上不存在的行为(即主菜单上的设置选项)(而不是让用户使用设置包)。

于 2015-11-28T01:05:20.733 回答