#java #android #react-native #kotlin #react-native-android
Вопрос:
Я хочу получить данные о результатах из моей пользовательской активности в моем собственном модуле React, но в настоящее время моя onActivityResult
функция никогда не получает эти данные.
В настоящее время мой модуль react выглядит следующим образом:
class VideoEditorModule(reactContext: ReactApplicationContext)
: ReactContextBaseJavaModule(reactContext), ActivityEventListener {
...
override fun onActivityResult(
activity: Activity,
requestCode: Int,
resultCode: Int,
data: Intent
) {
val data = data.data
Log.d("ReactModule", "onActivityResult " data.toString())
}
override fun onNewIntent(intent: Intent?) {
val data = intent?.data
Log.d("ReactModule", "onNewIntent: " data.toString())
}
@ReactMethod
fun openNativeVideoEditor(videoURL: String, promise: Promise) {
reactApplicationContext.addActivityEventListener(this)
val currentActivity = currentActivity;
if (currentActivity == null) {
promise.reject("ERROR_ACTIVITY", "Activity doesn't exist");
return;
}
modulePromise = promise
val intent = Intent(currentActivity, VideoEditorActivity::class.java)
intent.putExtra("videoURL", videoURL)
try {
currentActivity.startActivityForResult(intent, RESULT_OK, null)
} catch (e: Exception) {
promise.reject("ERROR_ACTIVITY", e);
modulePromise = null;
}
}
}
Родная активность выглядит так:
class VideoEditorActivity: AppCompatActivity(), OnEditVideoListener {
...
override fun getResult(uri: Uri) {
Log.d("VideoEditorActivity", "getResult ${uri.path}")
val i = intent
i.putExtra("Resulted", uri.path)
setResult(Activity.RESULT_OK, i)
finish()
}
}
Модуль успешно открывает действие, действие работает, я могу редактировать свое видео, но когда я завершаю редактирование, мой getResult
журнал печатает новый URL-адрес для отредактированного видео, но похоже, что настройка результата ранее finish()
не работает. onActivityResult
в моем модуле ничего не регистрируется в Android Studio.
Большое спасибо за каждую помощь в этом.
Версия RN 0.64.1