C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)
系列目录
源码地址:https://github.com/l2999019/DemoApp
可以Star一下,随意 - -
说点什么..
本系列,终于要终章了..感觉有点小失落
把我最终的成果模版开源出来吧地址如下:
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说难,其实也不难,说简单,其实你需要了解的东西还是挺多的.
希望开源出来的项目模版能帮到大家..
最后,真诚的感谢大家对本系列的支持.
我的博客即将同步至腾讯云+社区,邀请大家一同入驻。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
原文: C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译) 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 今天讲讲如何混淆我们的C#代码,来达到反编译的目的 今天的学习内容? 使用Dotfuscator来混淆C#代码,防止反编译. 正文 嗯,既然是客户端应用,自然而然就需要一些防止源码泄漏的手段.通过C#编写的APP,完全是可以直接解压APK,然后得到里面的DLL然后进行反编译的.. 如下图: 嗯..这样就会造成代码泄漏.. 下面就介绍一下,如何使用VS自带的Dotfuscator来进行混淆代码. 1.安装Dotfuscator 打开VS2017的安装工具,如下,点击修改按钮. 选择单个组件,如下: 在代码工具中找到Dotfuscator并添加.(注意:这里我们安装的是社区版,功能有限,如果需要更深度的混淆,请购买专业版..) 这样,我们的安装就完成了. 2.将Dotfuscator与Xamarin项目集成(重...
- 下一篇
计算机开放电子书 2017 归档
版权声明:License CC BY-NC-SA 4.0 https://blog.csdn.net/wizardforcel/article/details/82588192 Aircrack-ng 教程及文档(部分) Gitee 下载 Github 下载 SourceForge 下载 CEH v9 Links Gitee 下载 Github 下载 SourceForge 下载 CTF Writeups 2016.9.29 Gitee 下载 Github 下载 SourceForge 下载 Django 中文文档 1.8 20170215 Gitee 下载 Github 下载 SourceForge 下载 Exploit 编写系列教程 1 ~ 11 Gitee 下载 Github 下载 SourceForge 下载 Exploring ES2016 and ES2017 Gitee 下载 Github 下载 SourceForge 下载 Exploring ES6 Gitee 下载 Github 下载 SourceForge 下载 FuzzySecurity Windows Expl...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启