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 = 'MENUE' then
begin
showmessage(parameter_0);
....
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \