在 React Native 中以编程方式访问主页按钮
Programatic access to Home button in React Native
我正在尝试使用项目中的另一个按钮以编程方式调用“主页”按钮。应用程序编译正常,但是当我点击应该调用 Home 的按钮时,我收到以下错误:
Attempt to invoke virtual method 'void
android.content.Context.startActivity(android.content.Intent)' on a
null object reference
这是我的代码(只是要点):
import android.app.Activity;
import android.content.Intent;
import android.content.Context;
public class ClassName extends ReactContextBaseJavaModule {
private Context context;
@ReactMethod
public void minApp() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
}
我做错了什么?
解决方案:
由于我的应用程序使用 React Native,java 文件中桥接方法的代码应如下所示:
import android.content.Intent;
import android.content.Context;
public class ClassName extends ReactContextBaseJavaModule {
@ReactMethod
public void minApp() {
Context context = getReactApplicationContext();
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
}
使用这个我们可以在任何我们想要的地方分配 Home button
函数 ;)
您似乎还没有初始化 context
。确保在调用 minApp()
之前启动它
public void openLauncher(Context context) {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
您可以使用此功能直接打开启动器。
我正在尝试使用项目中的另一个按钮以编程方式调用“主页”按钮。应用程序编译正常,但是当我点击应该调用 Home 的按钮时,我收到以下错误:
Attempt to invoke virtual method 'void android.content.Context.startActivity(android.content.Intent)' on a null object reference
这是我的代码(只是要点):
import android.app.Activity;
import android.content.Intent;
import android.content.Context;
public class ClassName extends ReactContextBaseJavaModule {
private Context context;
@ReactMethod
public void minApp() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
}
我做错了什么?
解决方案:
由于我的应用程序使用 React Native,java 文件中桥接方法的代码应如下所示:
import android.content.Intent;
import android.content.Context;
public class ClassName extends ReactContextBaseJavaModule {
@ReactMethod
public void minApp() {
Context context = getReactApplicationContext();
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
}
使用这个我们可以在任何我们想要的地方分配 Home button
函数 ;)
您似乎还没有初始化 context
。确保在调用 minApp()
public void openLauncher(Context context) {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
}
您可以使用此功能直接打开启动器。