Skip to content

Commit 6961193

Browse files
ChenlingasMxhy
authored andcommitted
fix(ImagePicker): 修复android保存图片报错
1 parent 11317b3 commit 6961193

File tree

5 files changed

+20
-18
lines changed

5 files changed

+20
-18
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ jobs:
7070
env:
7171
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
7272

73+
- name: 📦 @uiw/react-native-image-picker publish to NPM
74+
run: npm publish
75+
working-directory: packages/react-native-image-picker
76+
continue-on-error: true
77+
env:
78+
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
79+
7380
- name: Deploy
7481
uses: peaceiris/actions-gh-pages@v3
7582
with:

example/examples/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
android:allowBackup="false"
1515
android:theme="@style/AppTheme"
1616
android:requestLegacyExternalStorage="true"
17+
android:usesCleartextTraffic="true"
1718
>
1819
<activity
1920
android:name=".MainActivity"

example/examples/src/routes/ImagePicker/index.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,21 @@ export default function MenuDropdownView(props: ImagePickerProps) {
2828
</Card>
2929
<Card title="文件预览">
3030
<ImagePicker
31-
value={[
32-
'https://iknow-pic.cdn.bcebos.com/810a19d8bc3eb135828572d2ab1ea8d3fd1f441d',
33-
'https://iknow-pic.cdn.bcebos.com/810a19d8bc3eb135828572d2ab1ea8d3fd1f441d',
34-
]}
31+
value={['https://wx3.sinaimg.cn/mw690/4718260ely1gt2cg7t5udj23dw1wkhdu.jpg', 'https://wx3.sinaimg.cn/mw690/4718260ely1gt2cg7t5udj23dw1wkhdu.jpg']}
3532
readOnly={true}
3633
/>
3734
</Card>
3835
<Card title="自定义图片大小">
3936
<ImagePicker
40-
value={[
41-
'https://iknow-pic.cdn.bcebos.com/810a19d8bc3eb135828572d2ab1ea8d3fd1f441d',
42-
'https://iknow-pic.cdn.bcebos.com/810a19d8bc3eb135828572d2ab1ea8d3fd1f441d',
43-
]}
37+
value={['https://wx3.sinaimg.cn/mw690/4718260ely1gt2cg7t5udj23dw1wkhdu.jpg', 'https://wx3.sinaimg.cn/mw690/4718260ely1gt2cg7t5udj23dw1wkhdu.jpg']}
4438
readOnly={true}
45-
height={50}
46-
width={50}
39+
height={70}
40+
width={70}
4741
/>
4842
</Card>
4943
<Card title="限制上传数量">
5044
<ImagePicker
51-
value={['https://iknow-pic.cdn.bcebos.com/810a19d8bc3eb135828572d2ab1ea8d3fd1f441d']}
45+
value={['https://wx3.sinaimg.cn/mw690/4718260ely1gt2cg7t5udj23dw1wkhdu.jpg']}
5246
maxCount={2}
5347
upload={(file: File[]) => {
5448
let imageList: string[] = [];

packages/react-native-image-picker/src/ImagePicker/image-picker.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ const ImagePicker = ({
8282
},
8383
]);
8484
};
85-
8685
const pictureList = useMemo(() => {
8786
if (showUploadImg && currentImgSource && currentImgSource.length > 0) {
8887
return currentImgSource.map((item, index) => (

packages/react-native-image-picker/src/ImagePicker/useImagePicker.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { CameraRoll } from '@react-native-camera-roll/camera-roll';
1111
import type { File, ImagePickerProps } from './types';
1212

1313
function getSource(value?: string) {
14-
if (value && (value.startsWith('http') || value.startsWith('file:'))) {
14+
if (value && (value.startsWith('http') || value.startsWith('file:') || value.startsWith('https'))) {
1515
return value;
1616
}
1717
return '';
@@ -52,7 +52,7 @@ export default function useImagePicker({
5252

5353
useEffect(() => {
5454
if (value && value.length > 0) {
55-
const source = value.map((value) => getSource(value));
55+
const source = value.map((value: string | undefined) => getSource(value));
5656
setCurrentImgSource(source);
5757
}
5858
}, [value]);
@@ -186,10 +186,11 @@ export default function useImagePicker({
186186
const saveImage = async (url?: string | undefined) => {
187187
// 检查android权限
188188
if (Platform.OS === 'android') {
189-
const permission =
190-
Platform.Version >= 33
191-
? PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES
192-
: PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE;
189+
// const permission =
190+
// Platform.Version >= 33
191+
// ? PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES
192+
// : PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE;
193+
const permission = PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE;
193194
const granted = await PermissionsAndroid.request(permission);
194195
if (granted !== PermissionsAndroid.RESULTS.GRANTED) {
195196
// 如果权限未获得,进行提示或者打开应用设置页面

0 commit comments

Comments
 (0)