You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ripple.apache.org by "sylvain garden (JIRA)" <ji...@apache.org> on 2015/05/22 17:59:17 UTC

[jira] [Created] (RIPPLE-87) Ripple plaform don't fire deviceReady after page change in multiple pages application

sylvain garden created RIPPLE-87:
------------------------------------

             Summary: Ripple plaform don't fire deviceReady after page change 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


My cordova app consists in a "portail" of apps calling each other with 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 called only for the first app (as told in the console actually).

I failed to understand if the cordova object should survive between pages change or not. I guess it shoud not.

But I found the workaround to my issue at least: there is this sequence of code in ripple.js:
"
   module.exports = bridge.exec;
   module.exports.init = module.exports.init || function() {    
      cordova.require("cordova/channel").onNativeReady.fire()
   }
"

According to my understanding, the bridge.exec object does survive between page changes, so the closure is setted only once and refers to a outdated "cordova" in an old (and replaced since) outer closure.

I removed "module.exports.init ||" in such sequences and now everything works as expected.




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