Ich erstelle eine WinRT-App (Windows 8.1 und Windows Phone 8.1), in der ich ein AdDuplex-Anzeigensteuerelement auf einer seiner Seiten platziert habe.AdDuplex Ad Control wird weiterhin angezeigt, obwohl es zusammenbricht
Der Benutzer der App kann wählen, die Anzeige (mit einem IAP) zu entfernen. Wenn dies der Fall ist, setze ich die Visibility
des AdDuplex-Anzeigensteuerelements auf der Seite ViewModel auf Collapsed
.
Dieser Teil funktioniert gut; jedoch, nach einiger Zeit, , während der Benutzer immer noch auf der Seite ist, wird AdDuplex-Anzeigensteuerung plötzlich wieder sichtbar und startet Anzeigen von Anzeigen.
Am Anfang dachte ich, das das Verhalten des IAP ist, wenn CurrentAppSimulator
verwenden, obwohl es keinen Sinn für mich gemacht hat, da ich nichts im Code, der auf Visible
reagiert Änderungen zu lizenzieren und damit die Einstellung der Steuerung zurück . Doch testete ich license.IsActive
für meine "Noad“ Produkt und bekam true
, was darauf hinweist, dass die Lizenz gültig ist
Das Folgende ist eine vereinfachte Teil meines Codes.
MyPage.xaml
<ad:AdControl
AdUnitId="{StaticResource AdUnitId}"
AppKey="{StaticResource AdAppKey}"
IsTest="True"
CollapseOnError="True"
Visibility="{Binding IsNoAdPurchased, Converter={StaticResource BooleanToVisibilityInvertedConverter}}"/>
MyPageViewModel.cs
private async void RemoveAd()
{
this.IsNoAdPurchased = await this.storeService.PurchaseProductAsync(Products.NoAd);
}
StoreService.cs
#if DEBUG
using StoreCurrentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;
#else
using StoreCurrentApp = Windows.ApplicationModel.Store.CurrentApp;
#endif
public sealed class StoreService
{
public async Task<bool> PurchaseProductAsync(string productId)
{
try
{
var purchase = await StoreCurrentApp.RequestProductPurchaseAsync(productId);
return purchase.Status == ProductPurchaseStatus.Succeeded || purchase.Status == ProductPurchaseStatus.AlreadyPurchased;
}
catch (Exception)
{
// The purchase did not complete because an error occurred.
return false;
}
}
}
(1) Das Problem, mit dem ich konfrontiert bin, ist mit AdDuplex nicht AdMediator.Ich habe das letzte nicht versucht, (2) nicht sicher, warum Ihr Ratschlag ist, code-behind anstelle von ViewModels zu verwenden, und wie sie in dieser Situation anders sind, (3) "arbeitet an meiner Maschine" ist für mich nicht sehr hilfreich :), und (4) hier ist eine [Beispiel-App] (https://1drv.ms/u/s!AheKZK3B7g7Fi9xbYjD7_ucTXV2HRg), die das Problem reproduziert (versuchte mein Bestes, um es so ähnlich wie meine App zu machen). – TheBlueSky