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();
      } 
    }

  }
相关推荐
无左无右3 小时前
已知相机到车的rt 4x4矩阵,求pitch和yaw角度
数码相机·线性代数·矩阵
hurrycry_小亦4 小时前
苹果WWDC 2026前瞻:Ferret-Pro端侧大模型即将亮相|小亦之闻|AI 编程三日速递!(5月26日~5月28日)
macos·ios·wwdc
UTF_87 小时前
一次NSMutableAttributedString误用的思考
ios·面试·github
木 东9 小时前
图像高亮处过曝,该如何解决
图像处理·数码相机·camera·isp
人月神话-Lee11 小时前
【图像处理】Core Image 与 GPU 渲染管线——让滤镜飞起来
图像处理·人工智能·ios·chatgpt·ai编程·swift·gpu
2601_9574188012 小时前
Android相机有线连接(PTP/MTP)协议栈实现与优化实践
数码相机
神仙别闹12 小时前
基于Object3D 实现光线追踪
数码相机·3d
夏天的峰没有风15 小时前
Typora+gitcode+picgo搭建免费图床
开发语言·ios·swift
库奇噜啦呼16 小时前
【iOS】源码学习-分类、扩展、关联对象
学习·ios·分类
wordbaby1 天前
React Native + RNOH:跨页面数据回传的最佳实践与避坑指南
前端·react native