Einzelnen Beitrag anzeigen

Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

In App nach Bewertung fragen: So hab ich es gemacht

  Alt 7. Mai 2013, 16:10
Hallo zusammen,

für alle die es auch brauchen.
Bitte den Aufbau/Logik der Datenbank ignorieren, der Focus lag auf anderen Dingen
Ich rufe askToRate dann einfach an der gewünschten Stelle im Programm auf.

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var
  bereitsBewertet: boolean;
begin
  uniconnection1.Open;
  uniquery1.SQL.Text := 'SELECT * FROM einstellungen';
  uniquery1.Open;
  if uniquery1.RecordCount = 0 then
    bereitsBewertet := false
  else
    bereitsBewertet := (uniquery1.FieldByName('bewertet').AsBoolean);
  uniquery1.Close;

  uniQuery1.SQL.Text := 'INSERT INTO einstellungen (zeitpunkt, bewertet) VALUES (:_xTs, :_xB)';
  uniquery1.ParamByName('_xTs').AsDateTime := now;
  uniquery1.ParamByName('_xB').AsBoolean := bereitsBewertet;
  uniquery1.ExecSQL;

  uniquery1.SQL.Text := 'SELECT * FROM einstellungen';
  uniquery1.Open;

  uniquery1.FindLast;

  ask4Rate := not bereitsBewertet;
end;

procedure TfrmMain.askToRate;
begin
  if ask4Rate then
  begin
    ask4Rate := false;
    if MessageDlg('Wir freuen uns über Ihre Bewertung im AppStore!'+#10#13+
      'Möchten Sie jetzt eine Bewertung abgeben?', TMsgDlgType.mtConfirmation,
      mbYesNoCancel,0) = mrYes then
      begin
        uniQuery1.SQL.Text := 'UPDATE einstellungen SET bewertet = :_xBewertet';
        uniquery1.ParamByName('_xBewertet').AsBoolean := true;
        uniquery1.ExecSQL;

        SharedApplication.openURL(
          StrToNSUrl('itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=XXXXXXXX')); // Hier die ID der App eintragen
      end;
  end;
end;


function TfrmMain.StrToNSUrl(const AStr: string): NSUrl;
begin
  Result := TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSSTR(AStr)));
end;

function TfrmMain.SharedApplication: UIApplication;
begin
  Result := TUIApplication.Wrap(TUIApplication.OCClass.SharedApplication);
end;
Philip
  Mit Zitat antworten Zitat