如何使用iap Windows phone 8删除广告
本文关键字:删除 phone 何使用 iap Windows | 更新日期: 2023-09-27 17:51:24
我正在尝试添加IAP来删除应用中的广告,但我找不到关于如何做到这一点的清晰教程。我试了下几个:http://code.msdn.microsoft.com/wpapps/Free-App-With-Paid-Products-f138d4a8
但那只是没有任何解释的代码。
我也尝试并遵循了这一步的每一步:http://www.visuallylocated.com/post/2013/07/19/Remove-ads-with-an-in-app-purchase-across-your-entire-app.aspx
我的广告是在一个UserControl,因为我使用多个页面,只是调用UserControl下一个方式:<Grid Height="auto" VerticalAlignment="Bottom">
<local:Advertisement x:Name="advertisement" Width="480" Height="80" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
</Grid>
和UserControl代码:'
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
<Ads:AdControl HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0" Height="70" PublisherID="XXXXX"/>
</Grid>
基本上我想做的是隐藏UserControl如果用户通过IAP购买应用程序,但我不知道如何做到这一点与这些教程。
如果你创建了自己的用户控件来包装广告,你可以订阅Loaded事件并检查全局的"AdsRemoved"属性。在加载的事件处理程序中,检查广告是否已被删除。如果有,请折叠控件。
public Advertisement()
{
Loaded += OnLoaded;
}
private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
{
if (App.AdsRemoved)
{
Visibility = Visibility.Collapsed;
}
}
如果你的AdsRemoved属性缓存了这个值,你需要一种方法在购买时重置这个值。一个快速的方法是添加setter
private static bool? _adsRemoved;
private bool AdsRemoved
{
get
{
if (_adsRemoved == null)
{
_adsRemoved = CurrentApp.LicenseInformation.ProductLicenses["RemoveAdsProductID"].IsActive;
}
return _adsRemoved.Value;
}
set
{
_adsRemoved = CurrentApp.LicenseInformation.ProductLicenses["RemoveAdsProductID"].IsActive;
}
}
然后在进行购买时,用任意值调用setter。
App.AdsRemoved = true; // or false. Doesn't matter what the value is
跟随我的帖子,这将不会从当前页面删除广告(因为它只在控件加载时被删除)。但该广告将从所有其他页面上删除。