源码地址:https://github.com/l2999019/DemoAppjava
能够Star一下,随意 - -git
本系列,终于要终章了..感受有点小失落github
把我最终的成果模版开源出来吧地址以下:api
https://github.com/l2999019/Xamarin.FormsDemo_CHN浏览器
效果如图:缓存
基本算是涵盖了常见APP大部分的功能吧..安全
WebView,二维码扫描,开灯,地图,定位,终端设备的信息网络
Xamarin在社区中其实有不少比较方便的组件,方便你们直接使用.并发
并且Xamarin团队将这些社区组件整理成了一个列表,方便咱们查询.
列表的Github地址以下:
https://github.com/xamarin/XamarinComponents
今天咱们主要是以设备信息组件为例子介绍一下如何使用社区组件
首先咱们须要查询到本身须要使用的组件.
由于是英文,并且单词比较简单,因此我直接用谷歌翻译了,表格以下:
咱们今天要使用设备信息的组件.,因此直接找到设备信息,而后进入nuget界面,引用.
注意,这里要强调的一点是,当你使用这些组件的时候,必定须要PCL项目加上客户端项目,都要引用
也就是如图:
红框中的三个项目,都须要引用一样的nuget库.由于PCL中是接口,各个平台客户端才是具体实现.
须要仔细看文档说明,有些插件是须要初始化的,因此须要你在客户端项目中初始化,好比二维码插件( ZXing.Net.Mobile)
剩下的代码就很简单了,咱们先建立一个Page,并添加listView控件以下:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.FormsDemo_CHN.Views.SheBeiInfoPage" Title="设备信息" > <ContentPage.Content> <StackLayout> <ListView x:Name="ItemsListView" > <ListView.ItemTemplate > <DataTemplate > <TextCell Text="{Binding TextName}" Detail="{Binding Name}" DetailColor="#7EC0EE" /> </DataTemplate> </ListView.ItemTemplate> </ListView> <Label Text="Welcome to Xamarin.Forms!" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" /> </StackLayout> </ContentPage.Content> </ContentPage>
而后直接F7,进入后台代码,编写代码以下:
public partial class SheBeiInfoPage : ContentPage { List<dynamic> date = new List<dynamic>(); public SheBeiInfoPage() { InitializeComponent(); AddPhoneInfo(); ItemsListView.ItemsSource = date; } public void AddPhoneInfo() { string model = CrossDeviceInfo.Current.Model; string Version = CrossDeviceInfo.Current.Version; string VersionNumber = CrossDeviceInfo.Current.VersionNumber.ToString(); string Platform = CrossDeviceInfo.Current.Platform.ToString(); date.Add(new { TextName = model, Name = "设备名称" }); date.Add(new { TextName = Version, Name = "设备版本" }); date.Add(new { TextName = VersionNumber, Name = "设备版本号" }); date.Add(new { TextName = Platform, Name = "设备平台" }); } }
由于封装的已经很完善了,直接经过静态类CrossDeviceInfo,就能够获取相关的设备信息.
tip:最新的版本新增了判断是否为模拟器的功能,可是nuget好像没加入,须要使用的话能够从github自行编译.
原本打算这篇文章讲绑定类库,可是看了一下,网上已经不少这类的文章了,原本操做也比较简单...我就不过多的哗众取宠了.
惟一要解释的一点,
就是关于绑定了类库以后,会类名,变量名报错的问题.
不少文章都是一笔带过..让你们修改Metadate.xml更改绑定规则就完事了..
不过我以为 授人以鱼不如授人以渔.
出现这个错误的主要缘由是:
GAPI这个工具,会将java代码自动化解析成C#代码,可是,完美的解析,是不可能的.
因此会出现少许的错误信息,须要咱们配置这个xml文件来特殊配置这些错误的节点.
咱们应该用的最多的就是attr这个节点,以下:
<attr path="/api/namespace/object[@cname='GtkWindow']/signal[@name='ActivateDefault']" name="name">DefaultActivated</attr>
咱们可使用它来更改任何现有属性的值,或将新属性插入API文件中的任何元素。
<attr>元素有两个属性path和name,使用path来标识要更改的元素,并使用name来标识元素上的属性名称。
固然,各位若是想更深刻的了解这个能够把java变成C#的神奇神器..能够到以下地址查看
http://www.mono-project.com/docs/gui/gtksharp/gapi/
结束了..Xamarin说难,其实也不难,说简单,其实你须要了解的东西仍是挺多的.
但愿开源出来的项目模版能帮到你们..
最后,真诚的感谢你们对本系列的支持.
个人博客即将同步至腾讯云+社区,邀请你们一同入驻。