本篇為大家介紹一下 Windows Phone 8.1 中部分常用啟動器的實現方式。分別是 呼叫電話、發送短信、發送郵件、添加約會到日歷、啟動地圖、地圖路線顯示、地圖下載 和 地圖更新。
1. 呼叫電話
我們使用 PhoneCallManager 的 ShowPhoneCallUI 方法來實現呼叫電話。該方法的兩個參數分別是 電話號碼 和 顯示名稱。
Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI("10086", "中國移動");
2. 發送短信
我們使用 ChatMessageManager 的 ShowComposeSmsMessageAsync 方法來實現發送短信。該方法接收的參數為一個 ChatMessage 對象,其中重要的屬性是 Body (信息內容)和 Recipients (發送到的電話號碼集合)。
Windows.ApplicationModel.Chat.ChatMessage msg = new Windows.ApplicationModel.Chat.ChatMessage(); msg.Body = "This is body of demo message."; msg.Recipients.Add("10086"); msg.Recipients.Add("10010"); await Windows.ApplicationModel.Chat.ChatMessageManager.ShowComposeSmsMessageAsync(msg);
3. 發送郵件
我們使用 EmailManager 的 ShowComposeNewEmailAsync 方法來實現發送短信。該方法接收的參數為一個 EmailMessage 對象,其中有幾個重要的屬性:
- To : 收件人列表
- Bcc:Bcc列表
- CC :CC列表
- Subject:郵件主題
- Body:郵件正文
- Attachments:附件列表
var file = await getAttachment(); Windows.ApplicationModel.Email.EmailAttachment emailAttachment = new Windows.ApplicationModel.Email.EmailAttachment(file.Name, file); Windows.ApplicationModel.Email.EmailMessage mail = new Windows.ApplicationModel.Email.EmailMessage(); mail.Attachments.Add(emailAttachment); mail.Subject = "This is Subject"; mail.Body = "This is body of demo mail"; mail.To.Add(new Windows.ApplicationModel.Email.EmailRecipient("shaom_wp@hotmail.com", "shaomeng")); await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(mail);
其中 getAttachment 方法如下:
private async Task<StorageFile> getAttachment() { var folder = Windows.Storage.ApplicationData.Current.LocalFolder; var subfolder = await folder.CreateFolderAsync("MyFolder", Windows.Storage.CreationCollisionOption.OpenIfExists); var file = await subfolder.CreateFileAsync("MyAttachment.txt", Windows.Storage.CreationCollisionOption.ReplaceExisting); await Windows.Storage.FileIO.WriteTextAsync(file, "Hello World!"); return file; }
4. 添加約會到日歷
我們使用 AppointmentManager 的 ShowAddAppointmentAsync 方法來向日歷添加我們定義的約會,同時可以對現有約會進行管理。該方法接收參數為 Appointment 對象。有幾個重要的屬性:
- Subject - 約會的主題
- Location - 約會的位置
- Details - 約會的詳細內容
- Duration - 約會持續的時間
- StartTime - 約會開始的時間
- AllDay - 是否持續整天
另外還有很多可設置屬性,不再一一例舉,大家可以自行研究。來看看代碼實現:
Windows.ApplicationModel.Appointments.Appointment appointment = new Windows.ApplicationModel.Appointments.Appointment(); appointment.AllDay = false; appointment.Details = "Appointment's Detail"; appointment.Duration = TimeSpan.FromHours(2.0); appointment.Location = "Demo Location"; appointment.StartTime = DateTime.Now; appointment.Subject = "Demo Subject"; await Windows.ApplicationModel.Appointments.AppointmentManager.ShowAddAppointmentAsync(appointment, new Rect());
我們新建了一個現在開始,持續兩小時的約會。來看看運行效果:
5. 啟動地圖
我們使用 Windows.System.Launcher 的 LaunchUriAsync 來啟動必應地圖的 Uri,Uri 的格式是 bingmaps:uri scheme。具體的uri scheme,請參照:URI Scheme for maps application 。
await Windows.System.Launcher.LaunchUriAsync(new Uri("bingmaps:?lvl=10&where=Beijings", UriKind.Absolute));
如上代碼中,我們啟動必應地圖,在級別為10的情況下顯示搜索的結果,也就是Beijing。來看運行結果:
6. 地圖路線顯示
我們同樣使用 Windows.System.Launcher 的 LaunchUriAsync 來啟動必應地圖的 Uri 以顯示路線規划,具體格式同樣可參照:URI Scheme for maps application。
await Windows.System.Launcher.LaunchUriAsync(new Uri("bingmaps:?rtp=adr.Beijing~adr.Tianjin", UriKind.Absolute));
這是我們要顯示Beijing 到 Tianjin 的路線,來看看運行結果:
7. 地圖下載
我們使用 MapManager 的 ShowDownloadedMapsUI 方法來啟動地圖下載界面。
Windows.Services.Maps.MapManager.ShowDownloadedMapsUI();
8. 地圖更新
我們使用 MapManager 的 ShowMapsUpdateUI 方法來啟動地圖更新界面。
Windows.Services.Maps.MapManager.ShowMapsUpdateUI();
好了,到這里我們就把Windows Phone 8.1 中部分常用的啟動器介紹完了,希望對大家有幫助,謝謝。