Xamarin.Mobile 跨平台实现

Posted

技术标签:

【中文标题】Xamarin.Mobile 跨平台实现【英文标题】:Xamarin.Mobile crossplatform implementation 【发布时间】:2013-05-16 08:00:55 【问题描述】:

我了解到 Xamarin.mobile 提供了一组跨平台的 API。但是在跨平台应用中实现,它是什么样子的呢?

跨平台架构由一个包含共享代码的项目(核心项目)和另一个包含每个平台的 UI 代码的项目组成。那么,由于 Xamarin.mobile 提供了一套 API,我们如何利用它来编写一次,到处使用呢?例如:在一个类中实现 mediapicker.TakePhotoAsync 并在多个平台上使用它,而无需在其他平台上编写相同的代码。因为,我从 Xamarin.mobile 下载的示例应用程序包含为不同目标单独(而不是交叉)开发的应用程序,尽管我看到它们在不同平台上使用相同的媒体选择器、地理位置和联系人命名空间。

谢谢!

【问题讨论】:

澄清一下,Xamarin.Mobile 是作为 Xamarin SDK 一部分包含的特定库,它允许您使用通用 API 访问某些平台特定功能。不清楚您的问题是专门针对 Xamarin.Mobile,还是更普遍地使用 Xamarin.ios 和 Xamarin.android 进行跨平台开发。 【参考方案1】:

Xamarin 对跨平台应用程序的“传统”方法一直是使用文件链接。

我相信这目前正在转变为推荐任一的双重方法:

文件链接

可移植类库 (PCL)

Xamarin PCL 支持的第一个版本很快就会到期(现在任何一天)。

当它变得可用且稳定时,我希望您可能会看到可用于 PCL 的 xamarin.mobile 新版本。此外,他们表示他们可能会开源 xamarin.mobile。就目前而言,我不认为 xamarin.mobile 是一个非常活跃的开发 - 我不认为它在去年发生了很大变化/增长。

在这些更改发生之前,如果您想从可移植代码中使用 xamarin.mobile,那么您最好的选择可能是遵循文件链接路线,或者使用 PCL 库但使用某种形式的 facade 来将本机 xamarin.mobile 库包装在可注入的 interface

【讨论】:

感谢您的回复。我选择 Xamarin.mobile 来获得一组 API 访问权限,希望能够最大限度地减少代码并轻松跨平台共享。那么,对于 PCL 将支持的 API 的通用访问,您有什么建议? 我想你已经知道我是谁了......所以你已经知道我给出的答案......作为线索:以 mvvm 开始并以 cross 结束......也请尝试阅读@987654321 @ 是的,我现在非常了解你 :D 非常感谢,我将开始使用 MVVMCross 和插件 (nugets)。但是使用 nuget 在尝试 [this] (slodge.blogspot.nl/2012/09/mvvmcross-vnext-portable-class.html) 之后,我面临与here 相同的问题。有什么建议吗? 我观看了 4 个您没有遇到 Profile 104 问题 (PCL) 的起始视频 抱歉 - cmets 不适用于新问题 - 不是我的规则 - ***.com/faq

以上是关于Xamarin.Mobile 跨平台实现的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin: MVVM交叉信息

Xamarin.Mobile 创建、更新和删除联系人

使用 Xamarin.Mobile 读取 Xamarin 表单中的联系人时出错

Xamarin.Mobile 相机图像流

无法在 PCL iOS 项目中安装 Xamarin.Mobile

无法使用 Xamarin.Android 中的 Xamarin.Mobile 组件保存联系人