2017-07-27 6 views
1

Ich versuche, native Push-Benachrichtigungen zu verwenden. Es funktioniert alles auf iOS, aber auf Android, ich bekomme undefined ist kein Objekt (Bewertung RNPushnotification.getInitialNotifications).reagieren-native-Push-Benachrichtigung ist undefined

Hier ist meine build.gradle

dependencies { 
    compile project(':react-native-push-notification') 
    compile project(':react-native-vector-icons') 
    compile fileTree(dir: "libs", include: ["*.jar"]) 
    compile "com.android.support:appcompat-v7:23.0.1" 
    compile "com.facebook.react:react-native:+" // From node_modules 
    compile project(':react-native-push-notification') 
    compile ('com.google.android.gms:play-services-gcm:8.1.0') { 
     force = true; 
    } 
} 

Das ist mein manifestfile ist:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.tzawajna" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <permission 
     android:name="${applicationId}.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 
    <uses-permission android:name="com.tzawajna.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

    <uses-sdk 
     android:minSdkVersion="16" 
     android:targetSdkVersion="22" /> 

    <application 
     android:name=".MainApplication" 
     android:allowBackup="true" 
     android:label="@string/app_name" 
     android:icon="@mipmap/ic_launcher" 
     android:theme="@style/AppTheme"> 
     <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> 
     <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> 
     <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="com.tzawajna" /> 
      </intent-filter> 
     </receiver> 

     <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" /> 

     <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

     <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationRegistrationService"/> 
     <service 
      android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService" 
      android:exported="false" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      </intent-filter> 
     </service> 

    </application> 

</manifest> 

dies mein MainApplication.java ist

package (My app); 

import android.app.Application; 

import com.facebook.react.ReactApplication; 
import com.facebook.react.ReactNativeHost; 
import com.facebook.react.ReactPackage; 
import com.facebook.react.shell.MainReactPackage; 
import com.facebook.soloader.SoLoader; 

import java.util.Arrays; 
import java.util.List; 

public class MainApplication extends Application implements ReactApplication { 

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 
    @Override 
    public boolean getUseDeveloperSupport() { 
     return BuildConfig.DEBUG; 
    } 

    @Override 
    protected List<ReactPackage> getPackages() { 
     return Arrays.<ReactPackage>asList(
      new MainReactPackage() 
    ); 
    } 
    }; 

    @Override 
    public ReactNativeHost getReactNativeHost() { 
    return mReactNativeHost; 
    } 

    @Override 
    public void onCreate() { 
    super.onCreate(); 
    SoLoader.init(this, /* native exopackage */ false); 
    } 
} 

habe ich reagieren-native Link und mir zu sagen, dass reactive-native-Push-Benachrichtigungen verknüpft wurden. Aus diesem Grund habe ich der Java-Datei nichts hinzugefügt. Ich habe versucht, den angeforderten Code hinzuzufügen, dann sagt mir der debug, dass es einen Fehler mit dem javatojava

gibt Bitte helfen Sie.

Antwort

1

Ich kann sehen, dass das Paket nicht mit Ihrer Java-Datei verknüpft ist.

import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage; 

am ersten Ihre MainApplication.java Datei hinzufügen, auch neue ReactNativePushNotificationPackage() zu GetPackages Methode Rückgabewert hinzufügen, so dass es wie folgt aussieht:

@Override 
    protected List<ReactPackage> getPackages() { 
     return Arrays.<ReactPackage>asList(
      new MainReactPackage(), 
       new ReactNativePushNotificationPackage() 
    ); 
    } 
+0

würde ich sicher, es ist verbunden macht auch in die '.gradle' Dateien, wie in der Installationsanleitung des Android Handbuches zu sehen: https://github.com/zo0r/react-native-push-notification – MattyK14