xamarin 共享项目和可移植类库之间的确切区别是什么?
何时使用共享库,何时使用可移植类库?
这是否可以在共享项目中编写本机功能,例如显示警报、访问相机并将其用于 android 和 iOS?
谁能给我解释一下。
xamarin 共享项目和可移植类库之间的确切区别是什么?
何时使用共享库,何时使用可移植类库?
这是否可以在共享项目中编写本机功能,例如显示警报、访问相机并将其用于 android 和 iOS?
谁能给我解释一下。
#if
编译器指令来包含特定于平台的代码。当您想要访问相机时,您需要在#if
所有目标平台的块内编写访问代码。这可能会弄乱您的代码,但可以更轻松地找到不同的实现。了解更多:http: //developer.xamarin.com/guides/cross-platform/application_fundamentals/shared_projects/System.Net.Http
但你不能访问任何平台特定的代码。如果要在 PCL 代码中访问相机,则需要通过依赖注入通过通用接口访问它。有一些很好的框架可以帮助你实现这个目标。其中最著名的是MVVMCross ( https://github.com/MvvmCross/MvvmCross/wiki )。了解有关 PCL 的更多信息:http: //developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/sharing_code_options/#Portable_Class_Libraries我个人更喜欢 PCL,因为没有任何编译器指令,代码更容易阅读。使用 MVVMCross,您可以通过 NuGet 使用大量插件。因此,您无需编写自己的类来访问相机、显示警报等。