如何让用户选中一个框以授予权限,而不是用户在 React-Native 中的警报上单击确定?
Posted
技术标签:
【中文标题】如何让用户选中一个框以授予权限,而不是用户在 React-Native 中的警报上单击确定?【英文标题】:How do I have a user check a box to grant permissions instead of the user clicking okay on an Alert in React-Native? 【发布时间】:2019-03-11 08:47:02 【问题描述】:ios 版本的应用需要两种不同的权限:麦克风和 BLE。目前,正在根据需要授予权限。但是,我想创建一个页面,允许用户单击复选框,以便他们在首次启动应用程序时授予权限。
通过包含以下代码的方法请求麦克风访问权限:
OVBluetoothManager.startDetectingNoise(NOISE_DETECT_INTERVAL);
其中 NOISE_DETECT_INTERVAL 为 3000。
通过包含以下代码的方法请求BLE:
OVBluetoothManager.attemptToTriggerLEPairing();
这是 OVBluetoothManager.m 文件中的两个方法:
RCT_EXPORT_METHOD(attemptToTriggerLEPairing)
[[someManager sharedInstance] getLED];
[[someManager sharedInstance] getBattery];
RCT_EXPORT_METHOD(startDetectingNoise:(NSInteger)timeInterval)
dispatch_async(dispatch_get_main_queue(), ^
[self.noiseDetector startDetectingNoiseWithTimeIntervalInMs:timeInterval];
);
在这两种情况下,警报都会提示用户授予权限。假设用户授予权限,一切照常进行。
在这个post 中建议使用以下代码:
Permissions.request('photo').then(response =>
if (response === 'authorized')
iPhotoPermission = true;
Permissions.request('contact').then(response =>
if (response === 'authorized')
iPhotoPermission = true;
);
);
可以一次授予多个权限。不使用 react-native-permissions 是否可以做到这一点?
【问题讨论】:
在 iOS 中,您必须为您请求的每个权限显示警报。这与您使用的依赖关系无关,它与 iOS 本身有关。当您在 iOS 上的本机代码中执行权限请求时,它会触发警报。 【参考方案1】:试试这个库的警报复选框:
https://www.npmjs.com/package/react-native-awesome-alert
【讨论】:
以上是关于如何让用户选中一个框以授予权限,而不是用户在 React-Native 中的警报上单击确定?的主要内容,如果未能解决你的问题,请参考以下文章
ReactNative:如何检查用户是不是已授予 gps 权限
如何知道用户之前是不是已经授予 Facebook SDK 权限
如何检查用户是不是已在 React Native Android 中授予相机权限?