2015-10-20 2 views
0

im workin on phonegap v5.3.6 и cordova v5.3.3. Я сделал все на README, но плагин не работает.Настройка плагинов для подключения к телефонной линии

Вот мой код ниже;

onDeviceReady: function() { 
     var push = PushNotification.init({ 
      "android": { 
       "senderID": "MY_SENDER_ID" 
      }, 
      "ios": {}, 
      "windows": {} 
     }); 
     push.on('registration', function(data) { 
      console.log("registration event"); 
      document.getElementById("regId").innerHTML = data.registrationId; 
      console.log(JSON.stringify(data)); 
     }); 

     push.on('notification', function(data) { 
      console.log("notification event"); 
      console.log(JSON.stringify(data)); 
      var cards = document.getElementById("cards"); 
      var push = '<div class="row">' + 
        '<div class="col s12 m6">' + 
        ' <div class="card darken-1">' + 
        ' <div class="card-content black-text">' + 
        '  <span class="card-title black-text">' + data.title + '</span>' + 
        '  <p>' + data.message + '</p>' + 
        ' </div>' + 
        ' </div>' + 
        ' </div>' + 
        '</div>'; 
      cards.innerHTML += push; 
     }); 

     push.on('error', function(e) { 
      console.log("push error"); 
     }); 
    } 

Это не событие успеха или сообщение об ошибке. Что не так в этой кодовой фразе?

Вот мерзавец репо плагина: https://github.com/phonegap/phonegap-plugin-push

Спасибо за вашу помощь

ответ

1

Try использовать с Push Notification ссылкой. Он отлично работает со мной.

Во-первых зарегистрировать устройство с,

pushNotification.register(
successHandler, 
errorHandler, 
{ 
    "senderID":"replace_with_sender_id", //It should be your project id that you will get from Google Developer Console while registering the project with package name. 
    "ecb":"onNotification" 
} 

и добавить два события - успехи и неудачи, как это,

function successHandler (result) { 
    alert('result = ' + result); //Here you will get your device id. 
} 


function errorHandler (error) { 
    alert('error = ' + error); 
} 

Кроме того, добавьте onNotification событие, что будет срабатывать, когда устройство будет получено уведомление.

function onNotification(e){ 
    alert(e.event); 
} 
+0

[Push Plugin] (https://github.com/phonegap-build/PushPlugin) устарел, поэтому я использую [этот] (https://github.com/phonegap/phonegap-plugin-push). И другой не работал для меня. –

+0

Возможно, у вас есть еще одна проблема. Я использовал https://github.com/phonegap-build/PushPlugin. Пожалуйста, разместите свою ошибку в комментарии. – Dhruv

+0

Я пытаюсь понять, что происходит, но теперь он выдает ошибку, которая является «Класс не foud». Я искал исправление, и я пробовал все предложения, но я не смог. Я думаю, что эти плагины не работали из-за файла config.xml. Я сообщу вам после того, как исправлю файл config.xml. Спасибо, кстати. –

1

Для людей, находящих ответ лучший Push уведомление плагин для PhoneGap существующих в настоящее время является одним упоминается здесь: Phonegap Push Notification Plugin. Он отлично работает на всех версиях для Android и iOS. Его можно использовать, как показано ниже:

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 
} 

Вызвать вышеуказанный код после того, как в приложении появилось событие DeviceReady. И конфигурации в файле AndroidManifest будет (Ссылка Цель):

<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" /> 

Эти конфигурации добавляются автоматически в AndroidManifest всякий раз, когда плагин установлен. И в iOS включите службу Push Notification в разделе возможностей вашего проекта. Также обеспечьте обмен правильным ключом Api с Google Developer Console для Android и p12-файл службы Apple Push Notification вместе с его паролем для iOS для команды сервера, чтобы избежать конфигурации Loopholes.

 Смежные вопросы

  • Нет связанных вопросов^_^