原生添加UWP如何添加多个实例?
How to add multiple instances of the native add UWP?
我有一个显示多个视频目录的 UWP 应用程序。它们位于单独的页面中。为此,我创建了一个 NativeAdV2
控件:
public sealed partial class CardAdvert : UserControl
{
NativeAdsManagerV2 manager = new NativeAdsManagerV2("d25517cb-12d4-4699-8bdc-52040c712cab", "test");
NativeAdV2 advert;
public CardAdvert()
{
InitializeComponent();
manager.AdReady += AdReady;
manager.RequestAd();
}
private void AdReady(object sender, NativeAdReadyEventArgs e)
{
advert = e.NativeAd;
Initialize();
e.NativeAd.RegisterAdContainer(this); //Exception is here
}
public void Initialize()
{
title.Text = advert.Title;
image.Source = new BitmapImage(advert.MainImages.First().Url.ToUri());
if (advert.AdIcon == null)
contentGrid.ColumnDefinitions[0].Width = new GridLength(0);
else
icon.ProfilePicture = advert.AdIcon.Source;
if (string.IsNullOrWhiteSpace(advert.SponsoredBy))
sponsor.Visibility = Visibility.Collapsed;
else
sponsor.Text = advert.SponsoredBy;
if (!string.IsNullOrWhiteSpace(advert.Rating))
info.Text += $" {advert.Rating}";
if (string.IsNullOrWhiteSpace(advert.CallToActionText) && string.IsNullOrWhiteSpace(advert.Price))
desc.Visibility = Visibility.Collapsed;
else if (!string.IsNullOrWhiteSpace(advert.CallToActionText))
desc.Text = advert.CallToActionText;
else
desc.Text = advert.Price;
}
}
但是无论我在哪里创建它(即使是在不同的页面上)第二次或第三次它都会在 e.NativeAd.RegisterAdContainer(this)
上抛出异常:
Unhandled exception at 0x082A1330 (Windows.UI.Xaml.dll) in FoxTube.exe:
0xC000027B: An application-internal exception has occurred (parameters: 0x1E9F4608, 0x00000003)
MSDN 论坛或其他地方以及 NativeAdV2 class 文档
中都没有类似内容
太好了,我想每 10 个视频插入一次此控件。或者至少在每一页上。有什么解决办法吗?
实际上,我不知道为什么 Microsoft 不想修复此问题,但正如他们所说,它适用于早期版本。您只需将目标版本和最低版本降级到 17134 即可。您还可以使用 Windows UI Library 获取最新的 XAML 控件
我有一个显示多个视频目录的 UWP 应用程序。它们位于单独的页面中。为此,我创建了一个 NativeAdV2
控件:
public sealed partial class CardAdvert : UserControl
{
NativeAdsManagerV2 manager = new NativeAdsManagerV2("d25517cb-12d4-4699-8bdc-52040c712cab", "test");
NativeAdV2 advert;
public CardAdvert()
{
InitializeComponent();
manager.AdReady += AdReady;
manager.RequestAd();
}
private void AdReady(object sender, NativeAdReadyEventArgs e)
{
advert = e.NativeAd;
Initialize();
e.NativeAd.RegisterAdContainer(this); //Exception is here
}
public void Initialize()
{
title.Text = advert.Title;
image.Source = new BitmapImage(advert.MainImages.First().Url.ToUri());
if (advert.AdIcon == null)
contentGrid.ColumnDefinitions[0].Width = new GridLength(0);
else
icon.ProfilePicture = advert.AdIcon.Source;
if (string.IsNullOrWhiteSpace(advert.SponsoredBy))
sponsor.Visibility = Visibility.Collapsed;
else
sponsor.Text = advert.SponsoredBy;
if (!string.IsNullOrWhiteSpace(advert.Rating))
info.Text += $" {advert.Rating}";
if (string.IsNullOrWhiteSpace(advert.CallToActionText) && string.IsNullOrWhiteSpace(advert.Price))
desc.Visibility = Visibility.Collapsed;
else if (!string.IsNullOrWhiteSpace(advert.CallToActionText))
desc.Text = advert.CallToActionText;
else
desc.Text = advert.Price;
}
}
但是无论我在哪里创建它(即使是在不同的页面上)第二次或第三次它都会在 e.NativeAd.RegisterAdContainer(this)
上抛出异常:
Unhandled exception at 0x082A1330 (Windows.UI.Xaml.dll) in FoxTube.exe:
0xC000027B: An application-internal exception has occurred (parameters: 0x1E9F4608, 0x00000003)
MSDN 论坛或其他地方以及 NativeAdV2 class 文档
中都没有类似内容太好了,我想每 10 个视频插入一次此控件。或者至少在每一页上。有什么解决办法吗?
实际上,我不知道为什么 Microsoft 不想修复此问题,但正如他们所说,它适用于早期版本。您只需将目标版本和最低版本降级到 17134 即可。您还可以使用 Windows UI Library 获取最新的 XAML 控件