是否可以将特定的Xamarin.IOS引用到Xamarin表单中

问题描述 投票:-1回答:1

我们正在尝试结合使用Xamarin Form(非XAML)创建的Xamarin代码,另一个是纯Xamarin.IOS。

我们看一下Xamarin.Essential的库,看起来它没有CoreMotion.CMPedometer(iOS),因为我们需要计算步数。

是否可以在Xamarin表单(共享)中运行代码来处理特定的操作系统?

谢谢

xamarin.forms xamarin.ios
1个回答
1
投票

是的,您需要使用依赖服务。

所有的doco都可以在这里找到... https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/dependency-service/introduction

这里显示了一个与设备信息有关的例子(为简单起见已经减少了)

首先,您在.NET标准/ PCL项目中创建一个接口(如果您不使用共享,可能就是这种情况)。

using System;

namespace MyApplication.Interfaces
{
    public interface IDeviceInfo
    {
        String GetDeviceModel();
        String GetDeviceVersion();
    }
}

然后在特定于平台的项目中,创建一个实现该接口的依赖关系服务,并指示编译器将该类识别为依赖关系服务。

using System;
using MyApplication.Interfaces;
using UIKit;

[assembly: Xamarin.Forms.Dependency(typeof(MyApplication.iOS.DeviceInfo))]
Namespace MyApplication.iOS
{
    public class DeviceInfo : IDeviceInfo
    {
        UIDevice _device;

        Public DeviceInfo()
        {
            _device = new UIDevice();
        }

        public string GetDeviceModel()
        {
            return _device.Model;
        }

        public string GetDeviceVersion()
        {
            return _device.SystemVersion;
        }
    }
}

现在,从.NET标准/ PCL项目,您可以根据需要调用依赖服务。

var deviceModel = DependencyService.Get<IDeviceInfo>().GetDeviceModel();

以上是针对iOS的,这意味着您需要为Android和UWP(或任何适用的)实现相同的概念。

看看这对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.