μ¬λ³΄μΈμ!
"λ°μ λ€μ΄ν°λΈ": "0.55.3",
"react-native-onesignal": "^3.2.3",
μ±.js
componentWillMount() {
OneSignal.init('bddacd3f-7812-4a29-b038-.................');
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
}
onReceived(notification) {
console.log("Notification received: ", notification);
}
onOpened(openResult) {
console.log('Message: ', openResult.notification.payload.body);
console.log('Data: ', openResult.notification.payload.additionalData);
console.log('isActive: ', openResult.notification.isAppInFocus);
console.log('openResult: ', openResult);
}
onIds(device) {
console.log('Device info: ', device);
}
iOSμμ μμ
μλλ‘μ΄λμμ μλνμ§ μμ΅λλ€
@aspidvip μ’ λ μμΈν μ 보λ₯Ό μ κ³΅ν΄ μ£Όμκ² μ΅λκΉ? μ΄ μ€λ₯κ° μμΈλ₯Ό λ°μμν€κ³ μΆ©λμ μΌμΌν€λμ? μλλ©΄ κ·Έλ₯ μλνμ§ μλμ(νλ μ΄μ΄ ID μμ, νΈμ μλ¦Ό μμ λΆκ° λ±)? μ¦μμ 무μμ λκΉ?
λλμ΄ λ¬Έμ κ° μμλ€. λ°μ λ€μ΄ν°λΈ νμ λλ¬Έμ΄λΌκ³ μκ°ν©λλ€. μ ν리μΌμ΄μ
μ΄ μμλ μ§ν λ€λ₯Έ νλμ μμν©λλ€. κ·Έ λμ OneSignal.init()
λ₯Ό νΈμΆνλ©΄ νλμ΄ nullμ΄λΌκ³ νμλ©λλ€. μ€λ₯κ° λ°μνμ΅λλ€.
OneSignal.init()
λ₯Ό νΈμΆνκΈ° μ μ λͺ μ΄ λμ κΈ°λ€λ¦¬λ©΄ μλνμ§λ§ λ€λ₯Έ μ€λ₯κ° λ°μν©λλ€. FirebaseAppμ΄ μ΄κΈ°νλμ§ μμ μ±μ
λλ€. λ¬Έμ #515. μ΄κ²μ λν μμ μ΄λ ν΄κ²° λ°©λ²λ κΈ°λν©λλ€...
react-native-onesignal:3.1.4
μ¬μ©νμ¬ ν΄κ²°νμ΅λλ€. λ€μμ μ¬μ©νμ¬ μ΄κΈ°νν©λλ€.
defaultConfig {
applicationId "APP_ID"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
manifestPlaceholders = [onesignal_app_id: "YOUR_ONESIGNAL_ID",
onesignal_google_project_number: "REMOTE"]
}
κ·Έλ¦¬κ³ κ·Έκ² λ€μΌ. react-native-navigationμ μ¬μ©νλ κ²½μ° JS μΈ‘μμ μννλ κ²λ³΄λ€ ν¨μ¬ κ°λ¨ν©λλ€.
νλ μ΄μ΄ IDκ° μμ΅λλ€. νΈμ μλ¦Όμ λ°μ μ μμ΅λλ€!
@urbancvek λμΌν μ΄κΈ°ν κΈ°μ (iOSμ© AppDelegate λ° Androidμ© gradle μ¬μ©)μ 3.2.3μμλ μλν©λλ€.
@aspidvip κ·Έκ²μ λ§€μ° κ΄λ²μν λ¬Έμ μ΄λ©° 무μμ΄λ λ μ μμ΅λλ€. μ΄κ²μ react-native-navigation λ° OneSignal μ΄κΈ°ν νμ΄λ°κ³Ό κ΄λ ¨λ λ¬Έμ μΌ μ μμ΅λλ€.
λλ νλ€
componentDidMount(){
setTimeout(()=>{
OneSignal.init('bddacd3f-7812-4a29-b038-ebf844c9826d');
},5000);
}
E/OneSignal: The included Android Support Library is to old or incomplete. Please update to the 26.0.0 revision or newer.
D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote: at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote: at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote: at void java.lang.Thread.run() (Thread.java:764)
νμ§λ§ νλ μ΄μ΄ IDκ° μκ³ νΈμ μλ¦Όμ λ°μ μ μμ΅λλ€!
@aspidvip build.gradle
λ₯Ό κ²μν μ μμ΅λκΉ? μ΄κ²μ νμ€ν μμ‘΄μ± λ¬Έμ κ° λ κ²μ
λλ€.
λν react-native-onesignal/build.gradle
νμΌλ‘ μ΄λνμ¬ OneSignal android SDKλ₯Ό 3.9.1λ‘ μ
λ°μ΄νΈν μ μμ΅λλ€.
plugins {
id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.vectoricons = [
iconFontNames: [ 'MaterialIcons.ttf', 'EvilIcons.ttf', 'MaterialCommunityIcons.ttf', 'Ionicons.ttf' ] // Name of the font files you want to copy
]
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
apply plugin: 'com.android.application'
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = true
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "com.nameproject"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
ndk {
abiFilters "armeabi-v7a", "x86"
}
/*manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
onesignal_google_project_number: "712648705913"]*/
manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
onesignal_google_project_number: "712648705914"]
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk true // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-onesignal')
compile project(':react-native-contacts')
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-navigation')
compile project(':react-native-vector-icons')
compile project(':react-native-fetch-blob')
compile project(':react-native-photo-view')
compile project(':react-native-i18n')
compile project(':react-native-sqlite-storage')
compile project(':react-native-linear-gradient')
compile project(':react-native-image-crop-picker')
compile project(':react-native-sound')
compile project(':react-native-open-settings')
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
@aspidvip μ΄κ²μ react-native-onesignal/build.gradle
λ° app/build.gradle
μ Android API λ λ²¨μ΄ μΌμΉνμ§ μμ κ°λ₯μ±μ΄ μμμ μλ―Έν©λλ€. μ±μ API μμ€μ λ€μκ³Ό κ°μ΄ λ³κ²½νλ κ²μ΄ μ’μ΅λλ€.
compileSdkVersion 23
buildToolsVersion "23.0.1"
κ°μ₯ μ€μν κ²μ μΌμΉ νλ€λ κ²μ
λλ€. react-native-onesignal/build.gradle
λ‘ μ΄λνμ¬ μνλ λλ‘ λ³κ²½ν μλ μμ΅λλ€.
build.gradle νμΌκ³Ό μΌμΉν΄λ λ¬Έμ κ° ν΄κ²°λμ§ μμμ΅λλ€.
@hamadasamir85 νκ²½μ΄ μ΄λ»κ² μκ²Όλμ§, μ΄λ€ μ’ μμ±μ μ¬μ©νκ³ μλμ§ λ±μ μ ν λͺ¨λ¦ λλ€. μ§κΈκΉμ§ aspidvipμ build.gradle λ° κΈ°ν μΈλΆ μ 보λ₯Ό κ²μν μ μΌν μ¬λμ λλ€. μ΄κ²μ κ΄λ²μν λ¬Έμ μ΄λ©° λ§μ μ μ¬μ μΈ μμΈμ΄ μμ μ μμ΅λλ€. aspidvipμ μμ²ν κ²κ³Ό λμΌν μΈλΆ μ 보λ₯Ό κ²μνμμμ€.
@aspidvip λ²μ μΌμΉκ° μλνλμ§/μλνμ§ μλμ§ μλ €μ£Όκ³ μλν/μλνμ§ μμ Android API λ 벨λ μλ €μ£Όμμμ€.
κ·Έλ¦¬κ³ μμ§ν λ§ν΄μ, μ΄ λ¬Έμ λ₯Ό μ¬ννλ λ°λͺ¨ νλ‘μ νΈλ₯Ό λ³΄λΌ μ μλ€λ©΄ _μ λ§_ λμμ΄ λ κ²μ λλ€.
λμΌν λ¬Έμ :
μ μ ν λ°μ λ€μ΄ν°λΈ νλ‘μ νΈμμ
ν¨ν€μ§.json
````{
"μ΄λ¦": "λ§μ΄μ±",
"λ²μ ": "0.0.1",
"λΉκ³΅κ°": μ¬μ€,
"μ€ν¬λ¦½νΈ": {
"μμ": "λ
Έλ node_modules/react-native/local-cli/cli.js μμ",
"ν
μ€νΈ": "λλ΄"
},
"μ’
μμ±": {
"λ°μ": "16.3.1",
"λ°μ λ€μ΄ν°λΈ": "0.55.4",
"react-native-onesignal": "^3.2.4"
},
"devDependencies": {
"λ°λ²¨ λλ΄": "22.4.4",
"babel-preset-react-native": "4.0.0",
"λλ΄": "22.4.4",
"λ°μ ν
μ€νΈ λ λλ¬": "16.3.1"
},
"λλ΄": {
"μ¬μ μ€μ ": "λ°μ λ€μ΄ν°λΈ"
}
}
````
λ‘κ·ΈμΊ£
````
05-23 23:08:46.555 12785-12785/? E/μ ν©μ: v2
05-23 23:08:46.555 12785-12785/? I/libpersona: KNOX_SDCARDκ° 10304λ₯Ό νμΈ μ€μ
λλ€.
KNOX_SDCARD νλ₯΄μλ μλ
05-23 23:08:46.557 12785-12785/? E/μ ν©μ: accessInfo: 0
05-23 23:08:46.558 12785-12785/? W/SELinux: SELinux selinux_android_compute_policy_index : μ μ±
μμΈ[2], Con:u :r: zygote:s0 SPD:SEPF_SECMOBILE_7.0_0006 RAM:SEPF_SECMOBILE_7.0_0009 , [-1 -1 -9 -1 0 1]
05-23 23:08:46.561 12785-12785/? I/SELinux: SELinux: seapp_context_lookup: seinfo=untrusted, level=s0:c512,c768, pkgname=app.myapp
05-23 23:08:46.569 12785-12785/? I/art: μ§μ° νμ±ν - Xcheck:jni
05-23 23:08:46.623 12785-12785/? D/TimaKeyStoreProvider: TimaSignatureλ₯Ό μ¬μ©ν μ μμ΅λλ€.
05-23 23:08:46.624 12785-12785/? D/ActivityThread: TimaKeyStore 곡κΈμ μΆκ°
05-23 23:08:46.735 12785-12785/app.myapp D/ContextRelationMgrBrdg: loadKlass(): caller=com.samsung.android.bridge.multiscreen.common.ContextRelationManagerBridge.
05-23 23:08:46.748 12785-12785/app.myapp I/FirebaseInitProvider: FirebaseApp μ΄κΈ°ν ββμ€ν¨
05-23 23:08:46.753 12785-12785/app.myapp V/fb-UnpackingSoSource: μ κΈ΄ dso μ μ₯μ /data/user/0/app.myapp/lib-main
05-23 23:08:46.756 12785-12785/app.myapp V/fb-UnpackingSoSource: deps μ μ₯μμ deps λΆμΌμΉ: μ¬μμ±
κ·Έλμ λλ¬μ΄ μ μ₯: μ¬μ
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libfb.so κ³ λ € λΆκ°: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libfolly_json.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libglog.so κ³ λ € λΆκ°: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libglog_init.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libgnustl_shared.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libicu_common.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
05-23 23:08:46.818 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libimagepipeline.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libjsc.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libprivatedata.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libreactnativejni.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
lib/armeabi-v7a/libyoga.soμ λν κ³ λ €λ₯Ό νμ©νμ§ μμ: libdirλ‘ μ°κΈ°
05-23 23:08:46.818 12785-12785/app.myapp V/fb-UnpackingSoSource: DSO μ μ₯μ μ¬μμ± com.facebook.soloader.ApkSoSource
05-23 23:08:46.819 12785-12785/app.myapp V/fb-UnpackingSoSource: syncer μμ
μ μμ μ€
05-23 23:08:46.836 12785-12785/app.myapp V/fb-UnpackingSoSource: /data/user/0/app.myapp/lib-mainμ λν dso μ μ₯μ μ κΈ ν΄μ (syncer μ€λ λμμ)
/data/user/0/app.myapp/lib-mainμ λν dso μ μ₯μ μ κΈμ ν΄μ νμ§ μμ(λκΈ°ν μ€λ λ μμλ¨)
05-23 23:08:46.914 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.ctor()
05-23 23:08:46.936 12785-12785/app.myapp D/NetworkSecurityConfig: νλ«νΌ κΈ°λ³Έκ°μ μ¬μ©νμ¬ μ§μ λ λ€νΈμν¬ λ³΄μ κ΅¬μ± μμ
05-23 23:08:46.988 12785-12785/app.myapp D/SensorManager: registerListener :: 0, K6DS3TR κ°μλ μΌμ, 66667, 0,
05-23 23:08:47.027 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.createReactContextInBackground()
ReactInstanceManager.recreateReactContextInBackgroundInner()
05-23 23:08:47.066 12785-12851/app.myapp W/ unknown:InspectorPackagerConnection : ν¬μ₯κΈ°μ μ°κ²°ν μ μμ΅λλ€. μλμΌλ‘ λ€μ μλν©λλ€.
05-23 23:08:47.117 12785-12785/app.myapp D/InputTransport: μ
λ ₯ μ±λ ꡬμ±: fd=65
05-23 23:08:47.118 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: setView = DecorView@40d2e6a [MainActivity] touchMode=true
05-23 23:08:47.125 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:08:47.145 12785-12785/app.myapp D/SensorManager: registerListener :: 0, K6DS3TR κ°μλ μΌμ, 66667, 0,
05-23 23:08:47.207 12785-12853/app.myapp I/OpenGLRenderer: μ΄κΈ°νλ EGL, λ²μ 1.4
05-23 23:08:47.207 12785-12853/app.myapp D/OpenGLRenderer: μ€μ λμ 1
05-23 23:08:47.229 12785-12853/app.myapp D/libGLESv1: STS_GLApi : DTSλ ν¨ν€μ§μ λν΄ νμ©λμ§ μμ΅λλ€: app.myapp
[05-23 23:08:47.232 12785-12853/app.myapp D/mali_winsys: EGLint new_window_surface(egl_winsys_display , void , EGLSurface, EGLConfig, egl_winsys_surface , 04 λ₯Ό λ°ν ν©λλ€.05-23 23:08:47.255 12785-12785/app.myapp D/InputTransport: μ
λ ₯ μ±λ ꡬμ±: fd=7105-23 23:08:47.255 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: setView = android.widget.PopupWindow$PopupDecorView{3423ed3 VE..... NS.
νμ : 1
05-23 23:08:47.550 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect , 0) λλ=1
05-23 23:08:48.641 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: dispatchDetachedFromWindow
05-23 23:08:48.670 12785-12785/app.myapp D/InputTransport: μ
λ ₯ μ±λ νκ΄΄: fd=71
05-23 23:08:48.671 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.onJSBundleLoadedFromServer()
05-23 23:08:48.672 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.recreateReactContextInBackground()
05-23 23:08:48.673 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.runCreateReactContextOnNewThread()
05-23 23:08:48.697 12785-13022/app.myapp I/art: Thread[25,tid=13022,Native,Thread*=0xdeac1600,peer=0x12cdf5e0,"Thread-5"] "λΌμ΄λΈλ¬λ¦¬ λ‘λλ₯Ό μν μ¬κ·μ μλ /data/app/app.myapp-2/lib/arm/libfb.so"
05-23 23:08:48.699 12785-13022/app.myapp D/ReactNative: ReactInstanceManager.createReactContext()
05-23 23:08:48.711 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTGroupViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.713 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTGroupShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.717 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTShapeViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
com.facebook.react.views.art.ARTShapeShadowNode ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.720 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTTextViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
com.facebook.react.views.art.ARTTextShadowNode ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.722 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.checkbox.ReactCheckBoxManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.729 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.uimanager.LayoutShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.740 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.picker.ReactDialogPickerManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.744 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.drawer.ReactDrawerLayoutManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.749 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.picker.ReactDropdownPickerManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.750 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactHorizontalScrollViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.762 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.764 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.progressbar.ReactProgressBarViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.767 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.progressbar.ProgressBarShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.769 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactScrollViewManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.776 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.slider.ReactSliderManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.780 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.slider.ReactSliderManager$ReactSliderShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.781 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.switchview.ReactSwitchManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.784 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.785 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.toolbar.ReactToolbarManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.791 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.webview.ReactWebViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.797 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.802 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTSurfaceViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.803 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTSurfaceViewShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.804 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.805 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.807 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.image.ReactImageManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.814 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.modal.ReactModalHostManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.817 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.modal.ModalHostShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.818 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactRawTextManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.820 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactRawTextShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.822 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.textinput.ReactTextInputManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.835 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.textinput.ReactTextInputShadowNode ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.841 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactTextViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.847 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactTextShadowNode ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.848 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.view.ReactViewManager ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.857 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.viewpager.ReactViewPagerManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.862 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactVirtualTextViewManager ν΄λμ€μ λν΄ μμ±λ μ€μ μλ₯Ό μ°Ύμ μ μμ΅λλ€.
com.facebook.react.views.text.ReactVirtualTextShadowNode ν΄λμ€μ λν΄ μμ±λ setterλ₯Ό μ°Ύμ μ μμ΅λλ€.
05-23 23:08:48.885 12785-13022/app.myapp D/ReactNative: React Xplat Bridgeλ₯Ό μ΄κΈ°ννλ μ€μ
λλ€.
05-23 23:08:48.890 12785-13022/app.myapp D/ReactNative: initializeBridge μ μ React Xplat Bridge μ΄κΈ°ν μ€
05-23 23:08:48.905 12785-13022/app.myapp D/ReactNative: initializeBridge ν React Xplat Bridge μ΄κΈ°ν μ€
CatalystInstanceImpl.runJSBundle()
05-23 23:08:48.906 12785-13054/app.myapp D/ReactNative: ReactInstanceManager.setupReactContext()
CatalystInstanceImpl.initialize()
05-23 23:08:48.907 12785-13054/app.myapp D/ReactNative: ReactInstanceManager.attachRootViewToInstance()
05-23 23:08:48.907 12785-12785/app.myapp W/ unknown:ReactNative : Packager μ°κ²°μ΄ μ΄λ―Έ μ΄λ € μμ΅λλ€.
05-23 23:08:49.512 12785-13054/app.myapp I/WebViewFactory: com.android.chrome λ²μ 66.0.3359.158(μ½λ 335915852) λ‘λ μ€
05-23 23:08:49.675 12785-13054/app.myapp I/cr_LibraryLoader: λ€μ΄ν°λΈ λΌμ΄λΈλ¬λ¦¬ λ‘λ μκ°: 13ms(νμμ€ν¬ν 3227-3240)
05-23 23:08:49.704 12785-13054/app.myapp I/chromium: [ INFO:library_loader_hooks.cc (36)] ν¬λ‘¬ λ‘κΉ
μ¬μ©: μμ€ = 0, κΈ°λ³Έ μμΈ μμ€ = 0
05-23 23:08:49.705 12785-13054/app.myapp I/cr_LibraryLoader: μμ λ€μ΄ν°λΈ λΌμ΄λΈλ¬λ¦¬ λ²μ λ²νΈ "66.0.3359.158", μ€μ λ€μ΄ν°λΈ λΌμ΄λΈλ¬λ¦¬ λ²μ λ²νΈ "66.0.3359.158"
05-23 23:08:49.994 12785-13053/app.myapp I/ReactNativeJS: appParams: {"rootTag":1}λ‘ μμ© νλ‘κ·Έλ¨ "myapp"μ μ€ν μ€μ
λλ€. __DEV__ === true, κ°λ° μμ€ κ²½κ³ κ° μΌμ Έ μκ³ μ±λ₯ μ΅μ νκ° κΊΌμ Έ μμ΅λλ€.
05-23 23:08:50.096 12785-13054/app.myapp E/onesignal: νλμ΄ null true λλ oneSignalInitDonefalseμ΄κΈ° λλ¬Έμ OneSignal SDKλ₯Ό μ΄κΈ°νν μ μμ΅λλ€.
05-23 23:09:03.299 12785-12798/app.myapp I/art: λ°°κ²½ κ³ μ λμ λ§ν¬ μ€μ GC ν΄μ 22289(2MB) AllocSpace κ°μ²΄, 21(484KB) LOS κ°μ²΄, 15% μ¬μ , 16MB/194us μΌμ μ€μ§ 90 μ΄ 119.769ms
05-23 23:09:21.462 12785-12785/app.myapp W/ unknown:ReactNative : Packager μ°κ²°μ΄ μ΄λ―Έ μ΄λ € μμ΅λλ€.
05-23 23:09:21.618 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0) - 0, λλ=1
05-23 23:09:21.856 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED: ci=Rect(0, 84 - 0, 0) vi=Rect(0, 04) - 0, λλ=1
05-23 23:09:21.894 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1
05-23 23:09:21.904 12785-12785/app.myapp V/InputMethodManager: μμ μ
λ ₯: tba=android.view.inputmethod. EditorInfo@95c25a2 nm : app.myapp ic=null
05-23 23:09:21.904 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:22.052 12785-12799/app.myapp D/InputTransport: μ
λ ₯ μ±λ ꡬμ±: fd=86
05-23 23:09:22.053 12785-12785/app.myapp V/InputMethodManager: μμ μ
λ ₯: tba=android.view.inputmethod. EditorInfo@dcef9f0 nm : app.myapp ic=null
05-23 23:09:23.373 12785-12791/app.myapp I/art: λΆλΆ μ½λ μΊμ μμ§ μν, μ½λ=30KB, λ°μ΄ν°=30KB
05-23 23:09:23.374 12785-12791/app.myapp I/art: μ½λ μΊμ μμ§ ν, μ½λ=30KB, λ°μ΄ν°=30KB
μ½λ μΊμ μ©λμ 128KBλ‘ λ리기
05-23 23:09:51.860 12785-12785/app.myapp V/InputMethodManager: μμ μ
λ ₯: tba=android.view.inputmethod. EditorInfo@642c97f nm : app.myapp ic=null
05-23 23:09:51.861 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:51.871 12785-12785/app.myapp D/InputTransport: μ
λ ₯ μ±λ ꡬμ±: fd=83
μ
λ ₯ μ±λ νκ΄΄: fd=86
05-23 23:09:52.285 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:09:52.726 12785-12785/app.myapp V/InputMethodManager: μμ μ
λ ₯: tba=android.view.inputmethod. EditorInfo@dc47e9b nm : app.myapp ic=null
05-23 23:09:52.726 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:52.727 12785-12785/app.myapp D/InputTransport: μ
λ ₯ μ±λ νκ΄΄: fd=83
05-23 23:09:52.807 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0) - 0, λλ=1
05-23 23:09:52.888 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0
05-23 23:13:47.153 12785-12798/app.myapp I/art: λ°°κ²½ λΆλΆ λμ λ§ν¬ μ€μ GC ν΄μ 60244(2MB) AllocSpace κ°μ²΄, 9(3MB) LOS κ°μ²΄, 40% μ¬μ , 12MB/21MB, μΌμ μ€μ§ 764us μ΄ 105.326ms
````
μ±.js
/**
* Sample React Native App
* https://github.com/facebook/react-native
* <strong i="7">@flow</strong>
*/
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View
} from 'react-native';
import OneSignal from 'react-native-onesignal';
const instructions = Platform.select({
ios: 'Press Cmd+R to reload...,\n' +
'Cmd+D or shake for dev menu',
android: 'Double tap R on your keyboard to reload,\n' +
'Shake or press menu button for dev menu',
});
type Props = {};
export default class App extends Component<Props> {
componentWillMount() {
OneSignal.init("1c25f475-8b98-487d-8358-b3934f9bff64");
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
}
componentWillUnmount() {
OneSignal.removeEventListener('received', this.onReceived);
OneSignal.removeEventListener('opened', this.onOpened);
}
onIds=(deviceId)=> {
console.log('Device info: ', deviceId);
}
onReceived(notification) {
console.log("Notification received: ", notification);
}
onOpened(openResult) {
console.log('Message: ', openResult.notification.payload.body);
console.log('Data: ', openResult.notification.payload.additionalData);
console.log('isActive: ', openResult.notification.isAppInFocus);
console.log('openResult: ', openResult);
}
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit App.js
</Text>
<Text style={styles.instructions}>
{instructions}
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
build.gradle
````
νλ¬κ·ΈμΈ μ μ©: "com.android.application"
com.android.build.OutputFile κ°μ Έμ€κΈ°
/**
react-native bundle
λ₯Ό νΈμΆν©λλ€.apply from: "../../node_modules/react-native/react.gradle"
λΌμΈ.project.ext.react = [
νλͺ© νμΌ: "index.js"
]
μ μ©: "../../node_modules/react-native/react.gradle"
/**
/**
μλλ‘μ΄λ {
compileSdkλ²μ 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "app.myapp"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
μ’
μμ± {
νλ‘μ νΈ μ»΄νμΌ(':react-native-onesignal')
μ»΄νμΌ fileTree(dir: "libs", ν¬ν¨: ["*.jar"])
". com.android μ»΄νμΌ μ§μ : APPCOMPAT-V7μ : 23.4.0λ₯Ό"
compile "com.facebook. react:react-native :+" // node_modulesμμ
}
// BUCKμΌλ‘ μ ν리μΌμ΄μ
μ μ€νν μ μλλ‘ ν λ² μ€νν©λλ€.
// BUCKκ° μ¬μ©ν λͺ¨λ μ»΄νμΌ μ’
μμ±μ libs ν΄λμ λ£μ΅λλ€.
μμ
copyDownloadableDepsToLibs(μ ν: 볡μ¬) {
ꡬμ±.μ»΄νμΌμμ
'libs'λ‘
}
````
그건 κ·Έλ κ³ , κΈ°μ‘΄ νλ‘μ νΈμμ μλνκ² λ§λλ κ²μ΄ λΆκ°λ₯νκΈ° λλ¬Έμ μλ‘μ΄ νλ‘μ νΈμ λ³νλ₯Ό νμν©λλ€.
μ΄ λ¬Έμ λ κ²ͺκ³ μλ μ¬λμ΄λΌλ©΄ μΌλ°μ μΌλ‘ μ±μ νΉμ νμ μ€ν λλ¬Έμ λλ€. μΌλ°μ μΌλ‘ μμμ μΈκΈν @urbancvekκ³Ό κ°μ΄ SDKμ κΈ°λ³Έ μ΄κΈ°νλ₯Ό μ¬μ©νμ¬ μμ ν μ μμ΅λλ€. SDKλ JSλ₯Ό μ¬μ©νμ§ μκ³ κΈ°λ³Έ μ΄κΈ°νλ₯Ό κ³μ μ§μνλ―λ‘ 3.1.4λ‘ λμκ° νμκ° μμ΅λλ€.
@cesarve77 @aspidvip λ μ€ λꡬ λΌλ MainApplication.java
λ₯Ό κ²μν μ μμ΅λκΉ?
μ, νμ§λ§ One μ νΈμ μ΅μνμ§ μμΌλ©° λ¬Έμλ₯Ό μ°Ύμ μ μμ΅λλ€.
2018-06-09 12:03 GMT+10:00 λΈλλ ν€μΈ μλ¦Ό @github.com :
@urbancvek https://github.com/urbancvek SDKλ μ¬μ ν
λ€μ΄ν°λΈ μ΄κΈ°ν(JSλ₯Ό μ¬μ©νμ§ μκ³ )λ₯Ό μ§μνλ―λ‘ κ° νμκ° μμ΅λλ€.
3.1.4λ‘ λμκ°λλ€.β
λΉμ μ΄ λκΈμ λ¬μκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-395931945 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/ADyXp8VcHWtSuGuhqu6GAmhuwEAs28yJks5t6y0MgaJpZM4UFgCX
.
λμ€μ ν κ²μ.
2018-06-12 11:19 GMT+10:00 λΈλλ ν€μΈ μλ¦Ό @github.com :
@cesarve77 https://github.com/cesarve77 @aspidvip
https://github.com/aspidvip λ μ€ νλκ°
λ©μΈμ ν리μΌμ΄μ .μλ°?β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-396435196 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/ADyXp85jPYJ5TPNv7xwQt_3CoZ-rNvsuks5t7xcSgaJpZM4UFgCX
.
μλ‘μ΄ readmeμμ μλ‘μ΄ μ§μΉ¨μ μ
λ°μ΄νΈνκ³ μ¬μ©νλ €κ³ νμ΅λλ€. λͺ λ²μ μλ λμ λλ
λ§μΉ¨λ΄ "react-native-onesignal": "3.0.7",
λ‘ λ€μ μ ννκΈ°λ‘ κ²°μ νκ³ λͺ¨λ κ²μ΄ μ΄μ κ³Ό κ°μ΄ μλν©λλ€.
λλ 3.2.4, 3.2.3 ...μ ν μ€νΈνκ³ λ¬Έμ κ° λ°μν λλ§λ€. κ·Έλμ λ€λ₯Έ νλ‘μ νΈ μ€ νλμ λ²μ μ μ ννμ΅λλ€.
λλ κΈ°μ‘΄μ ꡬν (κΈ°λ³Έ μΈ‘)κ° λ€μ μμνλ €λ©΄ https://github.com/geektimecoil/react-native-onesignal/blob/732491fece1fa92946ca6dacf173af28a2b2e618/README.mdμ λ΄κ° μ ν OneSignal.configure()
μ, λ΄ μλ° μ€ν¬λ¦½νΈ μ½λ λ΄ μ¬μ©μκ° μ±μ λ‘κ·ΈμΈνλ©΄ λ΄ mobx μ€ν μ΄μ μλ κ²½μ°μ
λλ€.
3.2.3μ λ¬Έμ : Unable to initialize the OneSignal SDK because activity is null true or oneSignalInitDonefalse
3.2.4μ λ¬Έμ : You must initialize OneSignal before getting tags! Moving this tag operation to a pending queue.
@nicovak μ react-native-navigation
μ κ°μ μΌλΆ μ’
μμ±μ μ¬μ©νκ³ μμμ μλ―Έν©λλ€. μ΄λ SDKμ μλμΌλ‘ μ λ¬λλ μ΄κΈ° νλμ΄ nullμ΄ λλλ‘ νλ κ²μ
λλ€.
μ°λ¦¬λ μ΄μ λν μ루μ μ κ°λ° μ€μ΄λ©°, κ·Έ λμ μ΄ νΉμ λ¬Έμ κ° λ°μνλ κ²½μ° 3.0.7λ‘ λ€μ΄κ·Έλ μ΄λνλ κ²μ΄ μ’μ΅λλ€.
Nightsd01 μ λ΄κ° μ¬μ©νκ³ react-native-router-flux
μ μμ‘΄νλ react-navigation
μΌλΆ κ²μ ν, λλ λ§μΉ¨λ΄ μμλλ‘ μμ
μ μ§ν.
λ΄ App.js(index.jsμ ν¬ν¨)μμ μ΄λ²€νΈ 리μ€λλ₯Ό μ μΈνλλ° μ΄ λ¦¬μ€λλ λ΄ μ€ν μ΄λ₯Ό μνλ κ°μΌλ‘ μ
λ°μ΄νΈν©λλ€. νμν λ μ½κ² ν¨μλ₯Ό νΈμΆν μ μμ΅λλ€. μ΄λ²€νΈ 리μ€λκ° λ΄ μμ μμ μ μΈλκΈ° μ μ.
λκ΅°κ°κ° κ°μ κ²½μ°λ₯Ό κ°μ§κ³ μλ€λ©΄ λλ μ½λμ μλ₯Ό λ£μ΅λλ€.
λν μ±μ΄ λ«ν λ μ½κ°μ λ¬Έμ κ° μμμ΅λλ€. opened
μ΄λ²€νΈλ₯Ό λ°μ§ λͺ»νμ΅λλ€. μ±μ΄ λ°±κ·ΈλΌμ΄λμ μλ κ²½μ°μλ§ μλνκ³ μμ μ½λκ° λͺ¨λ μ λλ‘ μλν©λλ€.
λ΄ App.jsμμ
import OneSignal from "react-native-onesignal";
OneSignal.configure({});
OneSignal.addEventListener("opened", openResult => {
AppStore.handleOpenIfAppClosed(openResult);
});
OneSignal.addEventListener("ids", device => {
AppStore.handleUserId(device);
});
<strong i="14">@observer</strong>
export default class App extends Component {
λ΄ κ°κ²μμ
handleOpenIfAppClosed(openResult) {
this.pendingNotificationRequest = openResult;
}
handleUserId(device) {
this.userId = device.userId;
}
@nicovak μ£Όμ λ¬Έμ (νλμ΄ nullμ)λ₯Ό μ΄λ»κ² ν΄κ²°νμ΅λκΉ?
λν opened
λ¬Έμ λ‘... react-native-onesignal
μ μ΅μ λ²μ μ κ³μ μ¬μ©νκ³ μμ΅λκΉ? μ΄κ²μ μΌλ§ μ μ μμ λ λ¬Έμ μ
λλ€.
@Nightsd01 μ λ λ§μ§λ§ λ²μ (3.0.7)μ μ¬μ©νμ§ μκ³ μμ΅λλ€.
λ΄κ° λ§ν κ²μ²λΌ:
3.2.3μ λ¬Έμ : νλμ΄ null true λλ oneSignalInitDonefalseμ΄κΈ° λλ¬Έμ OneSignal SDKλ₯Ό μ΄κΈ°νν μ μμ΅λλ€.
3.2.4 λ¬Έμ : νκ·Έλ₯Ό κ°μ Έμ€κΈ° μ μ OneSignalμ μ΄κΈ°νν΄μΌ ν©λλ€! μ΄ νκ·Έ μμ μ 보λ₯ μ€μΈ λκΈ°μ΄λ‘ μ΄λν©λλ€.
@nikovak 3.2.4μμ ν΄λΉ κ²½κ³ λ₯Ό 무μν μ μμ΅λλ€. κ·Έκ²μ κ·Έκ²μ΄ λ§νλ κ²μ μλ―Έν©λλ€. μ΄κΈ°νκ° μλ£λκΈ° μ μ μ±μ΄ μ΄λ»κ²λ getTags()
λ₯Ό νΈμΆνκ³ μμ΅λλ€. κ·Έλ¬λ μ¬μ ν μ μλνκΈ° λλ¬Έμ κ²½κ³ μΌ λΏμ
λλ€.
κ·Έκ²μ΄ 3.2.4μμ κ²ͺκ³ μλ _only_ λ¬Έμ λΌλ©΄ 3.0.7μ μλ λ§μ λ¬Έμ λ₯Ό μμ νκΈ° λλ¬Έμ 3.2.4λ‘ λ€μ μ λ°μ΄νΈνλ κ²μ΄ μ’μ΅λλ€.
@Nightsd01 μκ² μ΅λλ€ κ°μ¬ν©λλ€ λ΄μΌ μ€μ μ€μ μΌλ‘ ν΄λ΄μΌκ² λ€μ π
@Nightsd01 λ€μ 3.2.4λ‘ μ
λ°μ΄νΈλ₯Ό μλνμ§λ§ μλνμ§ μμ΅λλ€. λ€μ΄ν°λΈ μ΄κΈ°νμ μλ°μ€ν¬λ¦½νΈ μ΄κΈ°νλ₯Ό μλνμ΅λλ€. componentWillMount
μ±κ³Ό μΈλΆμ μ½λλ₯Ό λ£μμ§λ§ μ무 κ²λ μλνμ§ μμμ΅λλ€.
μΆ©λΆν μκ°μ ν μ νμ΅λλ€. μ£μ‘ν©λλ€. λ€μ νλ‘μ νΈμμ ^3.2.4λ₯Ό μλν΄ λ³΄κ² μ΅λλ€.
@aspidvip @nicovak μ΄ λ¬Έμ μ μμΈμ νμ νμ¬ μ PRμμ ν΄κ²°νμ΅λλ€. μ€λμ΄λ λ΄μΌ 릴리μ€μ ν¬ν¨λμ΄μΌ ν©λλ€.
@Nightsd01 μ λ§ κ°μ¬ν©λλ€. μ¬μ© κ°λ₯ν κ²½μ° λ€μ μ£Ό μμμΌμ μ κ·Έλ μ΄λνκ³ ν μ€νΈνκ² μ΅λλ€.
μλ‘μ΄ μ λ°μ΄νΈ(3.2.5)κ° μΆμλμμ΅λλ€! λ€λ₯Έ μ¬λμ΄ λΉμ·ν λ¬Έμ λ₯Ό κ²ͺλλ€λ©΄ μ¬κΈ°μ κ²μν΄ μ£Όμλ©΄ κΈ°κΊΌμ΄ μ‘°μ¬ν΄ λλ¦¬κ² μ΅λλ€.
λ°μ λ€μ΄ν°λΈμ 0.56
λ²μ μ λ€μ λ¬Έμ κ° μμ΅λλ€.
27
μμ΄μΌ ν©λκΉ? λ¬Έμμλ 26
κ° μλν΄μΌ νλ€κ³ λμ μμ΅λλ€. λ§μ΅λκΉ?
buildToolsVersion = "26.0.3"
minSdkVersion = 16
compileSdkVersion = 26
targetSdkVersion = 26
supportLibVersion = "26.1.0"
07-31 15:01:50.077 7068-7224/com.*************** I/art: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
at void java.lang.Thread.run() (Thread.java:776)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com..***************-2/base.apk"],nativeLibraryDirectories=[/data/app/com..***************-2/lib/arm, /data/app/com..***************-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib, /product/lib]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
at void java.lang.Thread.run() (Thread.java:776)
κ°μ₯ μ μ©ν λκΈ
react-native-onesignal:3.1.4
μ¬μ©νμ¬ ν΄κ²°νμ΅λλ€. λ€μμ μ¬μ©νμ¬ μ΄κΈ°νν©λλ€.κ·Έλ¦¬κ³ κ·Έκ² λ€μΌ. react-native-navigationμ μ¬μ©νλ κ²½μ° JS μΈ‘μμ μννλ κ²λ³΄λ€ ν¨μ¬ κ°λ¨ν©λλ€.