Verwenden der WindowsStore-Komponente
Mit der Komponente TWindowsStore können Sie Windows-Anwendungen mit dem Windows Store verbinden und Features verwenden, wie Abrufen einer Liste von dem Benutzer gehörenden Apps, verfügbaren Add-ons, gekauften Add-ons und Verarbeiten des Testmodus.
Die Komponente TWindowsStore wird nur für Windows-Plattformen unterstützt und RAD Studio 10.3 Rio enthält eine VCL-Version und eine FireMonkey-Version. TWindowsStore ist ein Komponenten-Wrapper für TWindowsStoreCore.
Inhaltsverzeichnis
Überprüfen von dem Benutzer gehörenden Apps und Add-ons
Um eine Liste der Windows-Anwendungen und -Add-ons abzurufen, die dem Benutzer gehören, müssen Sie die Komponente TWindowsStore in das Formular einfügen oder sie zur Laufzeit erstellen, eine TButton-Komponente hinzufügen und den folgenden Code einfügen:
procedure TStoreForm.lbInfoClick(Sender: TObject);
var
LMsg: string;
const
//These consts mirrors the name of the Add-Ons ad defined
//in the MS Windows Store. Using this approach you can “Ask” to the
//store what the current user has bought.
//The current user is indentified automatically because the
//app has been downloaded from the store.
HENRYFORDQUOTES = 'henryfordquotes';
SAVETOFILE = 'savetofile';
SAVEASFAVOURITE = 'saveasfavourite';
begin
LMsg := '**You current situation**' + sLineBreak;
LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(HENRYFORDQUOTES),
'have bought', 'don''t have bought') +
' the great Henry Ford aphorisms archive.' + sLineBreak;
LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(SAVETOFILE),
'have bought', 'don''t have bought') +
' the ability to save aphorisms to file.' + sLineBreak;
LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(SAVEASFAVOURITE),
'have bought', 'don''t have bought') +
' the ability to save aphorisms as favourite.' + sLineBreak;
ShowMessage(LMsg);
end;
Zugreifen auf verfügbare Add-ons
Mit der Komponente können Sie auch alle verfügbaren Add-ons untersuchen, indem Sie auf die indexierte Eigenschaft AppProducts (sgAvailableProducts ist ein TStringGrid) zugreifen, wie im folgenden Code gezeigt:
procedure TStoreForm.UpdateAvailableProducts;
var
LProdsCount: Integer;
I: Integer;
LRow: TStrings;
begin
LProdsCount := WindowsStore1.AppProducts.Count;
for I := 0 to LProdsCount - 1 do
begin
LRow := sgAvailableProducts.Rows[I + 1];
LRow.Add(WindowsStore1.AppProducts[I].StoreId.ToString);
LRow.Add(WindowsStore1.AppProducts[I].Title.ToString);
LRow.Add(WindowsStore1.AppProducts[I].Price.FormattedBasePrice.ToString);
LRow.Add(WindowsStore1.AppProducts[I].ProductKind.ToString);
LRow.Add(
WindowsStore1.AppProducts[I].Price.IsOnSale.ToString(TUseBoolStrs.True)
);
LRow.Add(
WindowsStore1.AppProducts[I].IsInUserCollection
.ToString(TUseBoolStrs.True)
);
end;
End;
Überprüfen von dem Benutzer gehörenden Add-ons
Um eine Liste der Add-ons abzurufen, die dem Benutzer gehören, verwenden Sie die indexierte Eigenschaft UserCollection, die genauso wie AppProducts arbeitet.
Verwenden des Testmodus
Mit der Eigenschaft AppLicense können Sie den TrialMode für Ihre Apps verwalten, wie im folgenden Code gezeigt:
procedure TStoreForm.lbTrialInformationClick(Sender: TObject);
var
LRemainingTrialDays: Integer;
begin
if WindowsStore1.AppLicense.IsActive then
begin
if WindowsStore1.AppLicense.IsTrial then
begin
LRemainingTrialDays := WindowsStore1.AppLicense.TrialTimeRemaining.Days;
ShowMessage(
Format('You can use this app for %d more days before the trial period ends.',
[LRemainingTrialDays]));
end
else
begin
ShowMessage('You have a full license. The trial time is not meaningful.');
end;
end
else
begin
ShowMessage('You don''t have a license. The trial time can''t be determined.');
end;
End;