merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정

This commit is contained in:
jilee4unity
2026-05-28 23:34:06 +09:00
7250 changed files with 570509 additions and 25 deletions

View File

@@ -0,0 +1,95 @@
// 앱-웹뷰 통신 API
// 전역 오염을 방지하기 위한 네임스페이스
const AppWebviewAPI = (function() {
// 비공개 변수 및 함수
let pushKeyCallback = null;
let pushReceiveCallback = null;
let walkCountCallback = null;
let pageActiveTimeCallback = null;
// JS102: 푸시 키 등록을 위한 콜백 처리
function handlePushKeyRegist(tokenKey) {
if (pushKeyCallback) {
pushKeyCallback(tokenKey);
}
}
// JS105: 푸시 알림 터치에 대한 콜백 처리
function handlePushReceive(pushType, data) {
if (pushReceiveCallback) {
pushReceiveCallback(pushType, data);
}
}
// JS106: 앱에서 걸음 수 가져오기
function requestWalkCount() {
if (window.webkit && window.webkit.messageHandlers.getWalkCount) {
// iOS 웹뷰 호출
window.webkit.messageHandlers.getWalkCount.postMessage({});
} else if (window.Android && window.Android.getWalkCount) {
// 안드로이드 웹뷰 호출
window.Android.getWalkCount();
}
}
// JS107: 페이지 활성 시간을 앱에 전송
function sendPageActiveTime(url, displaySeconds) {
if (window.webkit && window.webkit.messageHandlers.sendPageActiveTime) {
// iOS 웹뷰 호출
window.webkit.messageHandlers.sendPageActiveTime.postMessage({
url: url,
displaySeconds: displaySeconds
});
} else if (window.Android && window.Android.sendPageActiveTime) {
// 안드로이드 웹뷰 호출
window.Android.sendPageActiveTime(url, displaySeconds);
}
}
// 공개 API
return {
// JS102: 푸시 키 등록을 위한 콜백 등록
onPushKeyRegist: function(callback) {
pushKeyCallback = callback;
// 앱에서 호출할 수 있도록 전역 스코프에 콜백 노출
window.callback_pushkey_regist = handlePushKeyRegist;
},
// JS105: 푸시 알림 터치에 대한 콜백 등록
onPushReceive: function(callback) {
pushReceiveCallback = callback;
// 앱에서 호출할 수 있도록 전역 스코프에 콜백 노출
window.callback_push_receive_process = handlePushReceive;
},
// JS106: 앱에서 걸음 수 요청
getWalkCount: function(callback) {
walkCountCallback = callback;
requestWalkCount();
},
// JS107: 페이지 활성 시간을 앱에 전송
sendPageActiveTime: function(url, displaySeconds) {
sendPageActiveTime(url, displaySeconds);
},
// 앱에서 호출할 콜백 핸들러
handleWalkCountResponse: function(count, date) {
if (walkCountCallback) {
walkCountCallback({ count: count, date: date });
}
},
// 추가적인 유틸리티 함수들을 여기에 추가할 수 있습니다.
};
})();
// 사용 예시:
// AppWebviewAPI.onPushKeyRegist(function(tokenKey) { console.log('푸시 키 등록됨:', tokenKey); });
// AppWebviewAPI.onPushReceive(function(pushType, data) { console.log('푸시 수신됨:', pushType, data); });
// AppWebviewAPI.getWalkCount(function(result) { console.log('걸음 수:', result.count, '날짜:', result.date); });
// AppWebviewAPI.sendPageActiveTime('https://example.com/best-reviews', 300);
// 걸음 수가 준비되었을 때 앱에서 호출할 함수
// window.AppWebviewAPI.handleWalkCountResponse(10000, '20230101');