μλ νμΈμ,
μ΄λ―Έ μ΄ λ¬Έμ κ° μΈκΈλ κ²μ 보μκ³ μ μλ μ루μ
μ μλνμ§λ§ μ¬μ ν μλνμ§ μμ΅λλ€.
μ€μΉν λ λΉ νλ‘μ νΈμμ μλνμ§λ§ λ΄ μ£Ό νλ‘μ νΈμμλ μλνμ§ μμΌλ―λ‘ λ¬΄μμ΄ λ¬Έμ μΌ μ μλμ§ κΆκΈν©λλ€.
κ·Έλ¬λ node_modules\react-native-onesignal\android\src\main\java\com\geektime\rnonesignalandroidμμ μ¬λ°λ₯Έ com.geektime.rnonesignalandroid ν¨ν€μ§λ₯Ό μ°Ύμ μ μμΌλ―λ‘ μ°Ύμ μ μλ μ΄μ λ₯Ό μ΄ν΄ν μ μμ΅λλ€.
λ°μ 16.0.0
λ°μ λ€μ΄ν°λΈ 0.54.2
λ΄ MainApplication.java
package com.XXX;
import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.AlexanderZaytsev.RNI18n.RNI18nPackage;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.inprogress.reactnativeyoutube.ReactNativeYouTube;
import com.oblador.vectoricons.VectorIconsPackage;
import com.imagepicker.ImagePickerPackage;
import com.RNFetchBlob.RNFetchBlobPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private static CallbackManager mCallbackManager = CallbackManager.Factory.create();
protected static CallbackManager getCallbackManager() {
return mCallbackManager;
}
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
<strong i="12">@Override</strong>
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
<strong i="13">@Override</strong>
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(new MainReactPackage(),
new ReactNativeOneSignalPackage(),
new RNI18nPackage(), new FBSDKPackage(mCallbackManager), new ReactNativeYouTube(), new VectorIconsPackage(),
new ImagePickerPackage(), new RNFetchBlobPackage());
}
<strong i="14">@Override</strong>
protected String getJSMainModuleName() {
return "index";
}
};
<strong i="15">@Override</strong>
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
<strong i="16">@Override</strong>
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(getApplicationContext());
// If you want to use AppEventsLogger to log events.
SoLoader.init(this, /* native exopackage */ false);
AppEventsLogger.activateApp(this);
}
}
λ΄ node_modulesμ ReactNativeOneSignalPackage.java
package com.geektime.rnonesignalandroid;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by Avishay on 1/31/16.
*/
public class ReactNativeOneSignalPackage implements ReactPackage {
...
}
μ΄μ λ λͺ¨λ₯΄κ² μ§λ§ "react-native link"κ° "compile project(':react-native-onesignal')" μ€μ μΆκ°νμ§ μκ³ μλμΌλ‘ μννκ³ μ΄μ μλν©λλ€.
λ λ€λ₯Έ μ¬μν λ¬Έμ λ λ§ν¬ μμ μ΄ λ€μ μ€μ λ§€λ² μΆκ°λλ€λ κ²μ λλ€.
import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
new ReactNativeOneSignalPackage(),
λ¬Έμ λ₯Ό μ’ λ£ν μ μμ΅λλ€.
@Kisepro μ΄ λ¬Έμ λ₯Ό μ¬νν μ μμ΅λλ€. λ΄ μλμμ μμ ν μλ‘μ΄ react-native νλ‘μ νΈλ₯Ό λ§λ€κ³ readmeμ μ§μΉ¨μ λ°λΌ react-native-onesignal SDKλ₯Ό μλμΌλ‘ μΆκ°νμ΅λλ€.
μ½μ΄λ³΄κΈ°μ μλ μ§μΉ¨μ μ ννκ² λ°λμ΅λκΉ? κ·Έλ μ§ μλ€λ©΄ μ΄λ»κ² νμ΅λκΉ?
@Nightsd01 μ, μ ννκ² λ°λΌνμΌλ©° μμ ν μλ‘μ΄ λ°μ λ€μ΄ν°λΈ νλ‘μ νΈμμ μννλ©΄ μ μκ²λ ν¨κ³Όμ μ λλ€.
λ΄ μκ°μ κ·Έκ²μ μ λ§λ‘ λ΄ νλ‘μ νΈμ νΉμ ν κ²μ΄κ³ λλ κ·Έ μ΄μ λ₯Ό μ΄ν΄νμ λ μλνλλ‘ κ΄λ¦¬ νμΌλ―λ‘ κ·Έ λ¬Έμ μ λν΄ μκ°μ λλΉν΄μλ μλλ€κ³ μκ°ν©λλ€.
λλ μ΄κ²μ΄ "react-native-push-notification" μ°κ²° λλ¬ΈμΌ μ μλ€κ³ μκ°ν©λλ€. μ΄ μ»΄νμΌ λͺ λ Ήκ³Ό κ°μ μ΄ ν¨ν€μ§μ λ λ€λ₯Έ μΆ©λμ΄ μμμ΅λλ€.
dependencies {
compile ('com.google.android.gms:play-services-gcm:8.1.0') {
force = true;
}
...
}
μ΄ ν¨ν€μ§λ λ μ΄μ νμνμ§ μμΌλ―λ‘ μ κ±°νλ κ²μ΄ μ€μνμ§ μμ΅λλ€.
λ¬Έμ κ° ν΄κ²°λμ΄ κΈ°μ©λλ€.
μ΄μ μ μ¬ν λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ onesignal λ±κΈ νλ¬κ·ΈμΈμ΄ μμ΅λλ€. μ± gradle νμΌμ 맨 μμ λ°°μΉν΄μΌ ν©λλ€.
plugins {
id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin
κ°μ₯ μ μ©ν λκΈ
μ΄μ λ λͺ¨λ₯΄κ² μ§λ§ "react-native link"κ° "compile project(':react-native-onesignal')" μ€μ μΆκ°νμ§ μκ³ μλμΌλ‘ μννκ³ μ΄μ μλν©λλ€.
λ λ€λ₯Έ μ¬μν λ¬Έμ λ λ§ν¬ μμ μ΄ λ€μ μ€μ λ§€λ² μΆκ°λλ€λ κ²μ λλ€.
λ¬Έμ λ₯Ό μ’ λ£ν μ μμ΅λλ€.