Search code examples
cordovaionic-frameworkphonegap-pluginsphonegap-pushplugincrosswalk

Phonegap push plugin stopped working after added crosswalk plugin


I'm developing using Ionic and i'm facing an odd problem, after i added crosswalk webview plugin my phonegap push plugin just stopped to work.

I got this "errors", if we can call them as that:

ionic.cloud.min.js:6 Native: deviceready did not fire within 2000ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.
cordova.js:1223 deviceready has not fired after 5 seconds.
cordova.js:1216 Channel not fired: onCordovaInfoReady
cordova.js:1216 Channel not fired: onFileSystemPathsReady
ionic.cloud.min.js:6 Ionic Insights: Device information unavailable.
index.html#/login:1 Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.

And it just doesn't works anymore.

Here is my cordova plugin list:

cordova plugins
cordova-plugin-compat 1.0.0 "Compat"
cordova-plugin-console 1.0.4 "Console"
cordova-plugin-crosswalk-webview 2.1.0 "Crosswalk WebView Engine"
cordova-plugin-device 1.1.3 "Device"
cordova-plugin-file 4.3.0 "File"
cordova-plugin-splashscreen 4.0.0 "Splashscreen"
cordova-plugin-statusbar 2.2.0 "StatusBar"
cordova-plugin-whitelist 1.3.0 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-push 1.9.0 "PushPlugin"

ionic info


Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 1.3.1
Ionic CLI Version: 2.1.4
Ionic App Lib Version: 2.1.2
OS:
Node Version: v4.2.4

--------------------------------

So basically this is it, without crosswalk plugin, the phonegap push plugin works, with it don't.

Hope someone can help me,

Thank you!

----------------------Edit

After some try and error, i'm thinking that's something related with scope when using crosswalk, because the $ionicPush.register() is not being fired.

What changes in $scope.$on("$ionicView.beforeEnter") using crosswalk?

Does this still working or crosswalk have their own "beforeEnter" as he is a diferente web view.

Attaching the images of console with ionic run android:

Working without crosswalk:

NOT Working with crosswalk:

As you can see in the line:

Ionic Push: saved push token: dJYMPT2lVW8:APA91bE1UyH6qKksGykcbOFNe_HXVQPvAfSR7PJx_F_BgKIriE5sXpBGJENJS8heqQg7TAyKNAjp5sRjseEFoYIoz72DOY9VGq1-4dkKMMq6cIkhvLSBmxfKz57XBaFClEsUXpNp_zc2

The token isn't registered with crosswalk as it is without crosswalk.


Solution

  • Version 2.1.0 of crosswalk plugin doesn't work with cordova-android 6.0.0 (the one included in cordova CLI 6.4.0)

    Instead of downgrading you can install crosswalk from github that has already a fix for it

    cordova plugin add https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview