Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   TWebBrowser in FireMonkey: input type funktioniert nicht (https://www.delphipraxis.net/200912-twebbrowser-firemonkey-input-type-funktioniert-nicht.html)

erich.wanker 6. Jun 2019 14:03

TWebBrowser in FireMonkey: input type funktioniert nicht
 
Hallo,

Hat jemand eine Lösung, wie ich ein "input type file" in einer Firemonkey-Android-App (die nur aus einem TWebBrowser besteht und eine definierte Adresse aufruft..) zum laufen bekomme?


Html5:
Code:
<input class="mein_upload" type="file" name="file1" id="file1" onchange="uploadFile1()" accept="image/*" capture></div>
<input class="mein_upload" type="file" name="file2" id="file2" onchange="uploadFile2()" accept="video/*" capture></div>
<input class="mein_upload" type="file" name="file3" id="file3" onchange="uploadFile3()" accept="audio/*" capture></div>


Anscheinend ist es ein bekanntes Problem mit Android WebView ...

und die einzige Antwort lt. Google ist eine - die nicht existiert .. https://stackoverflow.com/questions/...ing-firemonkey


Danke für Hilfe

mjustin 6. Jun 2019 15:34

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Funktioniert es mit einem Desktop-Browser?

Sind die Berechtigungen für Audio und Video im Manifest eingetragen?

und eventuell noch prüfen: wird der Benutzer vor Aufruf der HTML Seite um die Bestätigung von Zugriffen darauf gebeten? (Ab Android 6 / API 23 ist das erforderlich für alle "gefährlichen" Berechtigungen)

erich.wanker 6. Jun 2019 15:37

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Hallo,

die nicht funktionierende aktuelle Situation;

Benutzer wird NICHT vor Aufruf der HTML Seite um die Bestätigung von Zugriffen darauf gebeten

in Chrome Browser am Android funktioiert alles...

Manifest


<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STO RAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE" />

erich.wanker 7. Jun 2019 10:19

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Oh oh ..

so wie ich es verstanden habe - kann der Android Webview das <imput type file> absichtlich nicht.

.. jetzt stellt sich für mich die Frage für Delphi Tokyo 10.2 (für eine Android App)
  • gibt es eine FMX Browser-Komponente, die diese Einschränkungen nicht hat?
  • kann man den TWebBrowser - der dann im Endeffekt ein AndroidWebview ist -"overriden", damit der die <input typ..> Geschichte auch kann (gibt es da schon was fertiges?
  • Kann man den Android ChromeBrowser embedden? - und nicht den Webview verwenden?
  • Ich hab Chromium für Delphi gefunden: https://github.com/salvadordf/CEF4Delphi .. kann ich das für eine Android -App verwenden und hab dann keine probleme?

Vielen Dank für Hinweise

Erich


P.S. Sinn und Zweck ist eine kleine Android App, die bestehende Html5 Seiten darstellt ... ohne Adresszeile und Co .. es soll einfach eine Webseite als Android-App dargestellt werden ... Alles funktioniert bis auf die <input file..> Sachen ...

Die eingesetzten Techniken der Html-Geschichte:
Client: Html5, Javascript und Sencha ExJS Library
Server: Apache, PHP, mySQL

erich.wanker 11. Jun 2019 10:09

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Hallo,

Das Webview von Android reagiert nicht auf <input type file..> - das ist ein gewünschter Effekt seitens Google.

Jetzt habe ich eine "Android-Lösung" gefunden: https://stackoverflow.com/questions/...23907#15423907

.. gibt es keine "fertige" Delphi Lösung für dieses Problem ? .. Delphi 10.2 Tokyo

Vielen Dank für Hinweise

Erich

Rollo62 11. Jun 2019 14:33

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Zitat:

Benutzer wird NICHT vor Aufruf der HTML Seite um die Bestätigung von Zugriffen darauf gebeten
Du könntest im TWebBrowser die URL selber vor dem Aufruf abfangen, und eventuell eine Meldung machen, wenn es nur darum geht vorher etwas anzuzeigen.

erich.wanker 13. Jun 2019 10:21

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Hi ...

Das Problem liegt im "abgespeckten" Android Webview - der Webview reagiert von Haus aus NICHT auf <input type file> -Sachen ..

Wenn ich im Android-Chrombrowser eine HTML Seite mit folgender HTML-Zeilen aufrufe - kann ich Bilder, Videos und Dokumente uploaden..

Auszug:
Code:
<input class="mein_upload" type="file" name="file1" id="file1" onchange="uploadFile1()" accept="image/*" capture></div>
Wenn ich die gleiche Seite im Webview aufrufe passiert nix.

Jetzt müsste ich dem Webview beibringen zu reagieren... Die Android-Community hat das gleiche Problem und eine mögliche Lösung wäre: https://stackoverflow.com/questions/...23907#15423907


Aber wie bring ich das ganze mit Delphi/Firemonkey hin? Ich denke mal, ich bin sicherlich nicht der einzige mit diesem Problem - wie haben das andere gelöst?

Ich will doch bloß eine klitzekleine Android App mit Delphi 10.2 schreiben, die eine HTML Seite so darstellt als wäre es eine App :oops::oops:

LiGrü aus dem Salzburger Land
Erich

DeddyH 14. Jun 2019 15:38

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Wäre es evtl. eine Option, das Problem serverseitig zu lösen? Es klingt mir sehr danach, als wolltest Du die Funktionalität einer PWA. Die kann man einfach über den Standard-Browser aufrufen. Dieser bietet dann die Möglichkeit, sie zum HomeScreen hinzuzufügen, damit entfiele dann auch die Adresszeile.

erich.wanker 17. Jun 2019 12:01

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Danke DeddyH .. PWA war der richtige Weg :-) .. somit entfällt die Android-App :-)


Hab einen Basic ServiceWorker .. ein manifest ... und die EventListener eigebaut und es funktioniert super ..

Was ich jetzt nur noch machen muss - ist auf https umzusteigen ;-) .. damit die Warnmeldung beim Uploaden von Bilder, Videos, Sprachnotizen und Dokumenten weg fällt .. ich laufe immer noch auf http :oops:

Danke

Erich

DeddyH 17. Jun 2019 12:10

AW: TWebBrowser in FireMonkey: input type funktioniert nicht
 
Zitat:

Zitat von erich.wanker (Beitrag 1434830)
Was ich jetzt nur noch machen muss - ist auf https umzusteigen ;-)

Das würde ich unabhängig von der PWA sowieso dringend empfehlen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz