Как создать расширяемое приложение в React Native - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь сделать мое приложение модульным.Там будет основной расширяемый базовый модуль.В Android я планирую иметь подкаталог в папке assets, называемый plugins, куда будут загружаться расширения основного приложения в виде .apk s.

Как создать такое модульное приложение в React Native ?

У меня есть работающая реализация в Android.В настоящее время мое приложение загружает внешние плагины, которые реализуют интерфейс:

public interface IDynamicModule {
  String getText();
}  

Я загружаю APK, используя DexClassLoader:

class ModuleLoader(val cacheDir: String) {

    fun load(dex: File, cls: String = "com.example.dynamicmodule.DynamicModule"): IDynamicModule {

        try {
            val classLoader = DexClassLoader(dex.absolutePath, cacheDir,
                    null, this.javaClass.classLoader)

            val moduleClass = classLoader.loadClass(cls)
            if (IDynamicModule::class.java.isAssignableFrom(moduleClass)) {
                return moduleClass.newInstance() as IDynamicModule
            }
        } catch (e: Exception) {
            Log.e("ModuleLoader", e.message, e)
        }

        return IDynamicModule { "Failed to load" }
    }    
}  

Спасибо всемзаранее.

...