FWIW I've used the location with a private channel as protocol to intercept
calls to/from the page and GJS.

https://github.com/WebReflection/jsgtk-twitter/blob/master/app#L162-L175

The channel is a random string:
https://github.com/WebReflection/jsgtk-twitter/blob/master/app#L59

>From the page, which is aware of the "secret" channel, I call GJS actions
via location.href =
`secret1234:method(${encodeURIComponent(JSON.stringify(value))})`;

The protocol secret1234 is intercepted and the
`controller.method(JSON.parse(decodeURIComponent(restOfURI)))` invoked.

To signal the page everything is fine I use this.webView.runJavaScript
https://github.com/WebReflection/jsgtk-twitter/blob/master/app#L377

The page has a listener for the `secret1234` event on the main window, and
such listener is instrumented to react accordingly with the CustomEvent
.detail payload/info.

This might look a bit convoluted, and it has JSON serialization as
limitation for the kind of data you want to pass (i.e. I use base64 encoded
images as source from remotely fetched files enabling somehow CORS for
whatever I want) but it worked well, circumventing the missing
communication channel available in Qt.

Maybe today there are better ways for doing a similar thing and if that's
the case, please share.

Thanks.



On Wed, Oct 11, 2017 at 12:57 PM, Adriano Patrizio <
adriano.patri...@hotmail.com> wrote:

> Thank you for response, this is my problem: have necessity to implement
> methods into my web application webkit2 based and comunicate with GJS
> script (example: filesystem functions to read and write files or window
> managment).
>
> _______________________________________________
> javascript-list mailing list
> javascript-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/javascript-list
>
>
_______________________________________________
javascript-list mailing list
javascript-list@gnome.org
https://mail.gnome.org/mailman/listinfo/javascript-list

Reply via email to