Appearance
2025년 3월 21일
패키지 업데이트
다음 패키지를 업데이트했어요.
@apps-in-toss/framework
:0.0.12
@apps-in-toss/web-framework
:0.0.12
업데이트 내용
배포 인프라 변경
배포 인프라가 변경되어서 @apps-in-toss/web-framework
을 업데이트해야해요. 패키지를 업데이트하고 배포해야 정상적으로 웹이 표시돼요. 토스앱 5.204.0이 필요해요.
이미지 관련 base64
처리 방식 수정
openCamera
와 fetchAlbumPhotos
에서 base64
형식으로 반환된 이미지를 표시할 때,
데이터 URL 스키마(data:image/jpeg;base64,
)를 직접 추가해야 해요.
openCamera
예제
tsx
import { openCamera } from "@apps-in-toss/framework";
const image = await openCamera({ base64: true });
// base64 형식의 이미지 데이터 처리
const imageUri = image.dataUri
? `data:image/jpeg;base64,${image.dataUri}`
: image.dataUri;
<Image source={{ uri: imageUri }} style={{ width: 200, height: 200 }} />;
fetchAlbumPhotos
예제
tsx
import { fetchAlbumPhotos } from "@apps-in-toss/framework";
const images = await fetchAlbumPhotos({
base64: true,
maxWidth: 360,
});
{
images.map((image) => {
// base64 형식의 이미지 데이터 처리
const imageUri = image.dataUri
? `data:image/jpeg;base64,${image.dataUri}`
: image.dataUri;
return <Image source={{ uri: imageUri }} key={image.id} />;
});
}
WebView 사용자 상호작용 제어 옵션 추가
@apps-in-toss/web-framework
에서는 webViewProps
옵션으로 WebView 안에서의 상호작용을 제어할 수 있어요. 특히 게임처럼 스크롤이 필요 없는 콘텐츠를 만들 때 유용해요.
예를 들어 아래 설정은 다음과 같은 동작을 비활성화해요.
- iOS에서 스크롤 탄성 효과 없애기 (
bounces: false
) - iOS에서 당겨서 새로고침 막기 (
pullToRefreshEnabled: false
) - Android에서 오버스크롤 막기 (
overScrollMode: 'never'
) - iOS에서 HTML5 비디오 인라인 재생 설정 (
allowsInlineMediaPlayback: true
)
설정 예시
tsx
import { defineConfig } from "@apps-in-toss/web-framework/config";
export default defineConfig({
appName: "ping-pong",
webViewProps: {
bounces: false, // iOS에서 스크롤 탄성 효과를 비활성화해요
pullToRefreshEnabled: false, // Android에서 당겨서 새로고침 기능을 끄고 싶을 때 사용해요
overScrollMode: "never", // Android에서 오버스크롤을 완전히 막아요
},
});
이 설정은 앱 안에서 WebView를 열었을 때만 적용돼요. 게임이나 드래그/스와이프 같은 인터랙션이 많은 콘텐츠에서 잘못된 스크롤 동작을 방지하려면 꼭 설정해 주세요.