如何在 Xamarin(iOS 和 Android)应用程序中使用 Windows 命名空间?

Posted

技术标签:

【中文标题】如何在 Xamarin(iOS 和 Android)应用程序中使用 Windows 命名空间?【英文标题】:How do I use Windows namespaces in Xamarin (iOS and Android) app? 【发布时间】:2020-03-23 13:15:17 【问题描述】:

我知道有 Windows 特定的 API。但是是否有任何指南或教程来构建需要使用某些 Windows API 的应用程序?还有如何将一些 UWP apps 移植到 Xamarin(iosandroid)?

例如,我可以在 Xamarin 的共享代码项目中简单地使用命名空间/库而不使用 UWP 项目吗?

using Windows.AI.MachineLearning;
using Windows.Devices;

我的目的是构建一个 Andoid 或 iOS 应用程序,该应用程序可以通过设备协议无关的连接与 Windows 操作系统进行交互。

【问题讨论】:

一般来说,没有。如果它是 .NET 标准库或专门为在 Xamarin 上运行而构建的,那么可以。 我明白了。所以我只能在 UWP 应用中使用 Windows 命名空间? 是的。您可以使用 DependencyService 将特定于平台的行为注入到您的通用代码中。 【参考方案1】:

您可以在共享项目中使用这些特定于 Windows 的命名空间,但只能使用条件 #if WINDOWS_UWP 编译指令。更多关于如何做到这一点的阅读是here。

即使您可以在共享项目中编写此代码,也只有在您使用 UWP 目标项目构建它时才会编译它。当您尝试为 iOS 或 Android 构建项目时,这些行将被省略,您将无法在目标项目中使用特定于 Windows 的 API。

为了在您的 iOS 和 Android 应用程序中提供机器学习功能,您需要实现支持这些功能的平台特定服务,Tensorflow for Android 和 Core ML for iOS。

【讨论】:

以上是关于如何在 Xamarin(iOS 和 Android)应用程序中使用 Windows 命名空间?的主要内容,如果未能解决你的问题,请参考以下文章

如何以 xamarin 形式获取 android 和 IOS 设备令牌?

在android和ios xamarin表单中单击或点击图像时如何显示数字(1,2,3)

如何从 Xamarin Forms 项目调用 Android 和 iOS 项目中可用的方法?

如何在 VSTS 中为 Xamarin iOS 和 Android 部署添加快速通道工具

Xamarin 移动应用开发指南 - 如何在 iOS、Android 和 UWP 的 WebView 中加载本地网站 (HTML/CSS/JS ..) [重复]

如何在 Xamarin.Forms for android / ios 中实现特定布局