/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="sender"> /// The source of the event; typically <see cref="Common.NavigationHelper"/> /// </param> /// <param name="e">Event data that provides both the navigation parameter passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and /// a dictionary of state preserved by this page during an earlier /// session. The state will be null the first time a page is visited.</param> private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { //// One drive authentication string clientId = "kZoNIQAeXdWUvxXcx2vyF1E72Rg03JRz"; string returnUrl = "https://login.live.com/oauth20_authorize.srf"; string[] scopes = { "onedrive.readwrite", "wl.offline_access", "wl.signin" }; var oneDriveClient = OneDriveClientExtensions.GetClientUsingOnlineIdAuthenticator(scopes); await oneDriveClient.AuthenticateAsync(); var item = await oneDriveClient .Drive .Root .ItemWithPath("Music/test.mp3") .Request() .GetAsync(); Debug.WriteLine(item.Audio.Duration); //////// group = await MusicDataSource.GetGroupAsync((String)e.NavigationParameter); this.DefaultViewModel["Group"] = group; this.DefaultViewModel["Items"] = group.Items; if (e.PageState == null) { this.itemListView.SelectedItem = null; // When this is a new page, select the first item automatically unless logical page // navigation is being used (see the logical page navigation #region below.) if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null) { this.itemsViewSource.View.MoveCurrentToFirst(); } } else { // Restore the previously saved state associated with this page if (e.PageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null) { var selectedItem = await MusicDataSource.GetItemAsync((String)e.PageState["SelectedItem"]); this.itemsViewSource.View.MoveCurrentTo(selectedItem); } } }
private async Task GetMusicDataAsync() { string responseString = ""; // string path = "http://www.shahmalav.com/api/tracks.json"; string path = "http://76.228.72.40/tracks.json"; dotest(path); if (this._groups.Count != 0) return; Uri uri = new Uri(path); HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(uri); if (response.StatusCode == HttpStatusCode.OK) { responseString = await response.Content.ReadAsStringAsync(); } /// test using local storage file /* StorageFile file = await StorageFile StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri); string jsonText = await FileIO.ReadTextAsync(file); */ string jsonText = responseString; JsonObject jsonObject = JsonObject.Parse(jsonText); JsonArray jsonArray = jsonObject["Groups"].GetArray(); foreach (JsonValue groupValue in jsonArray) { JsonObject groupObject = groupValue.GetObject(); MusicDataGroup group = new MusicDataGroup(groupObject["UniqueId"].GetString(), groupObject["Title"].GetString(), groupObject["Subtitle"].GetString(), groupObject["ImagePath"].GetString(), groupObject["Description"].GetString()); foreach (JsonValue itemValue in groupObject["Items"].GetArray()) { JsonObject itemObject = itemValue.GetObject(); group.Items.Add(new MusicDataItem(itemObject["UniqueId"].GetString(), itemObject["Title"].GetString(), itemObject["Subtitle"].GetString(), itemObject["ImagePath"].GetString(), itemObject["Description"].GetString(), itemObject["Content"].GetString())); } this.Groups.Add(group); } }