Phonegap推送插件不支持ANdroid
Hy iam使用phone gap 5.0 CLI,我正在为android 5.0开发API级别为22的应用程序。Js技术是jqueryPhonegap推送插件不支持ANdroid,android,cordova,phonegap-plugins,phonegap-pushplugin,Android,Cordova,Phonegap Plugins,Phonegap Pushplugin,Hy iam使用phone gap 5.0 CLI,我正在为android 5.0开发API级别为22的应用程序。Js技术是jquery 我正在为android平台进行构建,并在我的设备上进行测试 我正在电脑上使用windows 7 软件的 CLI、Eclipse和android 问题是,手机间隙推送插件不工作 我面临的确切错误是: 10-07 13:01:14.282: E/Web Console(9564): Uncaught Type Error: Object function (opt
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
10-07 13:01:14.282:E/Web控制台(9564):未捕获类型错误:对象函数(选项){
10-07 13:01:14.282:E/Web控制台(9564):此。\u处理程序={
10-07 13:01:14.282:E/Web控制台(9564):“注册”:[],
10-07 13:01:14.282:E/Web控制台(9564):“通知”:[],
10-07 13:01:14.282:E/Web控制台(9564):“错误”:
10-07 13:01:14.282:E/Web控制台(9564):};
10-07 13:01:14.282:E/Web控制台(9564)://需要选项参数
10-07 13:01:14.282:E/Web控制台(9564):如果(选项类型=='undefined'){
10-07 13:01:14.282:E/Web控制台(9564):抛出新错误('options参数是必需的');
10-07 13:01:14.282:E/Web控制台(9564):}
10-07 13:01:14.282:E/Web控制台(9564)://存储此对象实例的选项
10-07 13:01:14.282:E/Web控制台(9564):this.options=options;
10-07 13:01:14.282:E/Web控制台(9564)://在注册和通知时触发
10-07 13:01:14.282:E/Web控制台(9564):var that=this;
10-07 13:01:14.282:E/Web控制台(9564):var成功=功能(结果){
10-07 13:01:14.282:E/Web控制台(9564):如果(result&&type of result.registration Id!=“未定义”){
10-07 13:01:14.282:E/Web控制台(9564):that.emit('registration',result);
10-07 13:01:14.282:E/Web控制台(9564):}else if(result&&type of result.callback!=='undefined'){
10-07 13:01:14.282:E/Web控制台(9564):var多功能=函数(函数名,上下文/*,args*/){
10-07 13:01:14.282:E/Web控制台(9564):var args=Array.prototype.slice.call(
论点(2);
10-07 13:01:14.282:E/Web控制台(9564):变量名称空间=函数名。拆分(“.”);
10-07 13:01:14.282:E/Web控制台(9564):var func=namespaces.pop();
10-07 13:01:14.282:E/Web控制台(9564):for(var i=0;i
谁能帮我解决这个问题
Hy iam使用phone gap 5.0 CLI,我正在为android 5.0开发应用程序,API级别为22 Js技术是jquery我正在为android平台构建并在我的设备上测试我在我的PC软件上使用windows 7的是CLI、Eclipse和android。问题是phone gap推送插件无法工作。该插件已被弃用。替代解决方案包括使用日志“Module phonegap-plugin-push.PushNotification不存在”中的第三方解决方案,显然,Phonegap推送插件安装不正确,因此推送通知对象未定义,或者代码中可能存在一些语法或编译错误,因为通常在javascript中,这种情况是由于任何语法错误而发生的,低于它的代码会失败。 github上目前有一个可用的工作平台,它可以在所有Android Api级别(包括牛轧糖)上正常工作。按以下方式注册推送通知对象:
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
}
确保仅在“<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" />