본문 바로가기

네이티브/Android12

Android Uri.getQueryParameter에 + 들어가면 빈칸으로 바뀝니다. 최근에 다이나믹링크를 구현하던중 정보를 링크에 query로 담았을때 +가 빈칸으로 변경되는 이슈가 있었습니다. 같은 다이나믹 링크를 공유했을때 ios에서는 이슈가 없어서 안드로이드 쪽의 이슈로 생각하고 접근하였습니다. 첫번째 사진은 예시를 나타낸 것이고 두번째 사진은 getQueryParameter로 가져왔을때 +가 빈칸으로 변경되어 나타나는 모습입니다. getQueryParameter가 의심이 됩니다. 한번 코드를 살펴봅시다 return 값이 뭔가 수상하네요. convertPlus 파라미터도 있고 한번 더 들어가 봅시다 appendDecoded가 builder의 값을 변경해주는것 같습니다. appendDecoded를 찾아가 봅시다 범인을 찾았습니다!!! 이전에 convertPlus 옵션이 true로 되.. 2022. 1. 12.
Android build.gradle 주요 정보 보안 buid.gradle 파일은 gitignore에 추가되어 있지 않습니다. git 저장소가 노출되면 빌드에 필요한 password나 키들에 대한 정보가 노출될 수 있습니다. 이는 곧 스토어에 올라가 있는 앱이 다른 앱으로 대체될 수 있다는 이야기 입니다. gradle 은 groovy 언어로 이루어진 빌드 도구 입니다. groovy언어와 local.properties 파일을 이용하여 이를 변경합니다. 변경 전 (key 값들은 임의의 값으로 대체 하겠습니다.) ... signingConfigs { debugConfig { storeFile file('../test.jks') storePassword 'test123' keyAlias 'test' keyPassword 'test123' } releaseConfi.. 2021. 12. 5.
Android html5 Geolocation 웹뷰 적용 웹 api중 geolocation api가 있습니다. http에서는 사용이 불가능하고 https에서만 사용이 가능합니다. 따라서 테스트 할때도 ngrok으로 세팅을 하는등 별도의 툴을 이용해야 합니다. ngrok으로 로컬서버를 개방 하는법은 따로 포스팅 할 수 있도록 할게요 아래 첨부 링크는 웹에서 geolocation 에 관한 링크 입니다 https://developer.mozilla.org/ko/docs/Web/API/Geolocation_API/Using_the_Geolocation_API Geolocation API 사용하기 - Web API | MDN Geolocation API는 navigator.geolocation 객체를 통해 사용할 수 있습니다. developer.mozilla.org 웹.. 2021. 12. 1.
Android 화면 Resizing with windowSoftInputMode webview 화면 resizing 웹뷰에서 키보드가 하단에서 올라오게 되면 위의 화면은 키보드로 가려져서 화면이 줄어듭니다. 이때 화면을 스크롤 하거나 줄이거나, 줄여지지 않는 방법을 알아보겠습니다. // AndroidManifest.xml windowSoftInputMode에서 옵션을 주어서 제어할 수 있습니다. stateOption과 adjustOption을 하나씩 사용하거나 둘중 하나만 사용합니다. 두 그룹중 어느 하나의 그룹을 복수개 사용하면 정의되지 않은 결과를 가져올 수 있습니다. example 사용하는 알맞은 예시입니다 android:windowSoftInputMode="adjustResize|stateVisible" 아래의 코드는 정의되지 않은 결과를 가져올 수 있습니다 android:w.. 2021. 11. 29.
Android preload 띄우기 안드로이드에서 webview가 로드전 preload를 띄워서 사용자의 ux를 개선해 봅시다 webChromeClient의 메소드를 오버라이드 하고 progressDialog를 사용하여 loading 중이라는 것을 표현할 것입니다. WebChromeClient webClient = new WebChromeClient() { private ProgressDialog mProgress; @Override public void onProgressChanged(WebView view, int progress) { if (mProgress == null) { mProgress = new ProgressDialog(MainActivity.this) // 위에서 import 하기 mProgress.show(); } m.. 2021. 9. 28.
Android 스플래쉬 화면 띄우기 프로젝트에서 스플래쉬 이미지를 띄워줘야 했습니다. 웹뷰가 로드되기전 하얀화면이 뜨게 되고 그 간극을 줄이기 위한 것입니다. 원하던 목적을 완벽히 이루지는 못하였지만 제일 기본 형태의 스플래쉬 띄우는 법을 문서화 하겠습니다. 웹뷰랑 javascriptInterface로 소통하거나 하는 방법들을 입맛에 맞게 사용하시면 됩니다. 사전준비 1. 스플래쉬로 띄우고 싶은 이미지를 준비합니다. Android 1. res/drawable 아래에 이미지 파일을 추가합니다. 2. res/drawable 아래에 splash.xml 파일을 추가합니다. // splash.xml 3. res/styles.xml에 splashTheme 추가 4. AndroidManifest.xml 수정 5. SplashActivity에 코드 추가.. 2021. 9. 27.