Delphi移動應用中開發IOS與Android本地通知
1、說明
本案例僅使用Delphi自身控件“TNotificationCenter”實作,為Delphi移動應用(APP)開發者提供學習幫助。
适用于Delphi XE8及以上版本中使用TNotificationCenter控件完成Android及IOS的本地通知功能,是《Delphi XE8 iOS與Android移動應用開發(APP開發)教程[完整中文版]》書中第二十章内容(詳細說明請參考本書第二十章)。
本地通知可配合服務端程式衍生開發自己的移動端消息推送功能。
《Delphi XE8 iOS與Android移動應用開發(APP開發)教程[完整中文版]》适合XE8及以上版本,需要的朋友可了解詳情:https://item.taobao.com/item.htm?id=536584650957
2、Demo下載下傳
完整Demo代碼已上傳到CSDN資源中心,點選下載下傳:http://download.csdn.net/detail/tanqth/9880793
3、主要代碼
procedure TForm1.Button1Click(Sender: TObject);
var
MyNotification: TNotification;
begin
// 建立 TNotification執行個體
MyNotification := NotificationCenter1.CreateNotification;
try
// 設定圖示顯示通知數
MyNotification.Number := ;
// 設定通知提示資訊
MyNotification.AlertBody := '使用Delphi編寫的通知資訊 ! ';
// 注意: 最後必須将通知數發送到通知中心,才能完成顯示.
NotificationCenter1.PresentNotification(MyNotification);
finally
MyNotification.DisposeOf;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
try
MyNotification.Name := 'MyNotification';
MyNotification.AlertBody := '使用Delphi編寫的定時通知資訊 !';
// 設定10秒定時
MyNotification.FireDate := Now + EncodeTime(, , , );
// 向通知中心發送通知
NotificationCenter1.ScheduleNotification(MyNotification);
finally
MyNotification.DisposeOf;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
try
MyNotification.Title := 'MyNotification';
MyNotification.AlertBody := '這是每分鐘重複的通知!';
// 設定10秒定時
MyNotification.FireDate := Now + EncodeTime(, , , );
// 設定每分錢重複通知
MyNotification.RepeatInterval := TRepeatInterval.Minute;
// 向通知中心發送通知
NotificationCenter1.ScheduleNotification(MyNotification);
finally
MyNotification.Free;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//取消通知
NotificationCenter1.CancelNotification('MyNotification');
end;
procedure TForm1.Button5Click(Sender: TObject);
var
MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
try
MyNotification.Name := 'MyNotification';
MyNotification.AlertBody := '使用Delphi編寫的及時通知資訊 !';
// 設定圖示顯示數 (iOS) 通知顯示數 (Android)
MyNotification.Number := ;
MyNotification.EnableSound := False;
// 向通知中心發送通知
NotificationCenter1.PresentNotification(MyNotification);
finally
MyNotification.DisposeOf;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
try
MyNotification.Name := 'MyNotification';
MyNotification.AlertBody := '使用Delphi編寫的通知資訊! ';
MyNotification.Number := ;
//按鈕顯示内容
MyNotification.AlertAction := '點我';
MyNotification.HasAction := True;
MyNotification.FireDate := Now + EncodeTime(, , , );
NotificationCenter1.ScheduleNotification(MyNotification);
finally
MyNotification.DisposeOf;
end;
end;
procedure TForm1.NotificationCenter1ReceiveLocalNotification(Sender: TObject;
ANotification: TNotification);
begin
ShowMessage('這是【' + ANotification.Name + '】通知測試。');
end;