【问题标题】:Check if developer mode is enabled in a native Android module检查是否在原生 Android 模块中启用了开发者模式
【发布时间】:2018-06-20 12:52:04
【问题描述】:

我正在为我的 React Native 应用程序开发原生 Android 模块。我想检查是否启用了开发者模式,并相应地打开或关闭WebView 中的 Web 内容调试。

这是我尝试过的:

boolean devSupportIsEnabled;
ReactActivity reactActivity = (ReactActivity) getModule().getActivity();
if (reactActivity != null) {
    devSupportIsEnabled = reactActivity
        .getReactInstanceManager()
        .getDevSupportManager()
        .getDevSupportEnabled();
} else {
    devSupportIsEnabled = false;
}

很遗憾,这无法编译,因为 ReactActivity.getReactInstanceManager()protected

还有ReactBuildConfig.DEBUG 属性,但出于某种原因,它始终是false

还有其他方法吗?

【问题讨论】:

    标签: react-native


    【解决方案1】:

    如果继承自ReactInstancePackage,则包可以获取ReactInstanceManager的实例:

    public class MyPackage extends ReactInstancePackage {
    
        @Override
        public List<NativeModule> createNativeModules(ReactApplicationContext reactContext, ReactInstanceManager reactInstanceManager) {
            // store the provided instance of ReactInstanceManager
            this.reactInstanceManager = reactInstanceManager;
    
            // ...
        }
        //...
    }
    

    这个实例以后可以用来检查是否开启了开发模式:

    boolean devModeIsEnabled = this.reactInstanceManager
        .getDevSupportManager()
        .getDevSupportEnabled();
    

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 2022-01-09
      • 2017-02-03
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2021-10-07
      • 2020-01-16
      相关资源
      最近更新 更多