在Build2018前的两周摆布,我拿到了Xamarin。Essentials的测试版本(基于nda我只能比及此刻才能发布),这是一个为拜候一些设备硬件和底层给iOS/Android/UWP三个平台做的同一接口,适配了Standard 2。0(当然也包含。NET Standard 1。0 / iOS / Android)。通过Xamarin。Essentails你能够很是快速地拜候分歧平台的摄像头,地舆位置,收集检测,更能挪用如打德律风,相册,通信录等相当便利适用。如我需要领会设备消息的时候,通过Xamarin。Essentails就是一句很是简单的话就能够完成了
看看上面的代码是比力风趣,能够料想到用原生方式写一个摄像头挪用你可能需要更多的工作,并且这更接近序员的利用习惯。假若你但愿为Xamarin制造一个跨平台的,也能针对分歧平台底层操作,又有一个通用接口的库,这三个通用组件的源码就是很好的教程。xamarin官网
3。 用DependencyService,在通过公用层生成接口,再在分歧平台上实现。这是在Xamarin中最常用的方式,
回到封装库,起首要定下一个方针就是做个Standard的库,而不再是做PCL。 还有做这种通用库更该当考虑兼容多平台,如iOS/Android/UWP等。以往的做法你可能需要搭建良多的目次,然后去承继一个公共接口去完成。此刻通过MSBuild。Sdk。Extras(点击查看),xamarin官网 通过MSBuild能够对分歧平台进行快速编译,生成跨平台的库。参考Xamarin。Essentials(点击进入),我本人起头编写一个简单的库。先看看实现道理(如图)
在Standard 项目中你能够针对分歧平台进行编译,xamarin官网操纵第三方的MSBuild。Sdk。Extras进行分歧平台库的生成工作,在这种方式上你不再需要上面提到的宏定义或Dependency Service,只需要针对事后设置好的文件进行跨平台编译,这大大便利了代码的办理和维护。xx。standard。cs是一个公用的文件,相当于为分歧平台定义了一个接口,而具体实现放到各自平台上如xx。ios。cs , xx。android。cs 。。。。。 最初通过shared封装公共方式表露给分歧项目拜候。
最初Xamarin的第三方库在国外有不少,但国内仍是相对较少,但愿列位快乐喜爱者都贡献一下,为这个手艺落地贡献一份力量。