React-native-onesignal: 였λ₯˜: com.geektime.rnonesignalandroid νŒ¨ν‚€μ§€κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

에 λ§Œλ“  2018λ…„ 03μ›” 19일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: OneSignal/react-native-onesignal

μ•ˆλ…•ν•˜μ„Έμš”,

이미 이 λ¬Έμ œκ°€ μ–ΈκΈ‰λœ 것을 λ³΄μ•˜κ³  μ œμ•ˆλœ μ†”λ£¨μ…˜μ„ μ‹œλ„ν–ˆμ§€λ§Œ μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μ„€μΉ˜ν•  λ•Œ 빈 ν”„λ‘œμ νŠΈμ—μ„œ μž‘λ™ν•˜μ§€λ§Œ λ‚΄ μ£Ό ν”„λ‘œμ νŠΈμ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 무엇이 문제일 수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 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(),

문제λ₯Ό μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

μ΄μœ λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ "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
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰