日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

react native android6+拍照闪退或重启的解决方案

發布時間:2025/3/11 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 react native android6+拍照闪退或重启的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

前言

android 6+權限使用的時候需要動態申請,那么在使用rn的時候要怎么處理拍照權限問題呢?本文提供的是一攬子rn操作相冊、拍照的解決方案,請看正文的提高班部分。

?

解決步驟

1、AndroidManifest.xml設置拍照權限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />

2、配置build.gradle:

設置defaultConfig里面的targetSdkVersion>=23.

3、在需要使用的地方或者程序啟動之后的主頁面的構造中申請相機權限,代碼如下:

async requestCameraPermission() {if (Platform.OS == 'ios') return true;//申請相機權限try {const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA, {title: '申請攝像頭權限',message: '一個很牛逼的應用想借用你的攝像頭'});if (granted === PermissionsAndroid.RESULTS.GRANTED) {console.log('現在你獲得攝像頭權限了');return true;} else {console.log('用戶并不屌你');return false;}} catch (err) {console.warn(err);return false;} }

拍照之前調用上面的方法:

this.requestCameraPermission(); //申請相機權限

?

提高班

多圖選擇、圖片裁剪(支持ad/ios圖片個數控制)推薦使用react-native-syan-image-picker,使用教程查看《react-native多圖選擇、圖片裁剪(支持ad/ios圖片個數控制)》。

小技巧:react-native-syan-image-picker 版本V0.0.5 安卓6+ 拍照問題有點問題,我已經pull request,作者已經合并,稍后測試問題之后,即可發布,如果著急使用貼出解決代碼。

1.修改build.gradle如圖:

2、修改RNSyanImagePickerModule.java更新2.1.7配置,代碼如下:

.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、圖片.ofImage()、視頻.ofVideo()、音頻.ofAudio() .maxSelectNum(imageCount)// 最大圖片選擇數量 int .minSelectNum(1)// 最小選擇數量 int .imageSpanCount(4)// 每行顯示個數 int .selectionMode(modeValue)// 多選 or 單選 PictureConfig.MULTIPLE or PictureConfig.SINGLE .previewImage(true)// 是否可預覽圖片 true or false .previewVideo(false)// 是否可預覽視頻 true or false .enablePreviewAudio(false) // 是否可播放音頻 true or false .isCamera(isCamera)// 是否顯示拍照按鈕 true or false .imageFormat(PictureMimeType.PNG)// 拍照保存圖片格式后綴,默認jpeg .isZoomAnim(true)// 圖片列表點擊 縮放效果 默認true .sizeMultiplier(0.5f)// glide 加載圖片大小 0~1之間 如設置 .glideOverride()無效 .enableCrop(isCrop)// 是否裁剪 true or false .compress(true)// 是否壓縮 true or false .glideOverride(160, 160)// int glide 加載寬高,越小圖片列表越流暢,但會影響列表圖片瀏覽的清晰度 .withAspectRatio(CropW, CropH)// int 裁剪比例 如16:9 3:2 3:4 1:1 可自定義 .hideBottomControls(isCrop)// 是否顯示uCrop工具欄,默認不顯示 true or false .isGif(isGif)// 是否顯示gif圖片 true or false .freeStyleCropEnabled(true)// 裁剪框是否可拖拽 true or false .circleDimmedLayer(showCropCircle)// 是否圓形裁剪 true or false .showCropFrame(showCropFrame)// 是否顯示裁剪矩形邊框 圓形裁剪時建議設為false true or false .showCropGrid(showCropGrid)// 是否顯示裁剪矩形網格 圓形裁剪時建議設為false true or false .openClickSound(false)// 是否開啟點擊聲音 true or false .cropCompressQuality(90)// 裁剪壓縮質量 默認90 int .minimumCompressSize(100)// 小于100kb的圖片不壓縮 .synOrAsy(true)//同步true或異步false 壓縮 默認同步 .rotateEnabled(true) // 裁剪是否可旋轉圖片 true or false .scaleEnabled(true)// 裁剪是否可放大縮小圖片 true or false .videoQuality(0)// 視頻錄制質量 0 or 1 int .videoMaxSecond(15)// 顯示多少秒以內的視頻or音頻也可適用 int .videoMinSecond(10)// 顯示多少秒以內的視頻or音頻也可適用 int .recordVideoSecond(60)//視頻秒數錄制 默認60s int .forResult(PictureConfig.CHOOSE_REQUEST);//結果回調onActivityResult code

效果如圖:

? ? ??

?

總結

以上是生活随笔為你收集整理的react native android6+拍照闪退或重启的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。