μ€λͺ
:
νΈμ μλ¦Όμ ν΄λ¦νλ©΄ Android μ±μ΄ λ€μ λ λλ§λ©λλ€. IOSμμ νμΈνμ§ μμμ΅λλ€.
νκ²½
react-native-onesignal: 3.2.11,
λ°μ: 16.6.0-alpha.8af6728,
λ°μ λ€μ΄ν°λΈ: 0.57.4,
npm install --save react-native-onesignal
λͺ
λ Ήμ μ¬μ©νμ¬ oneSignalμ μ€μΉνμ΅λλ€.
μ΄ λ¬Έμμ λ°λΌ oneSignal ν¨ν€μ§λ₯Ό ꡬμ±νμ΅λλ€. https://documentation.onesignal.com/v5.0/docs/react-native-sdk-setup
λ¬Έμ μ¬ν λ¨κ³:
react-navigation: 2.16
μμ΅λλ€.
μ΄κ²μ λ΄ μ½λμ
λλ€.
componentDidMount() {
// One signal notification settings
OneSignal.configure();
OneSignal.setLogLevel(5, 0); // adb logcat debug (5) logs
OneSignal.init('xxxxxxxxxxxx');
OneSignal.inFocusDisplaying(2);
OneSignal.addEventListener('ids', this.onIds);
OneSignal.getPermissionSubscriptionState((status) => {
if(status.userId)
// update userID using props
});
}
onIds = (device) => {
const userId = device.userId;
if(userId)
// update userID using props
OneSignal.removeEventListener('ids', this.onIds);
}
md5-e56be07ed32a6f3a60c846daed91829f
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
λλ ν΄κ²°μ± μ μ°ΎμΌλ €κ³ λ Έλ ₯νμ§λ§, λλ ν μ μμλ€. μ΄μ λν΄ μ΄λ€ μκ°μ΄ μλ μ¬λμ΄ μμΌλ©΄ μλ €μ£ΌμΈμ.
μ±μ΄ λ€μ λ λλ§λλ μ΄μ λ₯Ό μμμ΅λλ€. μλ¦Όμ ν΄λ¦νλ©΄ μ±μ΄ λ°±κ·ΈλΌμ΄λλ‘ μ΄λν λ€μ ν¬κ·ΈλΌμ΄λλ‘ μ΄λνκΈ° λλ¬Έμ
λλ€.
μ± μνκ° λ³κ²½λλ μ΄μ λ 무μμ
λκΉ? μλ¦Όμ ν΄λ¦νμ λ.
μ΄κ²μ λ©μΆλ λ°©λ².
AndroidManifest.xmlμ android:launchMode= "singleTop"μ μΆκ°νμ΅λκΉ?
@martinosmartinos λ€, μΆκ°νμ΅λλ€.
λμ λ Όλ¦¬λ₯Ό componentWillMount μλͺ μ£ΌκΈ°λ‘ μ΄λνκ³ λμμ΄ λλμ§ νμΈνμμμ€.
@martinosmartinosλ₯Ό μ§μν΄μ£Όμ μ κ°μ¬ν©λλ€. νμ§λ§ μλνμ§ μμμ΅λλ€.
μλ
νμΈμ @janaka120
μ±μ λ₯λ§ν¬λ₯Ό μλνλ κ² κ°μ΅λλ€. μ΄ μ£Όμ μ λν μμΈν μ 보λ μ¬κΈ° μμ μ°Ύμ μ μμ΅λλ€. λ°μ νμμΌλ‘ μΈν΄ λ¬Έμ κ° λ°μν μλ μμ΅λλ€.
μ 체 μ±μ΄ λ€μ λ λλ§λλμ§ μλλ©΄ νμ¬ νλ©΄μ΄ λ€μ λ λλ§λ¨(react-lifecycle)μ μλ―Ένλμ§ κΆκΈν©λλ€.
μλ νμΈμ @rgomezp
νΈμ μλ¦Όμ ννλ©΄ μ 체 μ±μ΄ λ λλ§λ©λλ€.
@janaka120 μκ² μ΅λλ€ . λ©νΈλ‘ λ²λ€λ¬κ° λͺ¨λ κ²μ μ¬κ΅¬μΆνκ±°λ λ¨μν μμ νλ©΄ λ°/λλ ννμ΄μ§λ‘ λμκ°λμ?
@rgomezp μμ νλ©΄μΌλ‘ λμκ°μ§ μμ΅λλ€. λλ ννμ΄μ§λ‘ λμκ°λλ€. νΈμ μλ¦Όμ νν ν κΈ°λ³Έ app.jsλ₯Ό μ½μνλ©΄ λ΄ μ±μ΄ ν νλ©΄μΌλ‘ λΌμ°ν λ©λλ€.
@janaka120 ok κ·Έλμ νμΈμ μν΄ μ±μ΄ μ¬λ°λ₯΄κ² λ€μ λ²λ€λμ§ μμ΅λκΉ?
@rgomezp λ€. μ¬ν¬μ₯μ΄ μλλλ€.
μ΄κ²μ λ₯λ§νΉ λ¬Έμ μ²λΌ λ€λ¦½λλ€. λ₯ λ§ν¬λ₯Ό μ¬λ°λ₯΄κ² μ€μ νλ λ°©λ²μ λν μ€λͺ μλ₯Ό μ½κ³ λͺ¨λ μμ μ μ¬λ°λ₯΄κ² μννλμ§ νμΈνμμμ€. https://documentation.onesignal.com/docs/links
@rgomezp νΈμ μλ¦Όκ³Ό ν¨κ» λ₯ λ§ν¬λ₯Ό μ¬μ©νμ§ μμμ΅λλ€.
iOSμμ λμΌν κ²°κ³Όκ° λνλλμ§ ν μ€νΈν΄ μ£Όμκ² μ΅λκΉ? μ μ΄λ° μΌμ΄ λ°μνλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μνκ° λ³κ²½λλ©΄ Reactκ° λ€μ λ λλ§λ©λλ€.
무μλ΅μΌλ‘ μ’ λ£
κ·Έλ¬λ©΄ λ¬Έμ κ° ν΄κ²°λ μ μμ΅λλ€.
android:launchMode= "singleTop"μ μ¬μ©νλ λμ android:launchMode= "singleTask"λ₯Ό μ¬μ©νμΈμ.
κ·Έλ¬λ©΄ λ¬Έμ κ° ν΄κ²°λ μ μμ΅λλ€.
android:launchMode= "singleTop"μ μ¬μ©νλ λμ android:launchMode= "singleTask"λ₯Ό μ¬μ©νμΈμ.
λλ κ°μ λ¬Έμ κ° μμ΅λλ€.
λ λ€λ₯Έ λ¬Έμ λ μ΄λ©μΌμμ λ₯ λ§ν¬λ₯Ό μ΄ λ μ±μ΄ μ μ± μμ
μ μ¬λ κ²μ
λλ€. μμ
κ΄λ¦¬μλ₯Ό μ΄λ©΄ λ΄ μ±μ μ¬λ¬ νμ΄ μ€ν μ€μ
λλ€.
κ·Έλ¦¬κ³ SINGLETASKλ‘ λ³κ²½νλ©΄ ν΄κ²°λ©λλ€.
κ·Έλ¬λ λ΄ μ§λ¬Έμ SINGLETASKλ‘ λ³κ²½νλ κ²½μ° κ³ λ €ν΄μΌ ν λ¬Έμ κ° μμ΅λκΉ?
@rgomezp Androidμ μλ³Έ ν¬μ€ν°μ λμΌν λ¬Έμ λ₯Ό κ²ͺκ³ μλ€κ³ μκ°ν©λλ€. λ΄ μμ© νλ‘κ·Έλ¨μ΄ μ€ν μ€μ΄λ©° μ΅μνν©λλ€. νΈμ μλ¦Όμ΄ λμ°©νκ³ ννμ¬ μ ν리μΌμ΄μ
μ μ½λλ€. μ΄ μμ μμ μ 체 μμ© νλ‘κ·Έλ¨μ΄ λ€μ μ΄κΈ°νλ©λλ€. iOSμμλ μ΄λ° μμΌλ‘ μλνμ§ μμ΅λλ€. νμ¬ SDK λ¬Έμμμ κΆμ₯νλ λλ‘ singleTop
λ₯Ό μ¬μ©νκ³ μμ§λ§ λ€λ₯Έ λͺ¨λμμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλμ§ κΆκΈν©λλ€.
λμ singleTaskλ₯Ό μ¬μ©νμΈμ.
μ κ·Έλ€μ΄ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ§ μλμ§ μ΄ν΄κ° λμ§ μμ΅λλ€. μλνλ©΄ μ΄κ²μ λ§€μ° μ€μνκΈ° λλ¬Έμ
λλ€.
@hotaryuzaki κ°μ¬ν©λλ€. μ΄μ μ λκΈμ κ²μν ν singleTask
μ μ¬μ©ν΄ 보μλλ° μ§κΈκΉμ§ λμ λλ λ¬Έμ μμ΄ μλνλ κ² κ°μ΅λλ€. SDK μμ±μκ° μ΄κ²μ΄ λ¬Έμ λ₯Ό μΌμΌν¬ μ μλ€κ³ μ¬λ¬ λ² λ§νκΈ° λλ¬Έμ κ±±μ λ©λλ€.
μ, λλ κ·Έκ²μ λν΄ κ·Έλ€λ‘λΆν° νμΈμ λ°μμ§λ§ λ¬Έμ κ° μλ―Ένλ μΈλΆ μ¬νμ λν΄μλ μΈκΈνμ§ μμμ΅λλ€.
κ·Έκ²μ΄ λ¬Έμ λΌλ©΄ μ κ·Έλ€μ΄ κ·Έκ²μ μμ νμ§ μμλμ§ λͺ¨λ₯΄κ² μ΅λλ€.
μλ
,
ν₯ν 릴리μ€μμ μ΄ λ¬Έμ λ₯Ό μμ ν κ³νμ
λλ€. κΈ°λ€λ € μ£Όμ
μ κ°μ¬ν©λλ€.
@rgomezp : launchModeλ₯Ό 'singleTop'μμ 'singleTask'λ‘ λ³κ²½ν λ λ°μν μ μλ κ°λ₯ν λ¬Έμ μΈλΆ μ 보λ₯Ό μ 곡ν μ μμ΅λκΉ?
λ°λΌμ 'singleTask'λ‘ μ ννλ μνμ μ΄ν΄ν μ μμ΅λλ€.
λν auth0 λ° onesignal λ¬Έμ μ μ§λ©΄νκ³ μμ΅λλ€.
μ§κΈμ 'singleTask'λ‘ μ ννμ΅λλ€.
singleTaskλ‘ μ€μ νλ©΄ νλμ μ¬λ¬ 볡μ¬λ³Έμ΄ μμ±λ μ μμ΅λλ€.
@jariwalabhavesh
@rgomezp :
μλ΅ν΄ μ£Όμ
μ κ°μ¬ν©λλ€.
μ΄μ λκΈμμ μΈκΈνλ―μ΄ μμ μ κ³ννκ³ μλ€κ³ μκ°ν©λλ€. κ·ΈλκΉμ§ μ°λ¦¬λ κΈ°λ€λ¦΄ κ²μ
λλ€.
@rgomezp React Native λ¬Έμ(https://facebook.github.io/react-native/docs/linking)μ λ°λΌ λ§ν¬νλ €λ©΄ MainActivityκ° singleTask
μ¬μΌ ν©λλ€. μ΄ μ£Όλ³μ OneSignalμ΄ μμ΅λκΉ?
μλ ,
ν₯ν 릴리μ€μμ μ΄ λ¬Έμ λ₯Ό μμ ν κ³νμ λλ€. κΈ°λ€λ € μ£Όμ μ κ°μ¬ν©λλ€.
@rgomezp μμ ν΄ μ£Όμ μ κ°μ¬ν©λλ€. μ΄ λ¬Έμ κ° μμ§ ν΄κ²°λμμ΅λκΉ?
μ΄ κΈ°λ₯ μμ²μ μμ§ κ΅¬νλμ§ μμμ΅λλ€.
@rgomezp μμ μ¬νμ΄ μΈμ μλ£λ
λλ λν singleTask
λ‘ μ ννμ΅λλ€.
singleTask
μ¬μ©ν λ μμ±λλ νλμ μ¬λ¬ 볡μ¬λ³Έμ΄ νμλμ§ μμ΅λλ€. λν μλ¦Όμ λλ μ λ μ±μ΄ λ€μ μ€νλμ§ μλλ‘ νλ μ μΌν λ°©λ²μ
λλ€. λ₯λ§ν¬κ° μ λλ‘ μλνλλ‘ νλ κ²λ νμν©λλ€...
Androidμ νΈμ μλ¦Όκ³Ό λμΌν λ¬Έμ κ° μμ΅λλ€. νμ§λ§ μ λ λ₯λ§ν¬λ₯Ό μ¬μ©ν©λλ€.
λ¬Έμ λ μ±μ΄ μ’
λ£λκ³ μλ¦Όμμ μ΄λ¦¬λ©΄ μ²μλΆν° λͺ¨λ κ²μ λ‘λν λ μ΄λ¦½λλ€. μ¬μ©μκ° ν λ²νΌμ λλ₯΄κ³ λ€μ λμμ€λ©΄ μ±μ νμ λ€μ λ‘λλκ³ depp μ°κ²°μμ νμ λμΌν launchUrlμ λ€μ μμν©λλ€.
κ°μ₯ μ μ©ν λκΈ
@rgomezp :
μλ΅ν΄ μ£Όμ μ κ°μ¬ν©λλ€.
μ΄μ λκΈμμ μΈκΈνλ―μ΄ μμ μ κ³ννκ³ μλ€κ³ μκ°ν©λλ€. κ·ΈλκΉμ§ μ°λ¦¬λ κΈ°λ€λ¦΄ κ²μ λλ€.