ripple-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "sylvain garden (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (RIPPLE-87) Ripple plaforms don't fire deviceReady after page changes in multiple pages application
Date Wed, 10 Jun 2015 09:15:05 GMT

     [ https://issues.apache.org/jira/browse/RIPPLE-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

sylvain garden updated RIPPLE-87:
---------------------------------
    Description: 
My cordova app consists in a "portail" of several apps invoking each other thanks to html
links or window.location=... calls.

I spent days trying to understand why *cordova plugins didn't load in any page but the first
visited page* of my app.

It turned out that _onDeviceReady_ was fired only in the first app page but not on the subsequent
pages  (as told in the console actually).


It might be due to this sequence of code in ripple.js:
{code:javascript}
   module.exports = bridge.exec;
   module.exports.init = module.exports.init || function() {    
      cordova.require("cordova/channel").onNativeReady.fire()
   }
{code}

I failed to understand if the cordova object should survive between pages change or not. I
guess it doesn't. However the "bridge.exec" object looks like it survives between page changes,
so the closure is setted only once and refers to a *outdated "cordova" object* within an outdated
containing closure.

By removing {{"module.exports.init ||"}} in such sequences, everything works as expected.


  was:
My cordova app consists in a "portail" of several apps invoking each other thanks to html
links or window.location=... calls.

I spent days trying to understand why *cordova plugins didn't load in any page but the first
visited page* of my app.

It turned out that _onDeviceReady_ was fired only in the first app page but not on the subsequent
pages  (as told in the console actually).


It might be due to this sequence of code in ripple.js:
{code:js}
   module.exports = bridge.exec;
   module.exports.init = module.exports.init || function() {    
      cordova.require("cordova/channel").onNativeReady.fire()
   }
{code}

I failed to understand if the cordova object should survive between pages change or not. I
guess it doesn't. However the "bridge.exec" object looks like it survives between page changes,
so the closure is setted only once and refers to a *outdated "cordova" object* within an outdated
containing closure.

By removing {{"module.exports.init ||"}} in such sequences, everything works as expected.



> Ripple plaforms don't fire deviceReady after page changes in multiple pages application
> ---------------------------------------------------------------------------------------
>
>                 Key: RIPPLE-87
>                 URL: https://issues.apache.org/jira/browse/RIPPLE-87
>             Project: Apache Ripple
>          Issue Type: Bug
>            Reporter: sylvain garden
>              Labels: initialisation
>
> My cordova app consists in a "portail" of several apps invoking each other thanks to
html links or window.location=... calls.
> I spent days trying to understand why *cordova plugins didn't load in any page but the
first visited page* of my app.
> It turned out that _onDeviceReady_ was fired only in the first app page but not on the
subsequent pages  (as told in the console actually).
> It might be due to this sequence of code in ripple.js:
> {code:javascript}
>    module.exports = bridge.exec;
>    module.exports.init = module.exports.init || function() {    
>       cordova.require("cordova/channel").onNativeReady.fire()
>    }
> {code}
> I failed to understand if the cordova object should survive between pages change or not.
I guess it doesn't. However the "bridge.exec" object looks like it survives between page changes,
so the closure is setted only once and refers to a *outdated "cordova" object* within an outdated
containing closure.
> By removing {{"module.exports.init ||"}} in such sequences, everything works as expected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message