react native中ios判断相机是否授权,没授权打开手机设置

react native中ios判断相机是否授权,没授权打开手机设置

CameraPermissionManager.h

复制代码
#import <React/RCTBridgeModule.h>

@interface CameraPermissionManager : NSObject <RCTBridgeModule>

@end

CameraPermissionManager.m

复制代码
#import "CameraPermissionManager.h"
#import <AVFoundation/AVCaptureDevice.h>

@implementation CameraPermissionManager

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(checkCameraStatus:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
{
    AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    
    if (status == AVAuthorizationStatusAuthorized) {
        resolve(@"authorized");
    } else if (status == AVAuthorizationStatusNotDetermined) {
        resolve(@"undetermined");
    } else if(status == AVAuthorizationStatusDenied || status == AVAuthorizationStatusRestricted){
        resolve(@"rejected");
    } else {
        resolve(@"denied");
    }
}

@end

cameraPermiss.js

复制代码
import {NativeModules} from 'react-native';

export default NativeModules.CameraPermissionManager;

使用

复制代码
import cameraPermiss from '../cameraPermiss.js'

//判断用户是否相机授权
  const cameraPermiss = async () => {
    if (Platform.OS == 'android') {
      const response = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA);
      console.log("[相机授权]", response)
      if (response != 'granted') {
        //用户拒绝
        Linking.openSettings();
      } 
    } else {
      const response = await cameraPermiss.checkCameraStatus();
      console.log("[相机授权]", response)
      if (response == 'rejected') {
        //用户拒绝
        Linking.openSettings();
      } 
    }

  }
相关推荐
张较瘦_17 小时前
[论文阅读] 人工智能 + 软件工程 | 大模型破局跨平台测试!LLMRR让iOS/安卓/鸿蒙脚本无缝迁移
论文阅读·人工智能·ios
文弱_书生1 天前
关于对鱼眼相机图片进行畸变校正的两种思路
数码相机·鱼眼畸变校正·传统几何方法·深度学习方法
疾风铸境1 天前
qt+halcon开发相机拍照软件步骤
数码相机·qt·halcon·拍照
m0_641031051 天前
在选择iOS代签服务前,你必须了解的三大安全风险
ios
开开心心loky1 天前
[iOS] push 和 present Controller 的区别
ui·ios·objective-c·cocoa
白玉cfc1 天前
【iOS】push,pop和present,dismiss
macos·ios·cocoa
冰冷的bin1 天前
【React Native】点赞特效动画组件FlowLikeView
react native·react.js·typescript
低调小一1 天前
iOS 开发入门指南-HelloWorld
ios
2501_915918411 天前
iOS 开发全流程实战 基于 uni-app 的 iOS 应用开发、打包、测试与上架流程详解
android·ios·小程序·https·uni-app·iphone·webview
用户870568130452 天前
iOS 异步渲染:从 CALayer 切入的实现与优化
ios