diff --git a/src/components/provider/AppBridgeProvider/AppBridgeMessage.types.ts b/src/components/provider/AppBridgeProvider/AppBridgeMessage.types.ts index 5eb4ec3..7d013fa 100644 --- a/src/components/provider/AppBridgeProvider/AppBridgeMessage.types.ts +++ b/src/components/provider/AppBridgeProvider/AppBridgeMessage.types.ts @@ -29,7 +29,9 @@ export interface OpenGalleryMessage { export interface ShareMessage { type: AppBridgeMessageType.SHARE; - payload: ""; + payload: { + shareText: string; + }; } export interface CreateReviewMessage { diff --git a/src/components/provider/AppBridgeProvider/convertToNativeMessage.ts b/src/components/provider/AppBridgeProvider/convertToNativeMessage.ts index 4e52cd7..363abff 100644 --- a/src/components/provider/AppBridgeProvider/convertToNativeMessage.ts +++ b/src/components/provider/AppBridgeProvider/convertToNativeMessage.ts @@ -6,8 +6,8 @@ const iosHandlers = { window.webkit?.messageHandlers.openCamera.postMessage(message), [AppBridgeMessageType.OPEN_GALLERY]: (message: string) => window.webkit?.messageHandlers.openGallery.postMessage(message), - [AppBridgeMessageType.SHARE]: (message: string) => - window.webkit?.messageHandlers.share.postMessage(message), + [AppBridgeMessageType.SHARE]: (message: { payload: { shareText: string } }) => + window.webkit?.messageHandlers.share.postMessage(message.payload), [AppBridgeMessageType.CREATE_REVIEW]: (message: { payload: { ocrText: string; hashTag: string[]; reviewStyle: string }; }) => window.webkit?.messageHandlers.createReview.postMessage(message.payload), @@ -22,7 +22,8 @@ const iosHandlers = { const androidHandlers = { [AppBridgeMessageType.OPEN_CAMERA]: () => window.AndroidBridge?.openCamera(), [AppBridgeMessageType.OPEN_GALLERY]: () => window.AndroidBridge?.openGallery(), - [AppBridgeMessageType.SHARE]: () => window.AndroidBridge?.share(), + [AppBridgeMessageType.SHARE]: (message: { payload: { shareText: string } }) => + window.AndroidBridge?.share(JSON.stringify(message.payload)), [AppBridgeMessageType.CREATE_REVIEW]: (message: { payload: { ocrText: string; hashTag: string[]; reviewStyle: string }; }) => window.AndroidBridge?.createReview(JSON.stringify(message.payload)), diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 4d43dc4..030b081 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -4,13 +4,20 @@ import { AppBridgeMessageType } from "@/components/provider/AppBridgeProvider/Ap import { useAppBridge } from "@/components/provider/AppBridgeProvider/AppBridgeProvider"; import Text from "@/components/ui/Text/Text"; +const SHARE_TEXT = + "영수증을 촬영하면 AI가 자동으로 맛집 리뷰를 생성! 🍽️✨ 간편하게 추억을 남기고, 나만의 미식 기록을 완성하세요. 미식 경험을 더욱 스마트하게, 미식 MISIK!"; + const HomePage = () => { const { send } = useAppBridge(); return ( <> - send({ type: AppBridgeMessageType.SHARE, payload: "" })}> + + send({ type: AppBridgeMessageType.SHARE, payload: { shareText: SHARE_TEXT } }) + } + > 앱 공유하기 diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 37cb8af..2684cc5 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -10,6 +10,9 @@ type MessageHandler = { }; declare global { + interface ShareTextPayload { + shareText: string; + } interface CreateReviewPayload { ocrText: string; hashTag: string[]; @@ -32,7 +35,7 @@ declare global { messageHandlers: { openCamera: MessageHandler; openGallery: MessageHandler; - share: MessageHandler; + share: MessageHandler; createReview: MessageHandler; copy: MessageHandler; }; @@ -40,7 +43,7 @@ declare global { AndroidBridge?: { openCamera: () => void; openGallery: () => void; - share: () => void; + share: (json: string) => void; createReview: (json: string) => void; copy: (json: string) => void; };