![]() |
Android APP - send via BroadcastChannel to website
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 ( ![]() 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:
Delphi-Quellcode:
if ("BroadcastChannel" in window) { var messageReceiver= new BroadcastChannel("Consumer"); }
Den Listener leite ich auf ein ajaxRequest um:
Delphi-Quellcode:
if ("BroadcastChannel" in window) { messageReceiver.onmessage = function(event) { ajaxRequest(MainForm.form,''' + event_name + ''',[''param0=''+event.data+'''']); } }
Senden tue ich via:
Delphi-Quellcode:
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); .... |
AW: Android APP - send via BroadcastChannel to website
Vielleicht ilft dir
![]() |
AW: Android APP - send via BroadcastChannel to website
Das Hardware Back - denke ich - sollte so aussehen (ungetestet):
(aber WIE sende ich via BroadcastChannel ?)
Delphi-Quellcode:
uses FMX.Platform,FMX.VirtualKeyboard,FMX.Helpers.Android;
procedure THeaderFooterForm.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); var FService : IFMXVirtualKeyboardService; begin if Key = vkHardwareBack then begin TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService)); if (FService <> nil) and (vksVisible in FService.VirtualKeyBoardState) then begin // Back button pressed, keyboard visible, so do nothing... key:=0; end else begin key:=0; ??????.. Sende via BroadcastChannel : broadcaster.postMessage("_mein_hardware_back"); end; end .. . |
AW: Android APP - send via BroadcastChannel to website
Kann die Frage auch so formuliert werden?
"Wie kann ich aus einer Delphi/FMX Anwendung auf einen Webbrowser (der eine Android WebView kapselt) zugreifen und ihn JavaScript-Code ausführen lassen?" Dann sollte das hier weiterhelfen: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz