WinRT - 在应用程序启动时显示弹出窗口,无法在真实设备上发布

时间:2016-05-24 11:13:44

标签: c# windows-runtime popup windows-phone windows-store-apps

我正在尝试在应用程序启动时显示弹出窗口(弹出窗口设计为插页式广告)。

我正在使用“Popup”类,我在显示它之前设置了它的内容/高度/宽度。

该应用程序在Windows Phone 8.1 winRT上运行。

我尝试了几种方法,但每次都是:

  • 这适用于调试模式下的模拟器。
  • 这适用于发布模式下的模拟器。
  • 这适用于调试模式下的实际设备。

但这在发布模式下不适用于真实设备(不显示弹出窗口)。

这就是我尝试过的:

1

InterstitialPopup.IsOpen = true;

2

DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromMilliseconds(100);
dt.Tick += (o, o1) =>
{
    dt.Stop();
    InterstitialPopup.IsOpen = true;
};
dt.Start();

第3:

Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
    InterstitialPopup.IsOpen = true;
});

4

Task.Run(() => InterstitialPopup.IsOpen = true);

5

Task t = new Task(() => InterstitialPopup.IsOpen = true );
t.RunSynchronously();

结合这些方法。

通过放置断点,我可以看到代码被调用,但弹出窗口永远不会在发布模式下显示在真实设备上。

通过单击按钮自动弹出窗口,将显示弹出窗口。

我已经尝试将代码放在各种文件中(App.xaml.cs,在我的第一页的ViewModel中,在我的第一页的xaml.cs中,在一个初始化我的应用程序的某些参数的文件中,... ...)。

您是否知道为什么这对模拟器发布和设备调试有效,但对设备发布无效?

1 个答案:

答案 0 :(得分:0)

我自己回答。

问题在于弹出窗口的初始化(请注意,我仍然不知道为什么这不起作用)。

我有这样的事情:

MyContent c = new MyContent();
c.Attribute1 = "something";
c.Attribute2 = "something";

Popup p = new Popup();
p.Child = c;

我不得不像这样重写它以使其在发布模式下在真实设备上工作:

Popup p = new Popup();
p.Child = new MyContent()
{
    Attribute1 = "something",
    Attribute2 = "something"
};

这样,当应用程序启动时会显示弹出窗口,在发布模式下在真实设备上运行。