WinRT - 在应用程序启动时显示弹出窗口在真实设备上的 Release 中不起作用
WinRT - Display popup at application startup not working in Release on real device
我试图在应用程序启动时显示弹出窗口(弹出窗口设计为插页式广告)。
我正在使用 "Popup" class 并在显示之前设置其内容/高度/宽度。
应用程序在 Windows Phone 8.1 winRT 上运行。
我尝试了几种方法,但每次都:
- 这适用于处于调试模式的模拟器。
- 这适用于 Release 模式下的模拟器。
- 这适用于处于调试模式的真实设备。
但这在发布模式下不适用于真实设备(不显示弹出窗口)。
这是我试过的:
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();
并结合这些方法。
通过放置断点,我可以看到代码被调用,但弹出窗口永远不会在 Release 模式下显示在真实设备上。
通过单击按钮调用自己的弹出窗口,显示弹出窗口。
我试过将代码放在各种文件中(App.xaml.cs,在我第一页的 ViewModel 中,在我第一页的 xaml.cs 中,在一个初始化我的一些参数的文件中应用程序,.....).
您知道为什么这适用于模拟器版本和设备调试但不适用于设备版本吗?
我在回答自己。
问题出在弹出窗口的初始化上(请注意,我仍然不知道为什么这不起作用)。
我有过这样的经历:
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"
};
这种方式会在应用程序启动时显示弹出窗口,运行 在处于发布模式的真实设备上。
我试图在应用程序启动时显示弹出窗口(弹出窗口设计为插页式广告)。
我正在使用 "Popup" class 并在显示之前设置其内容/高度/宽度。
应用程序在 Windows Phone 8.1 winRT 上运行。
我尝试了几种方法,但每次都:
- 这适用于处于调试模式的模拟器。
- 这适用于 Release 模式下的模拟器。
- 这适用于处于调试模式的真实设备。
但这在发布模式下不适用于真实设备(不显示弹出窗口)。
这是我试过的:
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();
并结合这些方法。
通过放置断点,我可以看到代码被调用,但弹出窗口永远不会在 Release 模式下显示在真实设备上。
通过单击按钮调用自己的弹出窗口,显示弹出窗口。
我试过将代码放在各种文件中(App.xaml.cs,在我第一页的 ViewModel 中,在我第一页的 xaml.cs 中,在一个初始化我的一些参数的文件中应用程序,.....).
您知道为什么这适用于模拟器版本和设备调试但不适用于设备版本吗?
我在回答自己。
问题出在弹出窗口的初始化上(请注意,我仍然不知道为什么这不起作用)。
我有过这样的经历:
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"
};
这种方式会在应用程序启动时显示弹出窗口,运行 在处于发布模式的真实设备上。