簡體   English   中英

Windows Phone-啟動時存儲通用應用程序MessageDialog

[英]Windows Phone - Store Universal App MessageDialog on launch

我想在應用啟動時顯示messagedialog。 但是在通用應用中,此代碼無法正常工作。 我想請用戶進行審查。

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var composite = localSettings.Values["askforreview"];

if (composite == null)
{
    localSettings.Values.Add("askforreview", true);
    composite = true;
}
bool askforreview = Convert.ToBoolean(composite);
if (askforreview)
{
    MessageDialog dialog = new MessageDialog("some message");
    dialog .Commands.Add(new UICommand("Yes", ( command) =>
      {
          Launcher.LaunchUriAsync(CurrentApp.LinkUri);
      }));
    dialog.Commands.Add(new UICommand("Not Now"));
    await dialog .ShowAsync();
}

當我調試應用程序時,我總是收到錯誤“ a.ShowAsnyc”語句。 程序在App.gics的此語句中停止。

if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();

當涉及到MessageDialogs時,這種類型的異常(UnauthorizedAccessException-訪問被拒絕)通常發生在當您嘗試打開另一個MessageDialog時已經打開了一個MessageDialog時。

我能夠使您的代碼在頁面構造函數(盡管沒有等待)和頁面加載的異步事件處理程序中都能正常工作。 但是,如果我試圖一個接一個地在兩個地方進行操作,則由於上述原因,它將引發異常。

因此,請在嘗試顯示該對話框時,確保沒有打開另一個MessageDialog。 您是否可能將此代碼保留在頁面構造函數和應用程序啟動的事件處理程序中? 那可能會導致它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM