Bin beim Stöbern nach umsetzbaren Techniken auf diesen Thread im englischen Board gestoßen: http://www.purebasic.fr/english/viewtopic.php?t=16968
Kurz zuammengefasst:
Zugriff auf Javascript-Funktionen getestet: Geht und geil!
Zugriff auf Javascript-Variablen lesend getestet: Geht und genial!
Zugriff auf Javascript-Variablen schreibend getestet: Geht und mega!
Nur eines würde ich gerne auch haben. Zugriff von Javascript auf FB-Funktionalitäten, um ein Runtime-Environment für HTML und Javascript Anwendungen zu basteln. Ich werde es erstmal nur für Windows umsetzen, da die Codes im oben genannten Threads die WinAPI verwenden. Ich zerbreche mir jetzt seit 2 Tagen den Kopf darüber und habe bisher nur einen möglichen Ansatz gefunden. Den Navigation-Callback dafür nutzen. Schematisch würde das so aussehen (ich habe noch keinen Code geschrieben, da ich noch im Konzept bin. Mir ist nur die Machbarkeit wichtig):
- Es wird über window.location eine Navigation ausgelöst. Bei der JS-Funktion wird dann die URL mit den Daten übergeben. Das würde so aussehen: func: //console/ new/ print? text=HalloWelt&weitererparameter=nene
- Das Navigation-Callback kann ja als Eventhandler angesehen werden. Die Location-URL wird so über tragen und mit den bekannten Funktionen in PB zerlegt werden. Damit nicht versehentlich fieser Code aus dem Internet auf dem Rechner landet soll die Navigation auf die klassischen Protokolle unterbunden werden. Das Protokoll func soll dann auf die selbst geschriebene Console-API zugreifen, eine neue (new) Konsole öffnen und den Text aus dem Parameter text ausgeben.
- Bei großen Inhalten für die Parameter kann man den direkten Zugriff auf die JS-Variablen nehmen und den Namen der Variable als String in den Parametern übertragen. Das gleiche gilt für den Rückgabewert. Wenn man aber die Funktions-Aufrufe per eigner JS-API regelt, kann man das in der Programmierung mit JS und der API unterbinden.
- Das aufrufen von JS-Funktionen seitens PB ist zudem eine Möglichkeit, einen in JS definierten PB-Aufruf zu vervollständigen, in dem man die Verarbeitung des Rückgabewertes anstößt.
Danke für Antworten.
MFG TroaX