适用于Android和iOS的单个库

时间:2018-05-07 05:31:25

标签: xamarin xamarin.ios xamarin.android portable-class-library

我是Xamarin的新手,并分别为iOS和Android开发了Xamarin Class Library。该库有一些业务逻辑,可以为iOS启动ViewController,为Android启动Activity。 iOS和Android生成的二进制文件分别是iOS.dll和Android.dll。然后在Xamarin.iOS和Xamarin.Android本机应用程序中使用这些库。

Android和iOS的业务逻辑中有一些相同点。有没有办法开发一个单独的库,它具有整个业务逻辑,并对不同逻辑的平台进行条件检查。

我查看了可移植类库,但它要求包含Xamarin.Forms以便使用它。我没有在应用程序的任何部分使用Xamarin.Forms。我使用库时出现以下错误

PCL代码

if (Device.OS == TargetPlatform.iOS)
{
    Lib_iOS.Helper helper = new Lib_iOS.Helper();
    helper.launchScreen(parameters, callback);
}
else if (Device.OS == TargetPlatform.Android)
{
    Lib_Android.Helper helper = new Lib_Android.Helper();
    helper.launchScreen(parameters, callback);
}

错误

  

你必须调用Xamarin.Forms.Init();在使用之前。

注意:作为业务需求的一部分,我只需要在iOS和Android应用程序中使用.dll

1 个答案:

答案 0 :(得分:0)

请参阅有关代码共享选项的官方文章:https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/code-sharing

如果要将特定于平台的条件使用相同的代码,则可以创建共享项目。条件看起来像

#if __ANDROID__
...
#else
...
#endif