【问题标题】:Implementing a dead reckoning application using Xamarin Forms使用 Xamarin Forms 实现航位推算应用程序
【发布时间】:2017-02-10 21:42:22
【问题描述】:

我需要使用 xamarin 实现航位推算应用程序。为此,我需要从 Android/ios 和 windows phone 访问计步器/加速度计。由于他们有自己的 API 可以调用,我相信方法是在 PCL 项目中创建一个接口,然后为每个平台提供本机实现。然后可以使用程序集使这些可见。除此之外,是否有任何方法可以在 PCL 项目本身中实现整个代码?没有每个平台的本机实现?

【问题讨论】:

    标签: xamarin xamarin.ios xamarin.android xamarin.forms cross-platform


    【解决方案1】:

    您的应用程序的逻辑可以在 PCL 中完成,但调用计步器或加速度计必须在本地完成。

    基本方法是(只是一个例子)

    public interface IPedometer
    {
        int GetSteps();
    }
    

    这个接口在你的 PCL 中。

    在每个原生平台上创建一个类(例如 NativePedometer),实现此接口并原生代码以获取结果。

    在每个原生平台上使用依赖注入,例如

    DependencyService.Register<NativePedometer>();
    

    然后在您的 PCL 中使用以下内容。

    DependencyService.Get&lt;IPedometer&gt;() 并在您的 PCL 中执行业务逻辑。这允许您跨平台重用尽可能多的代码。

    这是最好的方法,但你不能避免编写本机代码,我所说的本机代码是指传统/本机 Xamarin 项目中的 C#。

    【讨论】:

    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多