我需要使用xamarin实现航位推算应用程序。为了做到这一点,我需要从Android / ios和Windows手机访问计步器/加速度计。由于他们有自己的API被调用,我相信这种方法是在PCL项目中创建一个接口,然后为每个平台提供本机实现。然后可以使用组件使这些可见。除此之外,是否有任何方法可以在PCL项目本身中实现整个代码?没有每个平台的本机实现?
答案 0 :(得分:0)
您的应用程序的逻辑可以在PCL中完成,但调用计步器或加速计必须本地完成。
基本方法是(只是一个例子)
public interface IPedometer
{
int GetSteps();
}
此界面在您的PCL中。
在每个本机平台上创建一个类(例如NativePedometer),实现此接口并使用本机代码来获取结果。
在每个本机平台上使用依赖注入,例如
DependencyService.Register<NativePedometer>();
然后在PCL中使用以下内容。
DependencyService.Get<IPedometer>()
并在您的PCL中执行业务逻辑。这允许您跨平台重用尽可能多的代码。
这是最好的方法,但你无法避免编写本机代码,而本地代码我指的是传统/原生Xamarin项目中的C#。