android 如何从react原生文件(*.js)和Kotlin类(*.kt)访问ReactContextBaseJavaModule?

p8h8hvxi  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(211)

我是React Native的新手,正在开发一个使用Android SharedPreferences存储本地数据的应用。我目前将SharedPreferences设置为ReactContextBaseJavaModule,并且能够通过React Native文件中的@ReactMethod注解访问所有方法。
我需要访问SharedPreference的值,定义为ReactContextBaseJavaModule,在原生Android模块中。目前,我可以通过更新原生Android类(*.kt)中定义的常量来实现这一点。有没有更好的方法来做到这一点,即。能够从Android类访问ReactContextBaseJavaModule内部定义的方法,或者为SharedPreference访问创建 Package 器?
我尝试在多个平台上搜索解决方案,并找到了如何从React Native文件访问本机模块的解决方案。我无法找到双向访问ReactContextBaseJavaModule类的解决方案。
我面临的挑战:
1.无法为类示例从原生Android类传递ReactApplicationContext
1.无法从原生Android类访问使用@ReactMethod注解的方法。
1.在ReactContextBaseJavaModule中注入原生Android类示例。

62lalag4

62lalag41#

1.创建了一个原生android SharedPreferences类,公开了所有共享首选项相关的方法。
类MySharedPreferences构造函数(上下文:{/getters和setters/}
1.创建了一个ReactContextBaseJavaModule作为到React Native的桥梁,使用@ReactModule注解的暴露方法。在init{}方法中创建了Android原生SharedPreferences的示例。

class MySharedPreferencesModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
  private var mySharedPreferences: BeaconSharedPreferences

 init {
     mySharedPreferences = MySharedPreferences(context = reactContext)
 }}

1.现在,我可以通过Android类中的一个示例访问Android native SharedPreferences,在这个示例中,我需要访问prefs值,并通过React Native的桥访问/更新值。

相关问题