Xamarin在其官方博客上宣布三个跨平台组件:Xamarin.Mobile、Xamarin.Social和Xamarin.Auth更新并且开源。
这些组件也可以在Xamarin组件商店下载,提供以下功能:
- 通过简单几行代码访问硬件功能,如调用照相机
- 使用简单、跨平台的方式方位内置数据,如通讯录
- 快速整合添加社交媒体,如Facebook、Twitter、Flickr等
- 使用现有的OAuth实现构建安全的自定义身份验证
查看每个组件更多详细信息: Xamarin.Mobile, Xamarin.Auth和Xamarin.Social.
为了演示使用这3个组件创建Apps是如此简单,提供了一个简单App(SoMA)示例。该App实现拍照然后分享到社交媒体,同时使用Google地图来标记位置的功能。示例程序综合应用了三个组件:使用Xamarin.Mobile访问照相机和地址位置服务(location services);使用Xamarin.Social(结合Xamarin.Auth)集成Facebook、Twitter、Flickr、App.net……所有这些只通过几十行代码实现。示例源码可从github下载。
这是部分截图,提供一个自定义的数据输入表单。
下面这段代码,可以工作在Xamarin.iOS、Xamarin.Adnroid、Window Phone和Windows 8
var locator = new Geolocator { DesiredAccuracy = 50 }; // new Geolocator (this) { ... }; on Android var position = await locator.GetPositionAsync (timeout: 10000); Console.WriteLine ("Position Latitude: {0}", position.Latitude); Console.WriteLine ("Position Longitude: {0}", position.Longitude); location = string.Format("{0},{1}", position.Latitude, position.Longitude); LocationText.Text = location; // on UI
使用Xamarin.Socail将图片发送到Facebook获取其他社交网络变得简单,下面的代码片段可以在iOS和Android运行:
// 1. Create the service var facebook = new FacebookService { ClientId = "YOUR_CLIENT_ID", RedirectUrl = new System.Uri ("http://www.facebook.com/connect/login_success.html") }; // 2. Create an item to share var item = new Item { Text = "Xamarin.Social rocks!" }; item.Images.Add(new ImageData(fileName)); // 3. Present the UI on Android var shareIntent = service.GetShareUI (this, item, result => { // result lets you know if the user shared the item or canceled Console.WriteLine(service.Title + " shared"); }); StartActivity (shareIntent); // 3. Present the UI on iOS var shareController = facebook.GetShareUI (item, result => { // result lets you know if the user shared the item or canceled DismissViewController (true, null); }); PresentViewController (shareController, true, null);
更重要的是:
所有这些组件开源,可以在github上查看代码:Xamarin.Social, Xamarin.Mobile and Xamarin.Auth。
相信对于移动跨平台开发者来说,这是一个非常棒的新闻,有两个原因:第一,你可以看到我们如何通过跨平台的方式封装特定平台的特性(如地理位置);第二,因为开源,你可以扩展类库以支持新的硬件特性或社交媒体。
希望你喜欢使用这些组件和在编码中探索新的乐趣!
相关阅读: