一身转战三千里,一剑曾百万师。这篇文章主要讲述如何使用onRequestPermissionsResult处理React Native Android模块中的权限?相关的知识,希望能为你提供帮助。
我想在原生android模块中使用onRequestPermissionsResult
,可以将其导入React Native项目中。
权限处理需要在模块中进行-因此PermissionsAndroid或更改项目MainActivity均无效。对于类似的onActivityResult
,有一种方法可以将create and add a listener传递到ReactApplicationContext。
[onRequestPermissionsResult
有没有办法做到这一点?
【如何使用onRequestPermissionsResult处理React Native Android模块中的权限()】编辑:添加了本机模块代码以显示我要执行的操作:
public class NativeModule extends ReactContextBasejavaModule {
public NativeModule(ReactApplicationContext reactContext) {
super(reactContext);
...
}@ReactMethod
public void requestPermissions() {
getCurrentActivity().requestPermissions(...)
}// is it possible to hook into the requestPermissions callback with the result from within the module?
// public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { }...
}
答案没有充分记录,但是可以。
- 更新您的
NativeModule
以同时实现PermissionListener和覆盖onRequestPermissionsResult()方法。 - 将当前活动投射到PermissionAwareActivity,并通过requestPermissions()作为
this
参数调用其listener
方法。
public class NativeModule extends ReactContextBaseJavaModule implements PermissionListener {@ReactMethod
public void requestPermissions() {
PermissionAwareActivity activity = (PermissionAwareActivity) getCurrentActivity();
if (activity == null) {
// Handle null case
}activity.requestPermissions(..., this);
}@Override
public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
// Handle result
return true;
}
}
推荐阅读
- 在Android Textview中为不同的超链接使用不同的颜色
- 在RecyclerView-AndroidX中的项目之间添加不同的布局
- Android计时器更新文本视图(UI)
- 在Android Studio中添加延迟计时器
- 如何使用android延迟不扩展或实现Thread或Runnable
- 无法识别的选择器发送到AppDelegate中的实例
- android - 在给定的时间后只调用一次通知
- 如何插入带有镶木地板格式和SNAPPY压缩的蜂巢表()
- 如何制作Mac终端弹出/警报( AppleScript的?)