1+ unit WebMainView;
2+
3+ interface
4+
5+ uses
6+ System.SysUtils, System.Classes, JS, Web, WEBLib.Graphics, WEBLib.Controls,
7+ WEBLib.StdCtrls, WEBLib.Forms, WEBLib.Dialogs, WEBLib.PushNotifications,
8+ WEBLib.Storage, Vcl.StdCtrls, Vcl.Controls;
9+
10+ type
11+ TMainView = class (TWebForm)
12+ WebEdit1: TWebEdit;
13+ WebButton1: TWebButton;
14+ WebButton2: TWebButton;
15+ WebLabel1: TWebLabel;
16+ WebPushNotifications1: TWebPushNotifications;
17+ procedure WebButton1Click (Sender: TObject);
18+ procedure WebButton2Click (Sender: TObject);
19+ procedure WebEdit1Change (Sender: TObject);
20+ procedure WebFormCreate (Sender: TObject);
21+ procedure WebFormExit (Sender: TObject);
22+ private
23+ ls: TLocalStorage;
24+ procedure DoAddToLocalStorage ;
25+ procedure DoRemoveFromLocalStorage ;
26+ procedure SetButtonState ;
27+ function ValidUserID : Boolean;
28+ end ;
29+
30+ var
31+ MainView: TMainView;
32+
33+ implementation
34+
35+ { $R *.dfm}
36+
37+ procedure TMainView.DoAddToLocalStorage ;
38+ begin
39+ TWebLocalStorage.SetValue(' pushUserID' , WebEdit1.Text);
40+ SetButtonState;
41+ end ;
42+
43+ procedure TMainView.DoRemoveFromLocalStorage ;
44+ begin
45+ TWebLocalStorage.RemoveKey(' pushUserID' );
46+ SetButtonState;
47+ end ;
48+
49+ procedure TMainView.SetButtonState ;
50+ begin
51+ if WebEdit1.Text = ' ' then
52+ begin
53+ WebButton1.Enabled := False;
54+ WebButton2.Enabled := False;
55+ Exit;
56+ end ;
57+
58+ if TLocalStorage.GetValue(' pushUserID' ) = WebEdit1.Text then
59+ begin
60+ WebButton1.Enabled := False;
61+ WebButton2.Enabled := True;
62+ end
63+ else if TLocalStorage.GetValue(' pushUserID' ) <> ' ' then
64+ begin
65+ WebButton1.Enabled := False;
66+ WebButton2.Enabled := False;
67+ end
68+ else
69+ begin
70+ WebButton1.Enabled := True;
71+ WebButton2.Enabled := False;
72+ end ;
73+ end ;
74+
75+ function TMainView.ValidUserID : Boolean;
76+ begin
77+ Result := True;
78+ if WebEdit1.Text = ' ' then
79+ begin
80+ Result := False;
81+ ShowMessage(' UserID cannot be empty!' );
82+ end ;
83+ end ;
84+
85+ procedure TMainView.WebButton1Click (Sender: TObject);
86+ begin
87+ if ValidUserID then
88+ begin
89+ WebPushNotifications1.RegistrationUserID := WebEdit1.Text;
90+ WebPushNotifications1.RegisterServiceWorker;
91+
92+ DoAddToLocalStorage;
93+ end ;
94+ end ;
95+
96+ procedure TMainView.WebButton2Click (Sender: TObject);
97+ begin
98+ if ValidUserID then
99+ begin
100+ WebPushNotifications1.RegistrationUserID := WebEdit1.Text;
101+ WebPushNotifications1.Unsubscribe;
102+
103+ DoRemoveFromLocalStorage;
104+ end ;
105+ end ;
106+
107+ procedure TMainView.WebEdit1Change (Sender: TObject);
108+ begin
109+ SetButtonState;
110+ end ;
111+
112+ procedure TMainView.WebFormCreate (Sender: TObject);
113+ begin
114+ ls := TLocalStorage.Create(Self);
115+ if ls.Count > 0 then
116+ begin
117+ WebEdit1.Text := TLocalStorage.GetValue(' pushUserID' );
118+ end ;
119+
120+ SetButtonState;
121+ end ;
122+
123+ procedure TMainView.WebFormExit (Sender: TObject);
124+ begin
125+ ls.Free;
126+ end ;
127+
128+ end .
0 commit comments