Skip to content

Commit 7c922f9

Browse files
committedAug 9, 2018
plugin: improved events channel
Add 'events' to the channel to allow user defined events. Allow user defined objects to be sent through the channel.
1 parent 187551a commit 7c922f9

File tree

13 files changed

+668
-313
lines changed

13 files changed

+668
-313
lines changed
 

‎android/src/main/cpp/native-lib.cpp

+10-5
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ JNIEnv* cacheEnvPointer=NULL;
1313

1414
extern "C"
1515
JNIEXPORT void JNICALL
16-
Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_notifyNode(
16+
Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_sendMessageToNodeChannel(
1717
JNIEnv *env,
1818
jobject /* this */,
19+
jstring channelName,
1920
jstring msg) {
21+
const char* nativeChannelName = env->GetStringUTFChars(channelName, 0);
2022
const char* nativeMessage = env->GetStringUTFChars(msg, 0);
21-
rn_bridge_notify(nativeMessage);
23+
rn_bridge_notify(nativeChannelName, nativeMessage);
24+
env->ReleaseStringUTFChars(channelName,nativeChannelName);
2225
env->ReleaseStringUTFChars(msg,nativeMessage);
2326
}
2427

@@ -50,15 +53,17 @@ Java_com_janeasystems_rn_1nodejs_1mobile_RNNodeJsMobileModule_getCurrentABIName(
5053

5154
#define APPNAME "RNBRIDGE"
5255

53-
void rcv_message(char* msg) {
56+
void rcv_message(const char* channel_name, const char* msg) {
5457
JNIEnv *env=cacheEnvPointer;
5558
if(!env) return;
5659
jclass cls2 = env->FindClass("com/janeasystems/rn_nodejs_mobile/RNNodeJsMobileModule"); // try to find the class
5760
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
5962
if(m_sendMessage != nullptr) {
63+
jstring java_channel_name=env->NewStringUTF(channel_name);
6064
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);
6267
env->DeleteLocalRef(java_msg);
6368
}
6469
}

0 commit comments

Comments
 (0)