Spiderbasic Proceduren mit PureBasic ausführen

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Burstnibbler
Beiträge: 58
Registriert: 04.10.2008 12:10

Re: Spiderbasic Proceduren mit PureBasic ausführen

Beitrag von Burstnibbler »

Hallo dige,

interessantes Thema!
Ich habe bisher noch nie etwas mit dem Webgadget gemacht, also habe ich mich mal rangesetzt und tatsächlich auch eine Lösung gefunden.
Ob es jetzt die beste Lösung ist weiß ich nicht - aber sie funktioniert immerhin. :)

Code: Alles auswählen


Procedure ExternalRaiseEvent(JsonParameters$)
  Debug JsonParameters$
EndProcedure

Procedure GetMarkerDragEnd(JsonParameters$)
  Debug JsonParameters$
EndProcedure

Define.s script

; Script zum Überschreiben der Original-Methode: cP2W.ExternalRaiseEvent()
script = "cP2W.ExternalRaiseEvent = function (EventName, Params) {"
script + "  try {"
script + "    let name = EventName.replace('#','');"; Filter "PB-Konstanten"
script + "    window[name](Params);";Im Original: window.external.raiseEvent(EventName, Params);
script + "  }"
script + "  catch (e) {"
script + "  }"
script + "};"

OpenWindow(0, 100, 100, 400, 400, "Google Map Test", #PB_Window_SystemMenu)

WebViewGadget(0, 0, 0, 400, 400)
SetGadgetText(0, "https://www.dbsthumb.de/livemap/index2.html")
BindWebViewCallback(0, "Debug", @ExternalRaiseEvent())
BindWebViewCallback(0, "PB_EventType_GoogleMapMarker_DragEnd", @GetMarkerDragEnd()) 

MessageRequester( "Warte auf Karte", "Ok wenn fertig")
WebViewExecuteScript(0, script)
WebViewExecuteScript(0, "GoogleMapAddPin(0, 51.0275764465, 13.7329101563, 1, 1);")

Repeat 
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow


Das Problem scheint zu sein, dass die Methode "cP2W.ExternalRaiseEvent()", die Methode "window.external.raiseEvent()" verwendet - welche nur vom IE unterstützt wurde.
Problematisch ist auch, dass in der "map.js" in Zeile 1036, die Variable "MarkerEvent"('PB-Konstanten') als "Evantname" übergeben wird. Besser wäre es, als EventNamen "MarkerInfo" zu übergeben, und das "MarkerEvent" als weiteren Parameter.

.
We´re going backwards, armed with new technology.
Going backwards, to a caveman mentality.
Antworten