작업로그

목록

[세진파킹] 문구 수정, 앱 회전 로그인유지, 달력 개선, 점포주 등록 화면

파킹 주차앱 방문자등록
변경사항 2025.06.19 68 회 읽음
변경사항 25.06.19 68



작업 목록

1. 불필요한 표시 부분  : 방문자 구입에서 관련 문구 수정 및 개선

2. 캘린더 변경 : 기본 캘린더가 아닌 커스텀 년, 월, 일 달력 방식 변경

3. 앱 회전 로그 오픈 되는 문제 : 수정 완료 되었으며 앱 업데이트 후 사용 가능

4. 점포주 등록 : 필수 항목 해제, 미 사용 부분 제외

5. 앱 또는 모바일 화면 선택 메뉴 표시 : 강조를 위해 중앙 정렬 했던 부분 변경


가장 많이 사용하는 방문자 등록 부분의 문구를 통일하고 사용하지 않는 부분에 대해 삭제를 요청하였습니다.

모든 현장에 적용 되는 부분으로 특정 현장을 다르게 지정해야 하는 경우에는 현장 설정이 필요하므로 다시 알려주세요.


오류 수정 및 개선

장기 할인 영구 할인의 경우 기존 필수 선택 기능으로 설정 값이 없을 때에는 기본 checked 되게 하여 처리 됩니다.

불필요한 문구는 모드 제거 하거나 표시하지 않도록 합니다.

달력에서 삭제 버튼과 설정 버튼을 확인 버튼으로 요청하였습니다.

날짜를 바로 선택하면 입력되도록 하여 확인 버튼도 삭제하였고 삭제 버튼도 제거 하였습니다.




방문자 등록 문구 삭제

수정파일 : ticket_edit.php



"유료 방문자 최대 20대 가능합니다. 영구 방문자 구매 불가 합니다." 문구 삭제

"예약등록"을 예약 일자로 변경

"차량등록"을 차량 번호로 변경

"예시000한0000" 문구 삭제

"영구 방문자 권한이 없습니다." 문구 삭제

"유료 방문자 최대 20대" 문구 삭제



충전 표기 분 삭제



방문자 등록 표기 부분 삭제

수정파일 ticket_list.php

유료 방문자 최대 00대 가능합니다. 영구 방문자 구매가 불가 합니다. 표기를 삭제 합니다.




앱에서 화면 회전시 로그오프 되는 문제


문제의 핵심 원인: 안드로이드 생명주기 (Activity Lifecycle)
가장 핵심적인 원인은 안드로이드의 화면 회전 시 동작 방식에 있습니다.


사용자가 스마트폰 화면을 가로 또는 세로로 회전 시킵니다.

안드로이드 운영체제는 화면 구성이 바뀌었다고 판단하여 현재 화면(Activity)을 강제로 종료(Destroy)하고, 새로운 방향에 맞춰 화면을 처음부터 다시 만듭니다(Create).

이 과정에서 화면 안에 있던 웹뷰(WebView) 역시 함께 종료되었다가 새로 만들어집니다.

새로 만들어진 웹뷰는 이전에 가지고 있던 로그인 정보(PHP 세션 쿠키)를 잃어버린 상태로 페이지를 처음부터 다시 불러옵니다.

웹 서버(PHP) 입장에서는 세션 쿠키가 없는 새로운 접속 요청이 들어온 것이므로, 당연히 비로그인 상태로 페이지를 보여주게 됩니다.


방법 1. 화면 회전 시 Activity를 유지하도록 설정 (간단한 해결책)

AndroidManifest.xml 파일의 activity 설정에 android:configChanges 속성을 추가하여, 화면 방향이 바뀌어도 Activity를 새로 만들지 않고 유지하도록 하는 방법입니다.

<activity
    android:name=".YourWebViewActivity"
    android:configChanges="orientation|screenSize|keyboardHidden"
    ...>
</activity>

장점: 가장 간단하고 빠르게 문제를 해결할 수 있습니다.

단점: 안드로이드의 표준적인 처리 방식이 아니며, 추후 다른 예기치 못한 문제를 발생시킬 수 있습니다. (하지만 단순한 웹뷰 앱에서는 큰 문제가 없는 경우가 많습니다.)


방법 2. Activity 상태 저장 및 복원 (권장되는 해결책)

안드로이드에서 권장하는 정석적인 방법입니다. Activity가 종료되기 직전에 현재 웹뷰의 상태(쿠키 정보 포함)를 저장했다가, Activity가 새로 생성될 때 그 상태를 복원해주는 방식입니다.

onSaveInstanceState 와 onRestoreInstanceState 메소드를 사용합니다.

public class YourWebViewActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        // ... 기타 웹뷰 설정 ...

        if (savedInstanceState != null) {
            // 이전에 저장된 상태가 있으면 복원
            webView.restoreState(savedInstanceState);
        } else {
            // 처음 로드하는 경우
            webView.loadUrl("https://your-website.com/login");
        }
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        // 화면이 사라지기 전에 현재 웹뷰의 상태를 저장
        webView.saveState(outState);
    }
}

장점: 안드로이드 생명주기를 따르는 가장 안정적이고 표준적인 방법입니다.

단점: configChanges 방법보다는 코드를 조금 더 추가해야 합니다.


방법 3. 쿠키 매니저 동기화 확인

웹뷰의 쿠키가 시스템의 쿠키 저장소와 제대로 동기화되도록 처리하는 코드도 중요합니다. 특히 앱이 종료되거나 백그라운드로 갈 때 쿠키를 확실히 저장하도록 CookieManager.getInstance().flush()를 호출해주는 것이 좋습니다.

요약 및 다음 행동 제안

1. 문제의 원인: PHP나 웹 서버의 문제가 아닌, 안드로이드 앱이 화면 회전 시 웹뷰의 로그인 정보(쿠키)를 유실하기 때문입니다.

2. 해결 주체: 이 문제는 안드로이드 앱 개발자가 코드를 수정해야 해결할 수 있습니다.

3. 개발자에게 요청할 내용:

"화면 회전 시 Activity가 재생성되면서 웹뷰의 세션 쿠키가 유지되지 않는 것 같습니다." 라고 상황을 정확히 설명하세요.

해결 방안으로 AndroidManifest.xml에 configChanges 속성을 추가하거나, onSaveInstanceState를 사용하여 웹뷰의 상태를 저장하고 복원하는 방법을 적용해달라고 구체적으로 요청해 보세요.

목록