当前位置: 首页 > news >正文

网站界面友好西安网约车公司排行榜

网站界面友好,西安网约车公司排行榜,订单拆单在电商网站建设,shopxo开源商城今天主要做了一个demo,功能很简单,就是调用手机摄像头画面,并且可以通过按钮控制拍照以及将图片保存到手机相册的功能,接下来我将从创建项目开始一步一步完成这个demo,各位只需要复制粘贴即可 创建React Native项目 npx react-native init yx_rnDemo --version 0.70.6 // 这里… 今天主要做了一个demo,功能很简单,就是调用手机摄像头画面,并且可以通过按钮控制拍照以及将图片保存到手机相册的功能,接下来我将从创建项目开始一步一步完成这个demo,各位只需要复制粘贴即可 创建React Native项目 npx react-native init yx_rnDemo --version 0.70.6 // 这里我使用的RN版本为0.70.6,建议各位和我一样,因为RN贼恶心了,好多插件都会因为版本问题各种报错安装依赖 package.json所需依赖包 // react-native-vision-camera版本号就写我这个,不然也容易有问题,今天因为这个费了不少时间react-native-camera-roll/camera-roll: ^7.4.2, // 照片保存到相册所需的插件react-native-vision-camera: 2.15.4 // 调用摄像头画面和拍照所需插件安装命令如下 yarn add react-native-camera-roll/camera-roll yarn add react-native-vision-camera2.15.4安卓环境配置 找到android/app/src/mian/AndroidManifest.xml这个文件,在manifest这个标签内添加如下请求权限的代码 manifest...uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.CAMERA / // 相机权限uses-permission android:nameandroid.permission.RECORD_AUDIO / // 麦克风权限(单纯的拍照其实不用给)applicationandroid:requestLegacyExternalStoragetrue // 添加这个(用于确保你的应用在 Android 10 中仍然能够访问外部存储但如果你的应用目标是 Android 11 或更高版本你应该考虑调整应用以符合 Scoped Storage 的要求。).../application... /manifest苹果ios环境配置 找到ios/项目名/Info.plist这个文件,在plist标签内新增如下代码 pilst...(其他代码)keyNSCameraUsageDescription/keystring$(PRODUCT_NAME) needs access to your Camera./stringkeyNSMicrophoneUsageDescription/keystring$(PRODUCT_NAME) needs access to your Microphone./string...(其他代码) /plist接下来就是在单文件里面直接写代码了 找到根目录下的App.js(主入口文件),将一下代码直接粘贴进去即可 import { useCameraDevices, Camera } from react-native-vision-camera import * as React from react import { useRef, useEffect, useState } from react import { PermissionsAndroid, Text, View, Button, Alert, Platform } from react-native import { CameraRoll } from react-native-camera-roll/camera-rollexport default function CameraDemo (props) {const cameraRef useRef(null) // 创建一个 ref 来引用相机组件const [hasCameraPermission, setHasCameraPermission] useState(false) // 状态用于跟踪摄像头权限const [currentDevice, setCurrentDevice] useState(null) // 跟踪当前摄像头设备useEffect(async () {// 在组件加载时请求相机权限async function requestCameraPermission () {try {// 请求相机权限const granted await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA,{title: Camera Permission,message: App needs access to your camera.,buttonNeutral: Ask Me Later,buttonNegative: Cancel,buttonPositive: OK,},)if (granted PermissionsAndroid.RESULTS.GRANTED) {console.log(Camera permission granted)setHasCameraPermission(true) // 如果权限被授予设置相机权限状态为 true} else {console.log(Camera permission denied)setHasCameraPermission(false) // 如果权限被拒绝设置相机权限状态为 false}} catch (err) {console.warn(err)}}async function requestStoragePermission () {try {const granted await PermissionsAndroid.requestMultiple([PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,])if (granted[android.permission.WRITE_EXTERNAL_STORAGE] PermissionsAndroid.RESULTS.GRANTED granted[android.permission.READ_EXTERNAL_STORAGE] PermissionsAndroid.RESULTS.GRANTED) {console.log(Storage permissions granted)// 在此处执行您需要的操作比如保存照片到相册} else {console.log(Storage permissions denied)// 处理权限被拒绝的情况}} catch (err) {console.warn(err)}}await requestCameraPermission() // 调用函数以请求相机权限await requestStoragePermission() // 请求图库权限}, [])const devices useCameraDevices()// 设置默认摄像头(默认后置,如果想设置的哪个后面进来还是哪个的话可以自行再做处理)useEffect(() {if (devices.back) {setCurrentDevice(devices.back)}}, [devices])// 切换摄像头const toggleCamera () {setCurrentDevice(currentDevice devices.back ? devices.front : devices.back)}const saveToCameraRoll async (photo) {const path Platform.OS android ? file:// photo.path : photo.path// 使用 CameraRoll 保存图片到相册CameraRoll.saveToCameraRoll(path, photo).then(() {Alert.alert(Success, 图片到相册保存成功)}).catch((error) {Alert.alert(Error, 图片保存到相册失败)})}const takePhoto async () {if (cameraRef.current) {try {const photo await cameraRef.current.takePhoto()console.log(Photo taken:, photo)photo.id new Date().getTime().toString() // 添加一个唯一的 id 属性saveToCameraRoll(photo) // 将路径传递过去,为了将照片存入相册(默认不是存到相册里面)} catch (error) {console.error(Error taking photo:, error)}}}return (View style{{ flex: 1 }}{hasCameraPermission currentDevice (ViewCameraref{cameraRef} // 绑定refstyle{{ width: 200, height: 300 }}device{currentDevice} // 绑定设备isActive{true}photo{true} // 打开相机功能frameProcessorFps{auto}/Button title拍照 onPress{takePhoto} /Button title切换摄像头 onPress{toggleCamera} //View)}{!hasCameraPermission TextCamera permission not granted./Text}/View) }
http://www.tj-hxxt.cn/news/220229.html

相关文章:

  • 免费开源的建站系统不收费的网站
  • 北京商会网站建设建设网站小常识
  • 小说网站排名人气wordpress自定义侧边栏
  • 预约挂号php网站ftp急着后台密码忘记了百度短链接在线生成
  • 直接在原备案号下增加新网站建筑公司排名前100
  • 博客可以放自己做的网站培训网站推广
  • 高大上的网站欣赏惠州网站建设电话
  • 机械网站建设多少钱网站制作的大公司
  • 工商局网站实名认证怎么做深圳好看的公司网站
  • 无锡网站建设策划方案招标信息网
  • 中山网站软件灵川建设局网站
  • 网络公司开发网站高水平的郑州网站建设
  • 农村小学校园网站建设方案文字转码unicode
  • 网站开发费用税深圳工程招标网
  • 优秀app网站设计可以做cps合作的棋牌网站6
  • 网站域名年费多少钱网页版传奇怎么开
  • 百度的网站建设代码手机管理软件
  • html5网站开发案例注册公司流程和费用时间
  • 四川和城乡建设厅网站备案时的网站建设方案书
  • 想学网站建设选计算机应用技术还是计算机网络技术哪个专业啊建筑人才网邀约投递
  • 图片设计师网站作文网推荐
  • 南宁市优化网站公司用表格做网站
  • 广东网站开发禄劝网络推广外包
  • 阜阳企业做网站广东建设银行网站
  • 网站建设优化服务市场网站的用途
  • 有账号密码网站怎么建设呼伦贝尔网站建设公司
  • 图片网站收录网站原型设计流程
  • 西安哪家公司网站做的好网络运维的工作内容
  • 网站百度收录怎么做长春网站建设的公司
  • 网站建设价格标准渠道仿 手机 网站模板html源码下载