Xamarin三大跨平台组件(Xmarin.Mobile、Xamarin.Social、Xamarin.Auth)开源

Xamarin在其官方博客上宣布三个跨平台组件:Xamarin.Mobile、Xamarin.Social和Xamarin.Auth更新并且开源。

这些组件也可以在Xamarin组件商店下载,提供以下功能:

  • 通过简单几行代码访问硬件功能,如调用照相机
  • 使用简单、跨平台的方式方位内置数据,如通讯录
  • 快速整合添加社交媒体,如Facebook、Twitter、Flickr等
  • 使用现有的OAuth实现构建安全的自定义身份验证

查看每个组件更多详细信息: Xamarin.Mobile, Xamarin.AuthXamarin.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

相信对于移动跨平台开发者来说,这是一个非常棒的新闻,有两个原因:第一,你可以看到我们如何通过跨平台的方式封装特定平台的特性(如地理位置);第二,因为开源,你可以扩展类库以支持新的硬件特性或社交媒体。

希望你喜欢使用这些组件和在编码中探索新的乐趣!

相关阅读:

Xamarin.Mobile 移动跨平台API

原文地址:https://www.cnblogs.com/51mono/p/3224919.html