Jade's Hello World

iOS 에서의 Javascript Interface Bridge는 단방향, JS -> Native로밖에 값을 전달하지 못한다. 따라서 js에 setValue() 등의 함수를 사용해야 한다.. 그러나 window.webkit.messageHandler.foo.postMessage(args) 를 호출하고, 네이티브에서 evalJavascript로 setFooValue(bar) 함수를 호출해 밸류를 지정해준다 한들, 완성된 js코드를 보는 후임 개발자 입장에서 코드가 쉽게 눈에 들어오지 않을 것이고, 예쁘지도 않다. 또 리턴받아야 하는 함수가 여러 개인 경우 setValue() 함수를 여러번 생성해야 하며, Android JavascriptInterface Bridge와 다른 방식으로 사용해야 한다. 안드로이..
카톡로그인 인텐트를 아래와 같이 처리해줬다. @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("intent:")) { try { Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); Intent existPackage = getPackageManager().getLaunchIntentForPackage(intent.getPackage()); if (existPackage!=null) { startActivity(intent); } else { Intent marketIntent = new Intent(Intent.ACTI..
MainActivity.java private long backKeyPressedTime = 0; private Toast toast; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { // 웹뷰 History상 이전 페이지가 있을 경우 if(mWebView.canGoBack()){ mWebView.goBack(); // 뒤로가기 return true; } // 없을 경우 앱 종료 전 Toast로 물어보기 else{ // 토스트메세지 출력 if (System.currentTimeMillis() > backKeyPressedTime + 2000) { backKeyP..
Activity에서 처리하는 경우 activity_main.xml MainActivity.java WebView mWebView; WebSettings mWebSettings; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.mWebview); // 웹뷰 선언 mWebSettings = mWebView.getSettings(); mWebView.setWebChromeClient(new WebChromeClient()); // 크롬클라이언트 사용 mWebVi..
이전 포스팅 : 안드로이드 프래그먼트 활용하기 안드로이드 프래그먼트 활용하기 MainActivity.java public class MainActivity extends AppCompatActivity { private FragmentManager fragmentManager; private Fragment_Main fragment_main; private Fragment_MyPage fragment_my_page; privat.. jyspw.tistory.com 사전 작업 1. res 폴더 우클릭 -> New -> Android Resources Directory -> menu 폴더 생성 2. res/drawable -> New -> Vector Asset -> 사용할 Clipart 이미지 생성 Mai..
MainActivity.java public class MainActivity extends AppCompatActivity { private FragmentManager fragmentManager; private Fragment_Main fragment_main; private Fragment_MyPage fragment_my_page; private FragmentTransaction fragmentTransaction; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragmentManager = ..
Splash 화면 구현 경로 : res/drawable/splash.xml (생성) Splash Theme 추가 경로 : res/values/themes.xml ,res/values-night/themes.xml Android Manifest 수정 AndroidManifest.xml Main Activity 수정 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_앱이름); // 앱 기본 테마로 변경 super.onCreate(savedInstanceState); setContentView(R.layout.a..
타이틀 바 없애기 경로 : res/values/themes.xml , res/values-night/themes.xml 상태 바 없애기 경로 : MainActivity.java import android.os.Build; import android.view.WindowInsets; import android.view.WindowInsetsController; import android.view.WindowManager; ... public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 전..
· ETC/Git
재택근무가 길어지면서 사내메신저의 필요성을 느끼던 중 Slack이나 잔디, 라인웍스 등의 협업 툴을 써봤지만 큰 메리트를 느끼지 못하고 관련 소프트웨어에 익숙하지 않은 직원들도 쉽게 쓸 수 있는 디스코드를 선택했다. 일단 직원들 대부분이 온라인게임을 즐기기 때문에 새로 설치하거나 익숙해질 필요가 없었고, 파일 전송 용량 등 몇가지를 제외하면 Slack과 크게 다른점이 없는데, 구글 클라우드와 사무실 내 스토리지가 있어서 필요가 없는 상태였으며 무엇보다 API를 활용해 직접 필요한 기능을 개발할 수 있는 장점이 컸다. Django로 디스코드 봇을 만들어 프로젝트 관리와 서버에 이슈가 생기면 푸시알림을 보내주려고 했는데 연동 탭에 "웹후크" 항목이 눈에 띄었다. 보자마자 Github에 웹훅 연결하면 되겠네 ..
맥을 사용하다가 윈도우를 다시 사용하려니 Capslock 한영 전환이 너무 익숙해진 나머지 코딩을 하다가도 Capslock 키를 누르기가 일쑤였다. 검색해보니 여러가지 방법들이 있다. # 레지스트리 레지스트리를 수정해서 PC를 초기화하거나 원래대로 돌려놓지 않는 이상 영구적으로 적용된다. 단점은 어떤 수를 쓰더라도 기존의 CAPSLOCK 기능을 사용할 수 없다. 일반적인 사용환경에서는 CAPSLOCK을 쓸 일이 그리 없는데 개발할땐 CAPSLOCK이 그리 아쉬울 수가 없다. # 오토핫키 사용 레지스트리 등록 후 재부팅하기도 귀찮고 시작프로그램에 등록해놓으면 자동실행되니 있는 듯 없는 듯 사용할 수 있다. 오토핫키 설치하기 귀찮은 사람들을 위해 컴파일한 파일과 같이 첨부한다 기존 소스는 맥과 같이 길게 누..
Jade Choe
'분류 전체보기' 카테고리의 글 목록 (4 Page)