我正在尝试构建react-native
需要将Activity
传递给某个方法的模块
private ReactApplicationContext reactContext;
...
@ReactMethod
public void sendVerificationCode(String phoneNumber)
{
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
reactContext.getCurrentActivity(), // Activity (for callback binding)
callback); // OnVerificationStateChangedCallbacks
}
我曾经reactContext.getCurrentActivity()
从中获取当前活动,但它告诉我getCurrentActivity()
不是公开的,无法从外部包访问
getCurrentActivity 不是公共的 'com.facebook.react.bridge.React 上下文'无法从外部包访问
如何获取当前活动?
完整代码 :
public class FirebasePhoneAuth extends ReactContextBaseJavaModule
{
private ReactApplicationContext reactContext;
private OnVerificationStateChanged callback;
public FirebasePhoneAuth(ReactApplicationContext reactContext)
{
super(reactContext);
this.reactContext = reactContext;
}
@Override
public String getName()
{
return "FirebasePhoneAuth";
}
@ReactMethod
public void sendVerificationCode(String phoneNumber)
{
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
reactContext.getCurrentActivity(), // Activity (for callback binding)
callback); // OnVerificationStateChangedCallbacks
}
}
类ReactContextBaseJavaModule
已经有方法getCurrentActivity()
法典:
public class FirebasePhoneAuth extends ReactContextBaseJavaModule
{
...
@ReactMethod
public void sendVerificationCode(String phoneNumber)
{
Activity activity = getCurrentActivity();
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber,
60,
TimeUnit.SECONDS,
activity,
callback);
}
}