Я посылаю захватываемые камеры и выбранные в галереи изображения из приложения в WebView, и мне интересно, нужно ли для этого Android и iOS настраивать. Итак, как для Android, так и для iOS я преобразую данные изображения в формат URI Base64 и отправляю его с правильным типом MIME. Консоль. < /p>
Однако при тестировании на Android, хотя изображение правильно преобразуется, кажется, что изображение не отправляется должным образом. WebView не отображает изображение, и в журналах консоли не появляются данные изображения.export const requestCameraPermission = async (
webviewRef: React.RefObject,
navigation: StackNavigationProp
) => {
const { status } = await Camera.getCameraPermissionsAsync();
if (status === "granted") {
console.log("카메라 권한 허용됨");
const image = await takePhoto();
Platform.OS === "ios"
? console.log(
"ios 촬영 이미지 데이터 앞부분:",
image?.map((i) => i.substring(0, 100))
)
: console.log(
"android 촬영 이미지 데이터 앞부분:",
image?.map((i) => i.substring(0, 100))
);
if (image) {
webviewRef.current?.postMessage(
JSON.stringify({ action: "albumData", album: image })
);
navigation?.goBack();
} else {
console.log("이미지 데이터 x");
}
} else {
const { status: newStatus } = await Camera.requestCameraPermissionsAsync();
if (newStatus !== "granted") {
Alert.alert(
"Camera Permission Required",
"This app requires access to your camera. Please enable camera permissions in your device settings.",
[
{
text: "Go to Settings",
onPress: () => Linking.openSettings(),
},
]
);
}
}
};
< /code>
takephoto.ts
export const takePhoto = async () => {
const photo = await ImagePicker.launchCameraAsync({
quality: 1,
base64: true,
mediaTypes: ImagePicker.MediaTypeOptions.Images,
});
if (!photo.canceled && photo.assets?.length > 0) {
const result = photo.assets.map((p) => {
const mimeType = "image/jpeg";
return `data:${mimeType};base64,${p.base64}`;
});
return result;
}
return null;
};
Подробнее здесь: https://stackoverflow.com/questions/796 ... -work-on-a
Он работает при отправке данных изображений в WebView на iOS, но не работает на Android. [Экспо] ⇐ Android
Форум для тех, кто программирует под Android
1749661036
Anonymous
Я посылаю захватываемые камеры и выбранные в галереи изображения из приложения в WebView, и мне интересно, нужно ли для этого Android и iOS настраивать. Итак, как для Android, так и для iOS я преобразую данные изображения в формат URI Base64 и отправляю его с правильным типом MIME. Консоль. < /p>
Однако при тестировании на Android, хотя изображение правильно преобразуется, кажется, что изображение не отправляется должным образом. WebView не отображает изображение, и в журналах консоли не появляются данные изображения.export const requestCameraPermission = async (
webviewRef: React.RefObject,
navigation: StackNavigationProp
) => {
const { status } = await Camera.getCameraPermissionsAsync();
if (status === "granted") {
console.log("카메라 권한 허용됨");
const image = await takePhoto();
Platform.OS === "ios"
? console.log(
"ios 촬영 이미지 데이터 앞부분:",
image?.map((i) => i.substring(0, 100))
)
: console.log(
"android 촬영 이미지 데이터 앞부분:",
image?.map((i) => i.substring(0, 100))
);
if (image) {
webviewRef.current?.postMessage(
JSON.stringify({ action: "albumData", album: image })
);
navigation?.goBack();
} else {
console.log("이미지 데이터 x");
}
} else {
const { status: newStatus } = await Camera.requestCameraPermissionsAsync();
if (newStatus !== "granted") {
Alert.alert(
"Camera Permission Required",
"This app requires access to your camera. Please enable camera permissions in your device settings.",
[
{
text: "Go to Settings",
onPress: () => Linking.openSettings(),
},
]
);
}
}
};
< /code>
takephoto.ts
export const takePhoto = async () => {
const photo = await ImagePicker.launchCameraAsync({
quality: 1,
base64: true,
mediaTypes: ImagePicker.MediaTypeOptions.Images,
});
if (!photo.canceled && photo.assets?.length > 0) {
const result = photo.assets.map((p) => {
const mimeType = "image/jpeg";
return `data:${mimeType};base64,${p.base64}`;
});
return result;
}
return null;
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79661681/it-works-when-sending-image-data-to-the-webview-on-ios-but-it-doesnt-work-on-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия