如何在Android設備搖一搖彈框中增加新的選項並實現點擊功能
打開Android項目的Application,找到ReactNativeHost,重寫ReactNativeHost的createReactInstanceManager方法,具體實現如下:
@Override
protected ReactInstanceManager createReactInstanceManager() {
ReactMarker.logMarker(ReactMarkerConstants.BUILD_REACT_INSTANCE_MANAGER_START);
ReactInstanceManagerBuilder builder = ReactInstanceManager.builder()
.setApplication(getApplication())
.setJSMainModulePath(getJSMainModuleName())
.setUseDeveloperSupport(getUseDeveloperSupport())
.setRedBoxHandler(getRedBoxHandler())
.setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
.setUIImplementationProvider(getUIImplementationProvider())
.setJSIModulesPackage(getJSIModulePackage())
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE);
for (ReactPackage reactPackage : getPackages()) {
builder.addPackage(reactPackage);
}
String jsBundleFile = getJSBundleFile();
if (jsBundleFile != null) {
builder.setJSBundleFile(jsBundleFile);
} else {
builder.setBundleAssetName(Assertions.assertNotNull(getBundleAssetName()));
}
ReactInstanceManager reactInstanceManager = builder.build();
reactInstanceManager.getDevSupportManager().setDevSupportEnabled(true);
reactInstanceManager.getDevSupportManager().addCustomDevOption("新功能", new DevOptionHandler() {
@Override
public void onOptionSelected() {
Toast.makeText(MainApplication.this, "我是新功能", Toast.LENGTH_SHORT).show();
}
});
ReactMarker.logMarker(ReactMarkerConstants.BUILD_REACT_INSTANCE_MANAGER_END);
return reactInstanceManager;
}
};