Hi Steve

where can I found documentation or examples to addJSCallback?

I can be able to:

call from javascritp to java

browserComponent.addJSCallback(
"window.app = {isActive: function() {callback.onSuccess()}}", 
value -> {
call from java to javacript and send parameters

browserComponent.execute("controlPopUp ('"+ relojReservaValueString +"', "+ 
reservationState +","+ vehicleLockState +")");


Now I need,

1) call from Javascritp to java and receive a response from java

2) call from java to javascript and receive a response from javascritp


Can you help me ?

Best Regards Kandy

On Wednesday, January 3, 2018 at 8:05:56 PM UTC+1, [email protected] wrote:
>
> Hi Steve:
>
>    Indeed, upon further inspection you're so right! We've just detected a 
> problem with our SVN workflow in which we keep updating the "libVersion" 
> property on codenameone.properties between dev machines WITHOUT updating 
> the libs at the same time, so we were keeping old libs and preventing the 
> proper update procedure.
>
>    We now see the deprecated warnings and the new code in 
> BrowserComponent. Will work from here.
>
> Kind regards,
>     Miguelanxo. 
>
> On Wednesday, January 3, 2018 at 7:09:50 PM UTC+1, Steve Hannah wrote:
>>
>> I just confirmed with a fresh project.  The changes are there.  I'm not 
>> sure why you're not picking them up.  Is your project using the libs at the 
>> default location (lib/CodenameOne.jar and JavaSE.jar) or have you adjusted 
>> the classpath for the project.
>>
>> Steve
>>
>> On Wed, Jan 3, 2018 at 10:02 AM, <[email protected]> wrote:
>>
>>> Hi Steve
>>>
>>> I already did the project libs update, but didn't help. My library date 
>>> is 30/12/2017, when I do the update it says "Your proyect Libs are up to 
>>> date", we are blocked on the development of our App to IOS.
>>>
>>> Please help us.
>>>
>>> Best Regards
>>> Kandy
>>>
>>> On Wednesday, January 3, 2018 at 5:44:23 PM UTC+1, Steve Hannah wrote:
>>>
>>>>
>>>> On Wed, Jan 3, 2018 at 8:35 AM, <[email protected]> wrote:
>>>>
>>>>> Hello:
>>>>>
>>>>>     How can we use that new interface? There's no documentation and 
>>>>> our current lib doesn't expose said addJSCallback() yet (and updating c1 
>>>>> libs didn't help).
>>>>>
>>>> You need to update your project libs.  It should be there (just tested 
>>>> on a project here).  (I.e. Project Properties > Update Project Libs .. not 
>>>> "update cn1libs")
>>>>  
>>>>
>>>>> Also, is the fix already available in the build servers? 
>>>>>
>>>> No.  It will be up in the next build server update on Friday.
>>>>
>>>> Steve
>>>>  
>>>>
>>>>>
>>>>> Kind regards,
>>>>>     Kandy.
>>>>>
>>>>>
>>>>> On Wednesday, January 3, 2018 at 2:47:04 PM UTC+1, Steve Hannah wrote:
>>>>>>
>>>>>> This looks like a race condition that has been there for a while.  I 
>>>>>> have just committed a fix for it here
>>>>>>
>>>>>> https://github.com/codenameone/CodenameOne/commit/783ac2828409aa747103a35001b4886e24944484
>>>>>>
>>>>>> With the last update, however, the com.codename1.javascript package 
>>>>>> is now deprecated in favour of a new async API that is incorporated 
>>>>>> directly into the BrowserComponent class.  I recommend migrating over to 
>>>>>> this new API for new code, as it will produce much better performance 
>>>>>> (no 
>>>>>> hidden invokeAndBlock under the hood - except in xxxAndWait() methods).
>>>>>>
>>>>>> Using the new API, your code would become:
>>>>>>
>>>>>> bc.addJSCallback("window.checkfoxClickedCallback ={setChecked: 
>>>>>> function(){ callback.onSuccess(null)}}", r->{
>>>>>>     Log.p("->checkboxClickedCallback.setChecked()");
>>>>>>     contexto.mostrarMensaje("checkboxClickedCallback.setChecked()");
>>>>>> });
>>>>>> bc.addJSCallback("window.okButtonClickedCallback = {showMap: 
>>>>>> function() { callback.onSuccess(null)}}", r->{
>>>>>>      Log.p("->okButtonClickedCallback.showMap()");
>>>>>>      contexto.mostrarMensaje("okButtonClickedCallback.showMap()");
>>>>>> });
>>>>>>
>>>>>> Notice, with this new syntax, you reference the java callback 
>>>>>> explicitly in the javascript code via the "callback" variable, which, in 
>>>>>> Javascript, contains 2 methods: onSuccess(arg), and onError(message, 
>>>>>> code).
>>>>>>
>>>>>> Steve
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 3, 2018 at 5:09 AM, <[email protected]> wrote:
>>>>>>
>>>>>>> Hello:
>>>>>>>
>>>>>>>     Since the last codename1 libary update we've been having 
>>>>>>> problems with the BrowserComponent on iOS. We've narrowed down the 
>>>>>>> problem 
>>>>>>> to the callback registration process (which gets executed on the 
>>>>>>> BrowserComponent onLoad callback). We register two functions, but only 
>>>>>>> the 
>>>>>>> second one can be invoked from javascript. The first one gets 
>>>>>>> registered ok 
>>>>>>> (we can see its code from the javascript side) but fails to execute on 
>>>>>>> iOS 
>>>>>>> (in Android and the simulator works fine). We tried a lot of 
>>>>>>> permutations, 
>>>>>>> and different argument lengths for both functions, but the only 
>>>>>>> difference 
>>>>>>> we see is the registration order. If we switch the registration order, 
>>>>>>> we 
>>>>>>> can only invoke the other one (whichever gets registered last).
>>>>>>>
>>>>>>> /*
>>>>>>> * Registramos el callback JS de valor cambiado del checkbox "No 
>>>>>>> volver a mostrar este asistente". 
>>>>>>> */
>>>>>>> JSObject checkboxClickedCallback = (JSObject) 
>>>>>>> javascriptContext.get("{}");
>>>>>>> checkboxClickedCallback.set("setChecked", new JSFunction() {
>>>>>>> public void apply(JSObject self, Object[] args) {
>>>>>>> Log.p("->checkboxClickedCallback.setChecked()");
>>>>>>> contexto.mostrarMensaje("checkboxClickedCallback.setChecked()");
>>>>>>>
>>>>>>> }
>>>>>>> });
>>>>>>> javascriptContext.set("window.checkboxClickedCallback", 
>>>>>>> checkboxClickedCallback);
>>>>>>>
>>>>>>> /*
>>>>>>> * Registramos el callback JS de click en el botón "OK".
>>>>>>> */
>>>>>>> JSObject okButtonClickedCallback = (JSObject) 
>>>>>>> javascriptContext.get("{}");
>>>>>>> okButtonClickedCallback.set("showMap", new JSFunction() {
>>>>>>> public void apply(JSObject self, Object[] args) {
>>>>>>> Log.p("->okButtonClickedCallback.showMap()");
>>>>>>> contexto.mostrarMensaje("okButtonClickedCallback.showMap()");
>>>>>>>
>>>>>>> }
>>>>>>> });
>>>>>>> javascriptContext.set("window.okButtonClickedCallback", 
>>>>>>> okButtonClickedCallback);
>>>>>>>
>>>>>>>     Please help, as it's impacting our current production code.
>>>>>>>
>>>>>>> Kind regards,
>>>>>>>      Kandy
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "CodenameOne Discussions" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to 
>>>>>>> [email protected].
>>>>>>> Visit this group at 
>>>>>>> https://groups.google.com/group/codenameone-discussions.
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/codenameone-discussions/493a9217-0a4a-44b5-aede-974096f652d4%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/codenameone-discussions/493a9217-0a4a-44b5-aede-974096f652d4%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Steve Hannah
>>>>>> Software Developer
>>>>>> Codename One
>>>>>> http://www.codenameone.com
>>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "CodenameOne Discussions" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> Visit this group at 
>>>>> https://groups.google.com/group/codenameone-discussions.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/codenameone-discussions/0aa6820b-d038-4a3f-82ad-c45fb4c6d5e6%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/codenameone-discussions/0aa6820b-d038-4a3f-82ad-c45fb4c6d5e6%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>> Steve Hannah
>>>> Software Developer
>>>> Codename One
>>>> http://www.codenameone.com
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "CodenameOne Discussions" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> Visit this group at 
>>> https://groups.google.com/group/codenameone-discussions.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/codenameone-discussions/f7466bae-c35d-4baf-a776-ecc9e13f65ea%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/codenameone-discussions/f7466bae-c35d-4baf-a776-ecc9e13f65ea%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Steve Hannah
>> Software Developer
>> Codename One
>> http://www.codenameone.com
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/014fa1a2-ef58-49ba-bf93-546a95896146%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to