Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#1

Android APP - send via BroadcastChannel to website

  Alt 17. Mai 2019, 11:34
Hallo ..

ich bräuchte eine Android App, wo nix anderes als folgendes passiert:

1.) App hat in Titlebar rechts oben ein "x" zum beenden

2.) Ein Fullscreen-Webbrowser-Componente mit fixer URL (www.meine-webseite.at/meine_ISAPI_Anwendung.dll)

3.) Wenn der Android Back Button gedrückt wird - wird nicht das Programm geschlossen, sondern via BroadcastChannel eine Information an die Webbrowser-Componente gesendet...

Wie kann ich Punkt 3 realisieren?

In meiner ISAPI Anwendung regle ich dann die BroadcastChannel-Information situationsbedingt..




in meiner ISAPI:

Erstellen tue ich den BroadcastChannel via:
if ("BroadcastChannel" in window) { var messageReceiver= new BroadcastChannel("Consumer"); }


Den Listener leite ich auf ein ajaxRequest um:
if ("BroadcastChannel" in window) { messageReceiver.onmessage = function(event) {  ajaxRequest(MainForm.form,''' + event_name + ''',[''param0=''+event.data+'''']); } }

Senden tue ich via:
if ("BroadcastChannel" in window) { broadcaster.postMessage("' + event_data + '"); }




Der Original-Quelltext meiner ISAPI DLL:

Delphi-Quellcode:
procedure TMainForm.create_Broadcast_and_listener;
var
  event_name: String;
begin
  event_name := 'MENUE';
  UniSession.AddJS('if ("BroadcastChannel" in window) { var messageReceiver= new BroadcastChannel("Consumer"); }');
  UniSession.AddJS('if ("BroadcastChannel" in window) { messageReceiver.onmessage = function(event) { ajaxRequest(MainForm.form,''' + event_name + ''',[''param0=''+event.data+'''']); } }');

end;

procedure TMainForm.send_broadcast(event_data: String);
begin
  UniSession.AddJS('if ("BroadcastChannel" in window) { var broadcaster = new BroadcastChannel("Consumer"); }');
  UniSession.AddJS('if ("BroadcastChannel" in window) { broadcaster.postMessage("' + event_data + '"); }');
end;


procedure TMainForm.UniFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
begin
  // Broadcast Info ....
 if EventName = 'MENUEthen
 begin
 showmessage(parameter_0);
 ....
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat