Hy iam using phone gap 5.0 CLI and i am developing app for android 5.0 with API level 22 Js Technique is jquery.
Software's are
The problem is that the phone gap push plugin is not working the exact error is i am facing is:
10-07 13:01:14.282: E/Web Console(9564): Uncaught Type Error: Object function (options) {
10-07 13:01:14.282: E/Web Console(9564): this._handlers = {
10-07 13:01:14.282: E/Web Console(9564): 'registration': [],
10-07 13:01:14.282: E/Web Console(9564): 'notification': [],
10-07 13:01:14.282: E/Web Console(9564): 'error': []
10-07 13:01:14.282: E/Web Console(9564): };
10-07 13:01:14.282: E/Web Console(9564): // require options parameter
10-07 13:01:14.282: E/Web Console(9564): if (type of options === 'undefined') {
10-07 13:01:14.282: E/Web Console(9564): throw new Error('The options argument is required.');
10-07 13:01:14.282: E/Web Console(9564): }
10-07 13:01:14.282: E/Web Console(9564): // store the options to this object instance
10-07 13:01:14.282: E/Web Console(9564): this.options = options;
10-07 13:01:14.282: E/Web Console(9564): // triggered on registration and notification
10-07 13:01:14.282: E/Web Console(9564): var that = this;
10-07 13:01:14.282: E/Web Console(9564): var success = function(result) {
10-07 13:01:14.282: E/Web Console(9564): if (result && type of result.registration Id !== 'undefined') {
10-07 13:01:14.282: E/Web Console(9564): that.emit('registration', result);
10-07 13:01:14.282: E/Web Console(9564): } else if (result && type of result.callback !== 'undefined') {
10-07 13:01:14.282: E/Web Console(9564): var multifunctional = function(function Name, context /*, args */) {
10-07 13:01:14.282: E/Web Console(9564): var args = Array.prototype.slice.call(
arguments, 2);
10-07 13:01:14.282: E/Web Console(9564): var namespaces = function Name.split(".");
10-07 13:01:14.282: E/Web Console(9564): var func = namespaces.pop();
10-07 13:01:14.282: E/Web Console(9564): for (var i = 0; i < namespaces.length; i++) {
10-07 13:01:14.282: E/Web Console(9564): context = context[namespaces[i]];
10-07 13:01:14.282: E/Web Console(9564): }
10-07 13:01:14.282: E/Web Console(9564): return context[func].apply(context, args);
10-07 13:01:14.282: E/Web Console(9564): }
10-07 13:01:14.282: E/Web Console(9564):
10-07 13:01:14.282: E/Web Console(9564): executeFunctionByName(result.callback, window, result);
10-07 13:01:14.282: E/Web Console(9564): } else if (result) {
10-07 13:01:14.282: E/Web Console(9564): that.emit('notification', result);
10-07 13:01:14.282: E/Web Console(9564): }
10-07 13:01:14.282: E/Web Console(9564): };
10-07 13:01:14.282: E/Web Console(9564): // triggered on error
10-07 13:01:14.282: E/Web Console(9564): var fail = function(msg) {
10-07 13:01:14.282: E/Web Console(9564): var e = (typeof msg === 'string') ? new Error(msg) : msg;
10-07 13:01:14.282: E/Web Console(9564): that.emit('error', e);
10-07 13:01:14.282: E/Web Console(9564): };
10-07 13:01:14.282: E/Web Console(9564): // wait at least one process tick to allow event subscriptions
10-07 13:01:14.282: E/Web Console(9564): setTimeout(function() {
10-07 13:01:14.282: E/Web Console(9564): exec(success, fail, 'PushNotification', 'init', [options]);
10-07 13:01:14.282: E/Web Console(9564): }, 10);
10-07 13:01:14.282: E/Web Console(9564): } has no method 'init' at file:///android_asset/www/js/Module.js:8
10-07 13:01:14.392: D/TilesManager(9564): Starting TG #0, 0x5f73f420
10-07 13:01:14.392: D/TilesManager(9564): new EGLContext from framework: 5e306a90
10-07 13:01:14.392: D/GLWebViewState(9564): Reinit shader
10-07 13:01:14.442: D/netstack(9564): netstack: Request Priority is ON
10-07 13:01:14.462: D/chromium(9564): Unknown chromium error: -6
10-07 13:01:14.532: D/GLWebViewState(9564): Reinit transferQueue
10-07 13:01:14.542: E/Web Console(9564): Uncaught Error: Module phonegap-plugin-push.PushNotification does not exist. at file:///android_asset/www/cordova.js:1418
10-07 13:01:18.742: I/Web Console(9564): device Ready has not fired after 5 seconds. at file:///android_asset/www/cordova.js:1183
10-07 13:01:18.742: I/Web Console(9564): Channel not fired: onPluginsReady at file:///android_asset/www/cordova.js:1176
10-07 13:01:18.742: I/Web Console(9564): Channel not fired: onCordovaReady at file:///android_asset/www/cordova.js:1176
can any one please help me to solve this problem
thanks in advance to help me
Can any one please help me to solve this issue Hy iam using phone gap 5.0 CLI and i am developing app for android 5.0 with API level 22 Js Technique is jquery i am building for android platform and testing on my device i am using windows 7 on my PC Software's are CLI,Eclipse and android the problem is that the phone gap push plugin is not working.
From the log 'Module phonegap-plugin-push.PushNotification does not exist', it clearly seems that the Phonegap Push Plugin is not either properly installed and hence the Push Notification object is getting undefined or there might be some syntax or compilation error in your code because usually in javascript it happens due to any syntactical error, code falling below it fails. There is a current working Phonegap Push Plugin available on github which works fine on all Android Api levels including Nougat. Register your Push Notification object as below:
var push = PushNotification.init({
android: {
senderID: "XXXXXXXXXXXX",
},
ios: {
alert: "true",
badge: "true",
sound: "true",
}
});
push.on('registration', function(data) {
console.log(data.registrationId);
registerDeviceToken(data.registrationId);
});
push.on('notification', function(data) {
console.log("notification event");
alert(JSON.stringify(data));
});
push.on('error', function(e) {
console.log("push error");
alert(JSON.stringify(e));
});
function registerDeviceToken(deviceToken){
//Register the registrationId or deviceToken to your server as per the webservice type and parameters configuration set
}
Make sure to call the above code only after 'DeviceReady' event is fired.
And your AndroidManifest.xml should have the following:
<application>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="com.adobe.phonegap.push.PushHandlerActivity"
android:exported="true" />
<receiver android:name="com.adobe.phonegap.push.BackgroundActionButtonHandler" />
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="yourPackageName" />
</intent-filter>
</receiver>
<service
android:name="com.adobe.phonegap.push.GCMIntentService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name="com.adobe.phonegap.push.PushInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
android:name="com.adobe.phonegap.push.RegistrationIntentService"
android:exported="false" />
</application>
<permission
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
Though the above configurations get automatically added in your AndroidManifest when you install the plugin, this is just for Reference Purpose.
Happy Coding :)