是否有api調用Activity
類的方法?我需要在我的應用程序上撥打finish()
,但無法在文檔中找到任何相關內容。來自Activity類的調用方法(React Native Android)
更具體地說,我想要finish()
MainActivity
從我的index.android.jsx,當一個特定TouchableHighlight
被按下時。
[更新]
現在我是從我的NativeModule暴露finish()
方法,但也許有更好的方法來做到這一點。
是否有api調用Activity
類的方法?我需要在我的應用程序上撥打finish()
,但無法在文檔中找到任何相關內容。來自Activity類的調用方法(React Native Android)
更具體地說,我想要finish()
MainActivity
從我的index.android.jsx,當一個特定TouchableHighlight
被按下時。
[更新]
現在我是從我的NativeModule暴露finish()
方法,但也許有更好的方法來做到這一點。
我沒有看到一個內置的方式做這一點,並使用你的方法NativeModule
是我用爲好。
但是,如果你打電話setCurrentActivity
構建ReactInstanceManager
時,那麼你可以調用從模塊getCurrentActivity
,而不是將其穿過的ReactPackage
和ReactModule
建設者。
MyReactModule.java
public class MyReactModule extends ReactContextBaseJavaModule {
public MyReactModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return getClass().getSimpleName();
}
@ReactMethod
public void finish() {
Activity activity = getCurrentActivity();
if (activity != null) {
activity.finish();
}
}
}
MyReactPackage.java
公共類MyReactPackage實現ReactPackage {
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new MyReactModule(reactContext));
return modules;
}
}
ReactInstanceManager設置
mReactInstanceManager = ReactInstanceManager.builder()
.addPackage(new MyReactPackage())
.setCurrentActivity(this)
// other settings
.build();
嘿,謝謝你,@mpkuth。不幸的是(幸運的是),我不再使用React Native,但我相信你的答案對其他人有用。 – felipebueno
我必須爲完成方法 –
hello @mpkuth使用不同的名稱,您能否幫助我找到一個想法我該如何做相反的事情,我的意思是,我想從本機java代碼打開反應原生組件 –
您可以在活動類中調用finish()以銷燬活動。你在問什麼? –
不,我想從我的index.android.jsx上的React Native組件調用它。 – felipebueno
您是否發現此解決方案爲@buenoFelipe我有同樣的問題 –