2014-09-04 55 views
0

启动我的Win8商店应用程序时,我想传递参数参数。带初始参数参数的Windows 8商店应用程序调用

我正在看以下在App类中调用的方法。看起来它正在传递参数,所以我的问题是如何将参数传递给“OnLaunched”?本质上讲,当我运行该应用从Win8的菜单

protected override void OnLaunched(LaunchActivatedEventArgs e) 
    { 
     if (rootFrame.Content == null) 
     { 
      // When the navigation stack isn't restored navigate to the first page, 
      // configuring the new page by passing required information as a navigation 
      // parameter 
      rootFrame.Navigate(typeof(MainPage), e.Arguments); 
     } 
    } 

回答

0

这些参数可以通过可用于在应用程序启动的应用程序启动到指定的页面二级瓷砖传递在直线距离。

我通常使用ViewManager来管理基于这些参数显示的视图。

App.cs

protected override async void OnLaunched(LaunchActivatedEventArgs args) 
{ 
    ApplicationData.Current.LocalSettings.Values[Constants.APP_PARAMETERS] = args.Arguments; 

    // Do not repeat app initialization when already running, just ensure that 
    // the window is active 
    if (args.PreviousExecutionState == ApplicationExecutionState.Running) 
    { 
     Window.Current.Activate(); 

     await ViewManager.Instance.LaunchView(); 

     return; 
    } 

ViewManager:

public class ViewManager 
{ 
    #region Singleton 
    private ViewManager() 
    { 
    } 

    static ViewManager _viewManager = null; 

    public static ViewManager Instance 
    { 
     get 
     { 
      if (_viewManager == null) 
      { 
       _viewManager = new ViewManager(); 
      } 

      return _viewManager; 
     } 
    } 
    #endregion 

    public async Task LaunchView() 
    { 
     bool displaySubheader = false; 
     var displayBackbutton = false; 

     var arguments = ApplicationData.Current.LocalSettings.Values[Constants.APP_PARAMETERS] as string; 
     var argumentsExist = !string.IsNullOrEmpty(arguments); 

     if (!argumentsExist) 
     { 
      await UIServices.Instance.Load(typeof(HomePage), null, displaySubheader, displayBackbutton); 
     } 
     else 
     { 
      displaySubheader = true; 
      displayBackbutton = false; 
      await UIServices.Instance.Load(typeof(GroupPage), arguments, displaySubheader, displayBackbutton); 

      var groupId = new Guid(arguments); 

      await ReadPost(groupId); 
     } 
    }