会议可以是生产力,只要他们正确的计划和安排。 有许多工具可用于安排会议,Outlook的Calendar是此类别中最好的工具之一。
要了解如何创建移动式会议计划程序,您可以使用Xamarin.Forms和Microsoft Graph API。 Xamarin.Forms确保应用程序可以在Android,iOS和Windows上运行,而Microsoft Graph API确保应用程序可以与Outlook.com(Microsoft帐户)或Office 365(企业帐户)进行通信。
注册应用程序
创建可访问个人信息的应用程序的第一步是将其注册为所需的服务。 这可以通过登录到应用程序注册门户,单击“添加应用程序”按钮,并完成所需的工作流程来完成。 您可以在此博客示例中找到以前记录的“离开”应用程序应用程序。 请注意,您必须添加“User.Read”,“Calendars.Read”,“Calendars.ReadWrite”的委托权限。 一旦应用程序注册完成,记下客户端ID和URL。
显示会议
当用户进行身份验证时,可以在页面上显示最近五次会议的列表。 以下XAML代码示例显示了如何使用ListView完成此操作:
-
<ContentPage xmlns=""
-
xmlns:x=""
-
x:Class="Leaver.Views.MeetingList" Padding="20" Title="Meeting List">
-
<ContentPage.Content>
-
<StackLayout Spacing="20">
-
<Label x:Name="WelcomeText"/>
-
<ListView x:Name="MeetingsListView" >
-
<ListView.ItemTemplate>
-
<DataTemplate>
-
<TextCell Text="{Binding Subject}" Detail="{Binding Location.DisplayName}"></TextCell>
-
</DataTemplate>
-
</ListView.ItemTemplate>
-
</ListView>
-
</StackLayout>
-
</ContentPage.Content>
-
</ContentPage>
OnAppearing()覆盖在页面出现时执行,如以下代码示例所示:
-
protected async override void OnAppearing()
-
{
-
base.OnAppearing();
-
WelcomeText.Text = $"Welcome {((User)App.Me).DisplayName}, your latest meetings:";
-
var client = new GraphServiceClient("",
-
new DelegateAuthenticationProvider(
-
async (requestMessage) =>
-
{
-
var tokenRequest = await App.IdentityClientApp.AcquireTokenSilentAsync(App.Scopes, App.IdentityClientApp.Users.FirstOrDefault());
-
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", tokenRequest.AccessToken);
-
}));
-
var events = await client.Me.Events.Request().GetAsync();
-
var list = events.ToList();
-
MeetingsListView.ItemsSource = list.Take(5);
-
}
创建会议
除了显示会议,移动会议应用程序必须能够安排会议。 这可以通过使用Xamarin.Forms中的DatePicker和TimePicker控件来设置会议日期和时间来完成。 以下XAML代码示例显示了安排会议的基本表单:
-
<ContentPage xmlns=""
-
xmlns:x=""
-
x:Class="Leaver.Views.MeetingRequest" Title="Meeting Request" Padding="20">
-
<ContentPage.Content>
-
<StackLayout Spacing="10">
-
<Entry x:Name="Subject" Placeholder="Subject"/>
-
<StackLayout Orientation="Horizontal">
-
<DatePicker x:Name="StartDate"/>
-
<TimePicker x:Name="StartTime"/>
-
</StackLayout>
-
<StackLayout Orientation="Horizontal">
-
<DatePicker x:Name="EndDate"/>
-
<TimePicker x:Name="EndTime"/>
-
</StackLayout>
-
<Entry x:Name="Location" Placeholder="Location"/>
-
<Entry x:Name="Attendee" Placeholder="Attendee"/>
-
</StackLayout>
-
</ContentPage.Content>
-
<ContentPage.ToolbarItems>
-
<ToolbarItem Text="Add" Clicked="MenuItem_OnClicked"></ToolbarItem>
-
</ContentPage.ToolbarItems>
-
</ContentPage>
当单击工具栏按钮时,将执行以下代码:
-
private async void MenuItem_OnClicked(object sender, EventArgs e)
-
{
-
var calEvent = new Event
-
{
-
Subject = Subject.Text,
-
Start = new DateTimeTimeZone
-
{
-
DateTime = StartDate.Date.Add(StartTime.Time).ToString("yyyy-MM-ddTHH:mm:ss"),
-
TimeZone = "Asia/Kolkata"
-
},
-
End = new DateTimeTimeZone()
-
{
-
DateTime = EndDate.Date.Add(EndTime.Time).ToString("yyyy-MM-ddTHH:mm:ss"),
-
TimeZone = "Asia/Kolkata"
-
},
-
Location = new Location() {DisplayName = Location.Text},
-
Attendees = new List<Attendee>
-
{
-
new Attendee() {EmailAddress = new EmailAddress() {Address = Attendee.Text}},
-
}
-
};
-
var client = new GraphServiceClient("",
-
new DelegateAuthenticationProvider(
-
async (requestMessage) =>
-
{
-
var tokenRequest = await App.IdentityClientApp.AcquireTokenSilentAsync(App.Scopes, App.IdentityClientApp.Users.FirstOrDefault());
-
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", tokenRequest.AccessToken);
-
}));
-
await client.Me.Events.Request().AddAsync(calEvent);
-
await DisplayAlert("Event added", "Calendar invite added and sent to attendees", "Ok");
-
}
应用程序
一旦你的代码完成,你可以运行应用程序和安排会议!
结束语
Microsoft Graph API允许您使用统一的应用程序注册等功能发送电子邮件和安排会议。 Xamarin.Forms可以使用这些API,从而可以构建跨平台的应用程序来安排会议。 你可以在GitHub上找到这个博客文章中使用的示例
阅读(2007) | 评论(0) | 转发(0) |