@@ -13,12 +13,15 @@ JNIEnv* cacheEnvPointer=NULL;
13
13
14
14
extern " C"
15
15
JNIEXPORT void JNICALL
16
- Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_notifyNode (
16
+ Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_sendMessageToNodeChannel (
17
17
JNIEnv *env,
18
18
jobject /* this */ ,
19
+ jstring channelName,
19
20
jstring msg) {
21
+ const char * nativeChannelName = env->GetStringUTFChars (channelName, 0 );
20
22
const char * nativeMessage = env->GetStringUTFChars (msg, 0 );
21
- rn_bridge_notify (nativeMessage);
23
+ rn_bridge_notify (nativeChannelName, nativeMessage);
24
+ env->ReleaseStringUTFChars (channelName,nativeChannelName);
22
25
env->ReleaseStringUTFChars (msg,nativeMessage);
23
26
}
24
27
@@ -50,15 +53,17 @@ Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_getCurrentABIName(
50
53
51
54
#define APPNAME " RNBRIDGE"
52
55
53
- void rcv_message (char * msg) {
56
+ void rcv_message (const char * channel_name, const char * msg) {
54
57
JNIEnv *env=cacheEnvPointer;
55
58
if (!env) return ;
56
59
jclass cls2 = env->FindClass (" com/janeasystems/rn_nodejs_mobile/RNNodeJsMobileModule" ); // try to find the class
57
60
if (cls2 != nullptr ) {
58
- jmethodID m_sendMessage = env->GetStaticMethodID (cls2, " sendMessageBackToReact" , " (Ljava/lang/String;)V" ); // find method
61
+ jmethodID m_sendMessage = env->GetStaticMethodID (cls2, " sendMessageBackToReact" , " (Ljava/lang/String;Ljava/lang/String; )V" ); // find method
59
62
if (m_sendMessage != nullptr ) {
63
+ jstring java_channel_name=env->NewStringUTF (channel_name);
60
64
jstring java_msg=env->NewStringUTF (msg);
61
- env->CallStaticVoidMethod (cls2, m_sendMessage,java_msg); // call method
65
+ env->CallStaticVoidMethod (cls2, m_sendMessage, java_channel_name, java_msg); // call method
66
+ env->DeleteLocalRef (java_channel_name);
62
67
env->DeleteLocalRef (java_msg);
63
68
}
64
69
}
0 commit comments